こんにちは、 @kz_morita です。
久しぶりに、 『達人プログラマー』 を読んだので感想などをまとめます。
書籍について
書籍名は、 『達人プログラマー』 です。 現在は第2版がでてますが、もっていたのは初版だったので初版を読みました。
内容は、以下のとおりです。
序文
まえがき
第1章 達人の哲学
1 猫がソースコードを食べちゃった
2 ソフトウェアのエントロピー
3 石のスープと蛙の煮物
4 十分によいソフトウェア
5 あなたの知識ポートフォリオ
6 伝達しよう!
第2章 達人のアプローチ
7 二重化の過ち
8 直交性
9 可逆性
10 曳光弾
11 プロトタイプとポストイット
12 専用の言語
13 見積もり
第3章 基本的なツール
14 プレインテキストの威力
15 貝殻(シェル)遊び
16 パワーエディット
17 ソースコード管理
18 デバッグ
19 テキスト操作
20 コードジェネレータ
第4章 妄想の達人
21 契約による設計
22 死んだプログラムは嘘をつかない
23 [表明]プログラミング
24 いつ例外を使用するか
25 リソースのバランス方法
第5章 柳に雪折れ無し
26 結合度の最小化とデメテルの法則
27 メタプログラミング
28 時間的な結合
29 単なる見かけ(ビュー)
30 ホワイトボード
第6章 コーディング段階
31 偶発的プログラミング
32 アルゴリズムのスピード
33 リファクタリング
34 テストしやすいコード
35 邪悪な魔法使い(ウィザード)
第7章 プロジェクトを始める前に
36 要求の落とし穴
37 不可能なパズルを解く
38 準備ができるまでは
39 仕様の罠
40 丸と矢印
第8章 達人のプロジェクト
41 達人チーム
42 どこでも自動化
43 容赦ないテスト
44 すべてはドキュメント
45 大きな期待
46 誇りと愛着
付録A リソース
1 専門の学会
2 図書の充実
3 インターネット上のリソース
4 参考文献
付録B 演習問題の解答
付録C クイックリファレンスガイド
訳者あとがき
索引 .
ちなみに、第2版で大幅に加筆修正されているらしいのでそちらを読むほうが良さそうです。
感想とか
この本は以前に読んだことがあったのですが、チームに配属された新卒の方といっしょに読もうという話になって改めて読んでみました。
基本的に、プログラマーとしての心構えやあるべき姿が書かれています。
直交性の話など、システム設計するうえで非常に重要な話が多く良かったです。 このあたりは、別で読み途中の Philosophy of Software Design にもより詳しくかかれていそうです。
他にも偶発的プログラミングの章はとても良くて、推測じゃなくて計測して確実なところを少しずつ増やし積み上げていく思考方法について書かれていました。これは非常に重要な考え方だとエンジニアの経験を振り返っても思います。デバッグ時など未知なものと向き合うことだらけなので、非常に重要だなと感じました。
他にも作業はできるだけ自動化するという話などプログラマーとして重要な思考や行動習慣などあらためて振り返って重要なことを幅広く取り上げられているのがこの本の特徴かなと思います。
今回、エンジニア歴10年のタイミングで読み返してみましたが、とても良い内容がたくさんあって初心に帰れた気がします。 手元においておいて定期的に読み返したい一冊だと改めて思いました。