Odniose się do tego komentarza, bo mnie ciśnienie podnosi :-)
` Jakoś się dało pisać te programy bez użycia kontenerów1 DI dało sie też pisać w asemblerze, a potem bez bibliotek, a potem bez gotowych komponentów jak bazy danych czy kolejki... ;) Nadal się da! - Shalom 2018-12-06 09:27
To jest przykład tak zwanej fałszywej alternatywy. Można używać bibliotek. Można uzywać bardziej zwięzłych języków programowania, a nadal nie widzieć korzyści w kontenerowym DI.
Ja nie widze. To znaczy widzę trochę strat, które nie są rekompensowane przez potencjalne korzyści. Mam mniej więcej o kontenerowym DI takie zdanie jak o GOTO.
Jak weźmiesz bardzo mały lub specyficzny fragment kodu to pokażesz, że dzieki GOTO (Adnotacjom, DI) można coś zrobić szybciej. W średniej wielkości kodzie (więcej niż jeden CRUD :-) ) już różnica ilości kodu wychodzi praktycznie żadna, widzę za to bajzel jaki ta magia powoduje.
Mam nawet taką metrykę spustoszenia springowego/DI - klasa z największą ilością @Autowired
/ Injectionów. 15tki-18tki to normalka.
Żeby nie było, kiedyś (na pewno jeszcze w 2013) kontenery, adnotacje mnie bardzo jarały i byłem praktykującym wyznawcą.
Najlepszy zresztą przykład, ze kontenery DI nie są potrzebne daje ... Spring. Nie znam kodu wszystkich modułów, ale te co trochę znam nie używają Springa(!), ani żadnego kontenerowego DI , mimo że mogłyby, bo od spring-core/spring-beans zależą :-). Przykład Spring-data-jpa, spring-tx. Może kod nie jest idealny, ale całkiem ładnie pokazuje jak fabryki
rozwiazują problem.