レガシーコードからの脱却 まとめ – 12, 12.8

12章 プラクティス8 設計は最後に行う

内容

ソフトウェア開発では、保守性の設計は最後にしたほうが良い傾向がある。
プロジェクトの終盤の方が、システムの全体に対して理解が深くなっており、適用させるデザインパターンの判断もしやすくなる。
実現の手段として、ユニットテストのサポートを受けながら、再設計とリファクタリングを行う。

反復開発は設計を創発する。
創発とは、最初の設計よりも開発が進むに連れ、もっと良い設計が見えてくることを指す。

12.8 創発する設計

原則として、テストファースト開発を行いながら、理解容易性、テスト容易性に注意を配りながら開発していけば、修正しやすいプログラムになり、あとから生まれた設計を取り込むことも、テストがサポートしてくれる。

創発した設計を取り込むことができないということは、修正がしづらいことを意味し、それを続けているといずれ保守可能でないシステムになり、システムはビジネスの拡張についていけなくなるし、エンジニアたちも苦しむことになる。

学び

  • 保守性を加味した設計とリファクタリングは、テストが書かれている前提であれば、プロダクトの全体像が見えるプロジェクトの後半が適している。
  • テストファースト開発は創発した設計を取り込むことができる。
  • 最初に設計しきるのは現実的ではない。だから、創発した設計を取り込めるプロセスを作ることが重要だ。

学びを活かすアイディア・行動

  • まずは実践し、メンバーに手法として展開する
  • テストコードの目的の事前知識整理

kiyoshi.saito@tttsunagari.jp

アプリ開発をメインにWebアプリ開発をやってるフリーランスエンジニアです。

Leave a Reply

Your email address will not be published. Required fields are marked *