『プロダクティブ・プログラマ』

読みました。

プロダクティブ・プログラマ -プログラマのための生産性向上術 (THEORY/IN/PRACTICE)

プロダクティブ・プログラマ -プログラマのための生産性向上術 (THEORY/IN/PRACTICE)

思想系の本かと思ったら、技術系の本でした。特に、後半は『Code Complete』の実装寄りの話題をさらに現代的にしたような内容で、面白かったです。

粒度がバラバラですが、感想を3点くらいメモします。

色々な開発ツールが紹介されているのがよかった

静的解析ツールやカバレッジ取得ツールなどについて、概要と主なツール名が載っていたのが良かったです。開発ツールは、今すぐ使わなくても引出しとして知っておくと、いざ必要となって探す時の手がかりになるので。

特に、アンビルダ(設定ファイルを生成するコードを、既存のXMLから作るツール)を知ったのが、個人的には収穫でした。

原理原則の紹介という本のスタンスが素敵

個別具体的なレシピではなく、読者に原理原則を伝えるように、また、読者の視野が広がるように、意識して書かれているようなのが良かったです。

たとえば、自動化の話では、「どういう時に自動化すべきか? 自動化のしすぎはどうよくないか?」という点にまで踏み込んでいます。「自動化できることは自動化しよう」で終わっていないので、実際の仕事に適用することを考える助けになると思います。

また、たとえば、「TDDによって自然と凝集度が高いメソッドや疎結合のクラスが作れて、適材適所のパターン活用ができるようになる」という話は、入門者にとって視野が広がる話でした。単純に「テストを先に書こう、上手く書こう」というのを目指すのとは、ちょっと違った世界があるらしいことを教えてくれました。

開発ツール選定の観点が広がった

「複雑税」という考え方を知りました。開発者に負担を強いるようなツールは、プロジェクトに負の資産をもたらすので、高価で高機能でオールインワンを謳うツールが本当に役立つのか、検証で見極めないといけないと改めて思いました。

余談ですが、実装者にとって開発ツールは、できれば専門の機能に特化したコンパクトなもの(かつ、できれば開発が活発で、ユーザの多いOSS)が望ましいのではないかな、と思っています。ツールの活用というのはスキルの一つですが、プロプライエタリで特殊なツールを使ってしまうと、開発者にとってポータブルなスキルとなりえないですし。

・・・とか、まあ、そんなことを考えるきっかけをもらいました。良い本でした。

ところで、本文中で、黒いほうの『達人プログラマー』が何度も引用されていました。読まないと・・・(と9月からいっている)