2006年3月18日

Write Great Code

Write Great Code』を読みました。「グレートコード」を書く上で必要となるコンピュータの基礎的な知識を幅広く扱った内容となっています。

 

本書でいうグレートコードとは「高速・コンパクトかつ、リソースを無駄使いせず、可読性に優れ、保守が容易で、一貫したスタイルに従った、系統的に設計され、拡張性に富む、十分にテストされ、確実に動作し、ドキュメントが整備されている」コードです。

「ハードウェアを知り、ソフトウェアを書く」という副題の通り、本書は CPU、キャッシュ、メモリ、ストレージ、周辺機器といったハードウェアの話題に多くの紙面が割かれています。グレートコードを書くにはこれらのアーキテクチャの理解が欠かせない、というのが本書の主張です。

一方で、本書では、2進数に始まり、ブール代数や浮動小数点、文字列、配列の表現といった、コンピュータでデータをどのように扱うかというごく基礎的なテーマも扱っています。後半ではハードウェアと OSがどのように連携しているかについても述べられています。

非常に幅広いテーマを扱っているため、個々のテーマの説明はやや駆け足なところもありますが、1冊で幅広く重要なポイントを学べるところが本書の特徴です。個人的には、知っているつもりでよくわかっていなかった部分の理解が深まったのが収穫です。非常に基礎的な部分でも自分にとって新たな発見が多数ありました。

Write Great Code の次の巻ではコンパイラがどのようなコードを生成するかをテーマにしているようです。英語版はもう既に発売されているので、おそらく日本語訳もそのうち出るのではないかと思います。非常に楽しみです。

Write Great Code〈Vol.1〉ハードウェアを知り、ソフトウェアを書く
Randall Hyde 鵜飼 文敏 まつもと ゆきひろ 後藤 正徳 トップスタジオ
毎日コミュニケーションズ (2005/12)