『実装パターン』を読んだ。
なかなか説明が難しい。そこで、この本が「何であり」、「何でないか」を引用する。その差分が何か言えればいいのだけれど、自分はうまく言えない。
まず、この本が何なのか。
一方で、目指しているところは明確。『リーダブルコード』とほぼ同じ。著者は最後にこの本の最大の教訓として、こう言っている。
この目標をもう少し具体的にしたのが、次の3つの「価値」。自分の発想は「柔軟性」を重視するあまり「シンプル」さに欠けていると自覚できた。YAGNIの原則を思い出さないと、無駄に時間をかけたコードを、時間をかけて修正することになってしまう。
最後に、読みながら考えたことをTogetterにまとめたので、備忘のためにリンクしておく。
なかなか説明が難しい。そこで、この本が「何であり」、「何でないか」を引用する。その差分が何か言えればいいのだけれど、自分はうまく言えない。
まず、この本が何なのか。
『デザインパターン』とJava言語マニュアルの間に位置する内容を,この本では扱っている.
この本の大部分は,一般的なプログラマであれば,1日に何度も行うような小さな決定について書かれている.次に、何でないか。
コード設計の本ではない.
パターンの記述形式は独特で,その場限りなので(中略),パターン本ではない.
言語の本でもない.この境界領域を何と呼べば良いのか、良い名前を知らない。そもそも良い名前を付けるのが難しそう。曖昧な領域を対象にしているし、おそらくそのせいで各実装パターンの粒度がまちまちになっている。
一方で、目指しているところは明確。『リーダブルコード』とほぼ同じ。著者は最後にこの本の最大の教訓として、こう言っている。
「プログラマの仕事は,他のプログラマとの間でコミュニケーションを取ることである.マシンとではない」『リーダブルコード』との違いは『10章 フレームワークへの拡張』。フレームワークを開発する場合、そのフレームワークを使っているコードへの影響を小さくすることを、リーダビリティを上げることより優先することがある。
この目標をもう少し具体的にしたのが、次の3つの「価値」。自分の発想は「柔軟性」を重視するあまり「シンプル」さに欠けていると自覚できた。YAGNIの原則を思い出さないと、無駄に時間をかけたコードを、時間をかけて修正することになってしまう。
- コミュニケーション
- シンプル
- 柔軟性
- 結果の局所化
- 繰り返しの最小化
- ロジックとデータの一体化
- 対称性
- 宣言型の表現
- 変更頻度
最後に、読みながら考えたことをTogetterにまとめたので、備忘のためにリンクしておく。