結構重い風邪でしばらく読めてませんでしたが、再開です^^
しなやかな設計
第三部の序章にて、変更可能な、しなやかな設計が第三部のテーマである「深いモデル」を支えていると読んできました。
もう少し詳しくどういうことか読んでいきます。
リファクタリングが止まる時
どんな悪いコードでもリファクタリングができるというのは幻想で、実際にはもともと設計が優れたものでないと、リファクタリングすることは困難です。
処理の中に暗黙的に含まれているものを完全に予測する自信がないと、ソースをリファクタリングすることを避け、重複したコードを書き出します。
また、設計が一枚岩になっていても、再利用できずに重複したコードを書き出します。がっつり経験ありますね。。。
こうして、リファクタリングとイテレーションによる改良が止まってしまうのですね。
そもそも、変更やリファクタリングがしやすい設計。それが、しなやかな設計です。
イテレーションとより深い洞察へ向かうリファクタリング
序章で読んだように、深いモデルはしなやかな設計が支えています。なのでしなやかな設計は第三部のテーマである、「より深い洞察へ向かうリファクタリング」の肝になりますね。
第九章で読んできた、暗黙的な概念を明示的にしたものは、まだ、変更しやすい設計にはなっておらず、「イテレーション」のサイクルを通じて育っていき、その結果として「実際に使えるモデル」になっていきます。それを支えていくのがしなやかな設計ということですね。
そうは言っても・・・
設計の初期バージョンは、納期や予算の関係もあり、しなやかになっていないことが多いはず。
そうなると、そもそもリファクタリングできない状態で、アプリケーションが育っていかないような気がします。
初期バージョンからすべてのコードがしなやかな設計にすることは不可能です。
そこで、設計の初期バージョンから、最も重大で難解な部分、複雑な部分を特に選択してしなやかな設計にしておくことをします。
そうすることで、初期バージョンからイテレーションを始められ、より深い洞察へ向かうリファクタリングへ進めることができるはずです。
明日からは具体的にどうすればしなやかな設計にすることができるのかを読んでいきます。