Подумайте перш за все про проблему. Якщо сліпо застосовувати принципи YAGNI або SOLID, згодом ви можете нашкодити собі. Я сподіваюся, що ми все можемо зрозуміти, що немає "єдиного" дизайнерського підходу, який би відповідав усім проблемам. Ви можете побачити докази цього, коли в магазині продається шапка, рекламована як "один розмір підходить усім", але це не відповідає вашій голові. Це або занадто велика, або занадто мала.
Натомість краще зрозуміти принципи та проблеми, які SOLID намагається вирішити; а також принципи та проблеми, з якими намагається вирішити YAGNI. Ви побачите, що одна стосується архітектури вашої програми, а друга стосується процесу розробки в цілому. Хоча в деяких випадках можливе перекриття, вони є різними проблемами.
YAGNI (Ви не потребуєте цього [вигадливий американський абревіатура]) стурбований тим, що економить час розробника, додаючи сталеві залізобетонні фундаменти до мосту, який призначений тільки для простягання 3-футової широкої затоки, коли простіший дерев'яний міст буде робити просто штрафу. Якщо ми пролягаємо на милі широкою річкою і потребуємо підтримки кількох тракторних причепів, звичайно, нам знадобляться додаткові фундаментальні роботи. По суті, YAGNI пропонує вам переглянути більшу картину та дизайн для поточних потреб. Це вирішення проблеми зробити щось занадто складне, оскільки ми передбачимо низку потенційних потреб, які замовник ще не визначив.
SOLID переймається тим, як ми переконаємося, що шматки мосту належним чином поєднуються та можуть бути збережені з часом. Ви можете застосовувати принципи SOLID як для дерев'яного мосту, так і для сталевого залізобетонного моста.
Коротше кажучи, ці дві концепції не обов'язково суперечать один одному. Коли ти стикаєшся з ситуацією, коли ти вважаєш, що вони є, настав час поглянути на велику картину. Залежно від вашого висновку, ви можете вирішити покінчити з частиною принципів SOLID або ви можете вирішити, що вам це дійсно потрібно.
SOLID principle vs YAGNI
?