Web開発者のための]大規模サービス技術入門 ―データ構造、メモリ、OS、DB、サーバ/インフラ (WEB+DB PRESS plusシリーズ)

伊藤 直也, 田中 慎司 技術評論社 2010年7月7日

 

「筆者がはてなに入ったころは、どちらかというとはてなは理論よりも実践側に強い会社でした。強いというか、そこでやっていた。Webアプリケーション開発のセオリーをフレームワークにして、とにかく早く少ない工数でWebアプリケーションを作ることに長けてたし、またベンチャーの機動力を生かして新しいテクニックやオープンソースの実装をどんどん取り込んでいってその規模を拡大していきました。
しかし、サービスがヒットして一つ一つの問題が大きくなってくるにつれて、そのようなノウハウが通用しなくなってくる。つまり、課題が本質的になるにつれ、小手先のテクニックでは解決できなくなっていったわけです。そこで必要だったのは、新しい技術やノウハウではなく、ときに古典的だけれども本質的な理論だったというわけです。」

はてなのインターンシップの授業を元にした大規模なWebサービスの技術入門。OSやハードの視点からのパフォーマンスの考察、圧縮などのアルゴリズムなどの理論的な話から、実際に使用しているアプリ、サーバの構成、クラウドの使用まで、事細かにはてなの技術を紹介している。Webサービスになじみのない人にも読める良書。

少なくともWebサービスに疎い私にとってはいろいろは発見がある素晴らしい本だった。はじめはチームマネージメントなどの話から始まったため、どうなることかと心配になったが、読み進めるにつれて、実践的でかつ理論的でビジネス的な視点もある奥深い内容に驚いた。メモリリーク対策に仮想OSの自動再起動を使っているというのはビジネス的な視点も含めて、興味深かった。小さいサービスから始まり、試行錯誤で技術基盤を築いていっている姿勢には好感が持てた。
日本はソフトが弱い。その弱さが今のGoogleやAmazon、Facebook、Twitterにしてやられている状況を生んでいると思う。Googleすごい!じゃなくて、Googleの次は何か?を真剣に悩みたい。

Effective C++ 原著第3版

2006 ピアソン・エデュケーション スコット・メイヤーズ, 小林 健一郎

 

C++でプログラムを書く上での55のガイドライン。

かなり難解な分類に属する本で、読むのにかなりの時間を要した。内容はC++の奥の奥まで踏み込んでいて、知らなかったことに多く出会えた。今までまともにC++のプログラムを書いていた風に振舞っていた私はなんだったのだろうと思った。

また、その素晴らしい内容と対照的に、このような55あるガイドラインを守らないと普通に動かないC++言語の限界を感じた。やはりJavaなどに比べるとC++は成功した言語とはいえないと感じる。