$shibayu36->blog;

株式会社はてなでエンジニアをしています。プログラミングや読書のことなどについて書いています。

補足 - 職業プログラマーなら必ず読むべき「Code Complete」

職業プログラマーなら必ず読むべき「Code Complete」 - $shibayu36->blog;が、結構反響があったので多少補足しておきます。

高い!

上巻だけでも読んでおくといいかもしれません。上巻も高いけど。

大規模開発で無ければ読む必要がない?

そんなことはないように思います。この本にはプログラムの規模に関わらない指針が書いてあります。また、プログラムの大きさによってコンストラクションのプロセスがどのように変わるかについても興味深い内容が書いてあるので、参考になるように思えます。
小さいプログラムだろうとクラス設計や変数名の検討、テストなどを行なっているわけなのでその点でも参考になりそうです。もちろん100行くらいの単純なプログラムしか書かないなら別ですね。

こういう内容は風化する?

この本の初版が1993年に発行されていて、かつ今読んでもかなり参考になるので、人がプログラムを書かなくて済むまでは風化しなさそうです。

擬似コードとしてのコメントを書くより、今の時代だとテスト書いたほうがいい?

これはちょっと違いそうですね。誤解がないように書いておくと、擬似コードコメントを書くというのはコードコンプリートには書いてなくて、学んだことを元にこれをすれば設計の流れが頭に入ってくるんではないかと思って書いているだけです。
コードコンプリートにもテスト駆動開発的なことは書かれています。しかし擬似コードとテストでは以下の点で異なります。

  • テストはインターフェース設計に役立つが、擬似コードは内部設計の検討に役立つ
    • テストではそのメソッドをどのように使えると良いかについて助けてくれるが、メソッド内部でどのように処理を書いていけば良いかについては答えられない
    • 逆に擬似コードではメソッドの内部でどのような処理をすればいいかを理解する助けになる

もちろん僕は自分でコードを書く時は必ずテストを書くようにしています*1が、擬似コードみたいなのを適当に書くことによって設計しやすくなったなと感じました。でも他にも良いやり方があるかもしれませんね。

今回書いたこと

今回書いたことは僕が読んでみて心に残った部分だけです。理解していた部分や知識が足りなくて理解できなかったところに関しては書けてないです。なので人によって得られるものは全然違いそうです。

*1:多分通常よりかなりテスト書いてると思う