何よりもまず手元の問題について考えてください。YAGNIまたはSOLIDの原則を盲目的に適用すると、後で自分自身を傷つける可能性があります。私たち全員が理解できることを願っていますが、すべての問題に適合する「1つ」の設計アプローチはないということです。店が「1つのサイズがすべてに合う」と宣伝されている帽子を販売しているが、頭に合わないという証拠を見ることができます。大きすぎるか小さすぎます。
代わりに、SOLIDが対処しようとしている原則と問題を理解することをお勧めします。YAGNIが取り組もうとしている原則と問題も同様です。1つはアプリケーションのアーキテクチャに関係し、もう1つは開発プロセス全体に関係していることがわかります。重複する場合もありますが、それらは明らかに異なる問題です。
YAGNI(You Ai n't Gonna Need It [古風なアメリカの頭字語])は、より単純な木製の橋がうまくいく場合にのみ3フィート幅の小川にまたがることを目的とした橋に鉄骨鉄筋コンクリート基礎を追加する開発者の時間の節約に関係していますいいよ 幅1マイルの川にまたがり、いくつかのトラクタートレーラーをサポートする必要がある場合、もちろん、追加の基礎工事が必要になります。本質的に、YAGNIは現在のニーズに合わせて、より大きな全体像とデザインを見るように言っています。顧客がまだ特定していない多くの潜在的なニーズを予想しているため、複雑になりすぎるという問題に対処しています。
SOLIDは、ブリッジの各部分が適切に適合し、長期にわたって維持できるようにする方法に関心があります。木製の橋と鉄骨鉄筋コンクリート橋にSOLIDの原則を適用できます。
要するに、これらの2つの概念は必ずしも互いに矛盾しているわけではありません。自分がそうであると信じている状況に出くわしたら、全体像を見てみましょう。結論に応じて、SOLID原則の一部を廃止するか、本当に必要だと判断するかもしれません。
SOLID principle vs YAGNI
じゃない?