Poza tym: kwestie architektury wychodzą często dopiero przy większych projektach. W małych projektach ktoś może sobie zachowywać wszystkie nauczone zasady typu SOLID czy inne, ale to nie znaczy, że robiąc coś na dużą skalę, będzie umiał to sprawnie zaprojektować.
Jeśli chodzi o wyuczone zasady to ja mam takie spostrzeżenia.
"Wyuczone" zasad najczęściej wyglądają tak:
Q. Po co ci ten ViewModel skoro nie potrzebujesz nic dodać do obiektu w View. ?
A. No bo to jest Separation Of Context i SRP.
Q. Więc Factories, Services, DTOs, Validators to twoje konteksty zgodne z SRP i wszystko jest OK?
A. Tak
Następny przykład
Q. Dlaczego wrzucasz wszystko do utilsów, przecież to wygląda na strategię - politykę
A. Bo to jest zgodne YAGNI.
Następny
Q. Co ty robiłeś przez trzy godziny? Miałeś jeden ficzer do zaimplementowania.
A. No bo TDD. Musiałem się zastanowić jak napisać testy, które nie zadziałają.
Q. No ale gdzie masz jakiś model procesu, jakiś diagram cokolwiek..
A. No ale TDD?!...