Code Complete(下)

CODE COMPLETE 第2版 下 完全なプログラミングを目指して

CODE COMPLETE 第2版 下 完全なプログラミングを目指して

この本もホントにすばらしい。上下巻合わせて\12,000ですが、それ以上の価値は十分あります。

  • デイリービルドとスモークテスト
  • コメントはコードを抽象度が高いレベルで説明するためのモノ
  • コードレイアウトの重要性と意味
  • 良い習慣をつける事が大事良い習慣は良いプログラムを生む。

ここ辺り、以前読んだイチロー語録に通じるモノがあるなぁ。やっぱプロセスを重視する必要ありなんですよ。
プログラムの階層化のための指針。以下の階層で分割。
4: 上位レベルの問題領域の表現
3: 下位レベルの問題領域の表現
2: 下位レベルの実装構造
1: プログラミング言語の構造とツール
0: オペレーティングシステムの処理とマシン語命令

0でOSからプログラムを切り離す、1でプログラミング言語が提供する標準ライブラリを使って、2で1が提供する機能を使い、高度なデータ構造(スタック、キュー、ツリー等)を表現する。3で4と2を結びつける(ビジネス層とかサービス層とか言われているモノがこれに当たる)。4では3で構築した機能のみを使って問題を表現する。4ではプログラマでなくてもプログラムで解決すべき問題を理解できるような説明的なコードを書くようにする。
すばらしい!頭の中がかなりすっきりする。

この本を読んで、「やっぱりそうか。」と思ったのは、以前、プログラムが全然読めなかったとき「何でみんなこんなに速くコードが理解できるんだ?」と思っていたけど、コードを読むときは何も一字一句追っているわけではなく、コードのあるまとまりを一つのイディオムとして読んでる。つまり、イディオムがある量頭の中に入っていないと一字一句読むことになるので全然速く読めないわけなんです。
他の人の書いた質のいいコードを読むことが大事なのは、このイディオムを増やすためだと思われる。