The King's Museum

ソフトウェアエンジニアのブログ。

『CODE COMPLETE (上)』を読んで

CODE COMPLETE 上巻を読み終えた。

Code Complete 第2版 上 完全なプログラミングを目指して

Code Complete 第2版 上 完全なプログラミングを目指して

平日のお昼休みに10ページずつ読んで三ヶ月弱。最初は、一部ごとにメモでもブログにまとめようと思ってたけどやめてしまった。その方が理解は深まるだろうけどあまりに時間がかかりすぎるので…。

内容

CODE COMPLETE で紹介されるテクニックはすべて「コードの複雑度を下げることができるかどうか」という視点で評価されている。 たびたび議論になる「goto 文」も複雑度を低減できる一部の局面では使うべきだろうという姿勢。 「コードの複雑度」はコーディングの効率にも影響している。 コードの複雑度をコントロールできるプログラマーが優秀なプログラマーとなる。

複雑度を下げるために個別のテクニックがたくさーん紹介されているけどここでは割愛。 有名なものからマイナーなものまでたくさんのテクニックが紹介されています。

変化

自分としてはもともとシンプルなコードが好きだけど、この本でその意識がより強化された。

ただ、シンプルなコードにしようとはしてたけど、結構いきあたりばったりなコーディングをしていたなぁと反省した。

コーディング自体もシンプルにやれたらもっといいプログラマになれる。 シンプルに、というと少し抽象的だけど要するに考える対象をなるべく絞って、集中し、深く理解するという感じだろうか。

  • 一つのクラスを書くくらいのレベルでも設計する(パプリックメソッドをリストアップしたり、他のクラスとの関係をざっとノートに書いてみる)
  • コードを書く前にコメントで各ステップを書いてみる
  • 闇雲に修正→コンパイル→動作確認→動かない→闇雲に修正、というループを繰り返さない
  • 自分の書いたコードを見直して理解しなおす
  • うまくいかないときはコーディングに執着しすぎない。休憩する。

こういうところを少し気をつけてみたら、なんとなーく、前よりもコーディングの出力が上がったと思う コーディングしてる最中は、以前よりタイプする時間が減っているので足取りが遅くなったように感じるけど、終わってみると「思ったより時間がかからなかったな」という感じ。

下巻もけっこうなボリュームだけど読むのが楽しみだな〜。

(c) The King's Museum