この記事はハワイアンAdvent Calendar 2020 16日目の記事です。だいたい言いたいことは言ったような気がしますが、まだ出てくるのかなあ。
15日目ではLayerの変化について投稿しました。アプリケーション開発の中でこれまで積み上げてきたLayerの実装を捨てるというのは「なんだかマッチポンプでは…」と思うかもしれませんが、何度も言うようにソフトウェアはなまものなので、マッチポンプではなく、必要・不必要なアーキテクチャ特性はその時々によって変わるものなので、ずっと真夜中ではいられません。
語彙を増やす事、ソースコードを増やす事、フレームワークをより手厚くする事、これも漸進的な成長ですが、削除することも漸進的な成長である事を忘れないでください。Contractの外を取り巻くLayerというのは時代の変化に応じて移りゆくものなので、継続的に蒸留を行い、不要となれば捨てます。アプリケーションのより基本的な責務を中心とする抽象によって、守るべきものが明確となり、複数の次元で各観点から設計について深く考えられるようになります。考えた結果として不要となったのであれば、漸進的な削除も安全に行えるはずです。包括的なものを目指すのではなく、出現した問題を解決する最小限のものを見つける事が重要です。Less is moreなので今日はこれで終わりです。