多くの人がソリューションをオーバーエンジニアリングしようとしています。彼らは「アダムとイブ」のアプローチを採用しますが、ほんの少し実用的なアプローチが物事を大幅に簡素化します。
特殊なクラスは悪ではなく、健全なソフトウェア設計の自然な結果です。
私の意見では、多くのプログラマーはこれを理解できず、このことを完全に明確にしている本はありません。
確かに役立つもう1つのことは、TDDです。これにより、実際にクラスを使用する「方法」を理解でき、多くの場合、1日の早い段階で最終的な問題/制限が示されるため、1日を節約できます。
最後に、私があなただったら探しているもう一つの非常に重要なことはデザインパターンです。デザインパターンは、あなたや私よりも賢い人がプログラミングの問題を解決する方法です。パターンの背後にある考え方は、何を推測するのでしょうか?クックブックとして使用するのではなく、単にそこにバタバタするレシピではなく、思慮深く、アプリケーションドメインを何よりもまず理解するということです。
パターンを賢く使用すると、管理する必要がある詳細の量が大幅に削減されます。
まさにあなたのニーズに合わせて設計された優れたデザインパターンライブラリは、非常に貴重です。コンテキストに物事を置くための非常に簡単な例を見てみましょう:
ボタンが押されたときに、他のフォームが自分自身を更新する必要があるフォームがあるとします。これは典型的な「オブザーバー」パターンです。サブジェクトと複数のオブザーバーがいて、それらをサブジェクトに登録します。なぜインターフェイスを実装する必要があるのですか?メソッドを追加することもできますが、オブザーバー用のインターフェイスとサブジェクト用の汎用リストを使用することもできます。これで両方の長所が得られました。オブザーバーの独立性と、話題に関する曖昧なものはありません。
それがあなたにとって意味があることを願っています!
アンドレア