こんにちは。小島@福井コンピュータです。
>その辺はバランス感覚じゃないかと思います。
>例えば抽象化を例にすると、抽象化が足りないと密結合してるところが
>増えるなどの弊害が発生しやすいですが、抽象化しすぎても理解しにく
>かったり実装しにくかったりしますよね。
>
>結局は、OO を適用している程度がソフトウェアプロジェクトの特性に
>合ってないと「ダメな設計だ」って言われることになるんでしょう。
そうですね。「良い設計」についてのバランス感覚は大切だと思います。
おっしゃる通り、プロジェクトによって求められる「良い設計」という
のは、異なりますよね。
完全に受け売りですが、「良い設計」の基準を、そのプロジェクトでの
「ソースの解析のし易さ」だとか「テストのし易さ」にするのが良い
のではないか、と最近は考えています。
特に「テストし易いのが良い設計」というのは、かなりの説得力を感じ
ております。
>そのことに関しては、「アジャイルと規律」という良書があります。
必読っぽいですね。
「理想的にはどうあるべきか」なんていう議論も楽しいですが、必要
なのは実際のプロジェクトに対する「現実的な解決策」の方だったり
しますよね。