Z mojego skromnego doświadczenia wychodzi, że dość często w projektach używa się ostro przegiętej architektury doprawionej miljonem
zależności do rozwiązywania banalnych problemów. Typowe przykłady:
Aplikacje mobilne składające się z 5 ekranów na krzyż mają w sobie:
- Biblioteke do IoC
- ORM
- Event Bus
- Jakieś customowe biblioteki do MVVM
Proste aplikacje serwerowe z pojedynczym endpointem ładują Springa z wszystkimi dobrodziejstwami, 5 bibliotek do wrzucenia paru linijek logów i również ORM'a do realizacji banalnych zadań.
Zastanawiam się, czy ma to jakiś ukryty sens, czy chodzi o takie sprawy jak:
- Na blogu przeczytałem, że RxJava to super rzecz i chcę tego użyć.
- Wszyscy teraz chcą programistów Spring, więc użyjmy tego frameworka, bo chcę go mieć w CV.
- A co jak nasza aplikacja za 5 lat będzie większa i wtedy to się przyda?
Do tego sprawa trochę poboczna, ale chyba wpisująca się w ten trend - fetysz clean code, polegający na niekończących się dyskusjach, jak nazwać zmienną, żeby zamiast 20 znaków miała 15 znaków i dalej mówiła co przechowuje. Czepianie się o if(obj==null)
zamiast if(null==obj)
, bo w C++ można pomylić porównanie z przypisaniem, my co prawda piszemy w Javie, ale na wszelki wypadek...