Pomyśl przede wszystkim o problemie. Jeśli ślepo zastosujesz zasady YAGNI lub SOLID, możesz później zrobić sobie krzywdę. Mam nadzieję, że wszyscy możemy zrozumieć, że nie ma jednego podejścia projektowego, które pasowałoby do wszystkich problemów. Możesz to zobaczyć, gdy sklep sprzedaje czapkę reklamowaną jako „jeden rozmiar dla wszystkich”, ale to nie pasuje do twojej głowy. Jest albo za duży, albo za mały.
Zamiast tego lepiej jest zrozumieć zasady i problemy, które SOLID próbuje rozwiązać; a także zasady i problemy, które YAGNI próbuje rozwiązać. Przekonasz się, że jedno dotyczy architektury aplikacji, a drugie dotyczy całego procesu programowania. Chociaż w niektórych przypadkach mogą się one nakładać, są to wyraźnie różne problemy.
YAGNI (You Ain't Gonna Need It [osobliwy amerykański akronim]) zajmuje się oszczędzaniem czasu dewelopera poprzez dodanie stalowych zbrojonych betonowych fundamentów do mostu, który ma obejmować tylko 3 stopy szerokości, gdy prostszy drewniany most wystarczy w porządku. Jeśli zajmiemy rzekę o szerokości mili i będziemy musieli wesprzeć kilka przyczep ciągnikowych, oczywiście potrzebowalibyśmy dodatkowych prac fundamentowych. Zasadniczo YAGNI mówi ci, abyś spojrzał na większy obraz i projekt dla bieżących potrzeb. Rozwiązuje problem zbytniego skomplikowania, ponieważ przewidujemy szereg potencjalnych potrzeb, których klient jeszcze nie zidentyfikował.
SOLID martwi się tym, w jaki sposób upewniamy się, że elementy mostu pasują do siebie odpowiednio i mogą być utrzymywane z czasem. Możesz zastosować SOLIDNE zasady do drewnianego mostu, a także stalowego zbrojonego mostu betonowego.
Krótko mówiąc, te dwa pojęcia niekoniecznie są ze sobą sprzeczne. Kiedy natrafisz na sytuację, w której uważasz, że tak, nadszedł czas, aby spojrzeć na duży obraz. W zależności od wniosków możesz zdecydować się na rezygnację z części zasad SOLID lub zdecydować, że naprawdę tego potrzebujesz.
SOLID principle vs YAGNI
?