メタファ

上記で言うプレゼンテーション部分は、技術の進歩が早く技術的な世代交代もサイクルが短く、なおかつ、お客様の要求が頻繁に変わりやすい部分でもあります。なので、『生鮮食品』だと思ってます。それに対し、サービス部分は、ワインのような『熟成の必要な食品』にあたるのかと思います。そして、そのメタファから類推すれば、サービス部分では技術的な移り変わりにあまり左右されないように作るべきです。そこで、サービス部分は基本的にPOJOで作るべきだと思っています。プレゼンテーション部分からは、DI(Dependency Injection)コンテナから使うことによって疎結合も守られます。そして、サービス部分では、お客様の要求の本質的な部分が含まれる部分ですので、検証されていなければいけません。それは、TDDで作って、無駄なコードをなくし全てのコードにテストコードを準備することで、実現できます。そして、必要に応じてテストコードを増やしていくことで、サービス部分は『熟成』され、いっそう深みは増すはずです。逆にプレゼンテーション部分で、そこまでのテストをすることは、コストに応じたメリットは得られないと思います。※このように別のものに置換え(隠喩)を行い、そこからの類推によって新たなイメージを引き出すことが『メタファ』の効能ではないかと考えています。