達人プログラマー 第2版 を読んで
名著と呼ばれる本の第2版が先日出たようなので、読みました。
感想を一言で言うと、自分の中でモヤモヤしていたことがより高いレベルで言語化されていて、適度なタイミングで何度か読み返したいと思う本でした。
以下、もう少し感想について書き連ねたいと思います。
私について
・達人プログラマー第1版は読んでいません。
・2010年頃以前の業界に関しては、聞いた話でしか知りません。
第2版について
第1版は20年ほど前に書かれた物ですが、
まえがきにて、ほぼ3分の1は新たに書き下ろした物で、残りの多くも手を加えていると書かれています。
そのため、古くさく感じる点はほとんど無く、昔からある今でも通用する考え方や、最近の技術についても取り上げられていました。
一方、歴史を知るという意味では第1版も読んだ方が良いと感じました。
内容について
内容としては、メールの送り方やSemaphoreなど多岐にわたっています。
大きく分けるとテクニカルな話と達人プログラマーとはなんぞやという精神的な話があります。
テクニカルな内容について
テクニカルなところは現代のソフトウェアエンジニアにとって、当たり前になっているところも多く感じました。
挙げるときりが無いですが、以下のようなことです。
・VCSを使うこと
・カバレッジに固執しないこと
・is-aよりhas-a
そのため、読んでいて何を今更…と感じることも多いと思います。
ただ、これは4年前のRebuild.fmでomoさんが仰ってたように、第1版の書籍がこれらを当たり前にすることに貢献したのではないかと思います。
精神的な内容について
こちらに関しては、私にとって新たな発見やわかっていても改めて言われてはっとすることが多く書いてありました。
例えば、割れた窓(まずい設計や、貧弱なコード)を放置しておくことは、あらゆる崩壊の始まりであることや、プログラミングが技芸であり、プログラマは複数の役割を演じ分ける必要がある話などです。
もちろん、全てに同意はできませんでしたが、確かにと思う事が多く、読み物としてかなり面白いと感じました。
まとめ
この本は100個のTipsとともにそれぞれについて文章が書かれています。
そのため、各項ごとに読むことができます。
特に前半は精神的な内容が多いため、ちょっとずつ読んだり、後回しにしたりしながら読むのもおすすめです。
この本の著者のお二人は「アジャイルソフトウェア開発宣言」の起草者に名を連ねていることもあり、そう言った文脈の話もエッセンスが書かれています。
より詳しい話はアジャイル開発やXP、DDDなどについての文献に詳しく書かれているので、それら参照すると良いかと思います。
そう言った点でこの本は、Tips集や索引集と言うこともできそうです。
ひとまず読み終えましたが、練習問題はスキップしてしまったので、時間があるときにやってみようと思います。また、全てのTipsを一度に実践するのでは無く、自分の状況に合ったものを選んで、じっくり実践していこうと思います。
その他
1年に1言語学ぶと良いという話を界隈で聞くことがありますが、それがこの本に書かれていたので、この本の文脈で喧伝されていたのでしょうか。