Cześć,
Zakładam ten temat jako dyskusję poza wątkiem Czy warto zainwestować swój czas w Java EE, ponieważ dotyczy tworzenia serwisów oraz aplikacji webowych bez użycia Springa/Spring Boota.
Jak wspomniałem w tamtym temacie, stosuję podejście @jarekr000000 i @KamilAdam i używam Scali oraz Akki HTTP do pisania serwisów bez użycia jakiegokolwiek frameworka, stosując same zasady SOLID, Clean Architecture, a właściwie Ports&Adapters/Hexagonal Architecture i moim zdaniem do pisania serwisów świetnie sprawdza się :D
Potencjalne zalety takiego podejścia
- Niezależność od frameworka (Oczywiście można to osiągnąć w Springu stosując Hexagonal Architecture, moduły Mavena i fasady)
- Logika biznesowa jest całkowicie wolna od frameworka
- Ułatwia debugowanie, bo skupiamy się na logice biznesowej, a nie co dzieje się we frameworku
Potencjalne wady:
- W przypadku braku znalezienia biblioteki, która oferuje to co framework, możemy być zmuszeni do implementacji danego rozwiązania samemu?
Natomiast pytanie brzmi nastepująco: Co w przypadku ze stosowaniem takiego podejścia bez frameworka, kiedy chcemy napisać zwykłą aplikację webową np. z wymaganiami typu autentykacja, i18n (wielojęzyczność)?
Możemy oczywiście znaleźć biblioteki, które obsługują te funkcjonalności i dodać je jako dependencies do projektu, ale może zdarzyć się, że ich nie będzie, a frameworki szybko pozwalają na integrację takich rozwiązań jak np. Spring Security ze Spring Bootem.
W Scali mamy framework Lagom do pisania aplikacji webowych, ale czy jest on gdzieś w ogóle jeszcze używany?
Czy pisząc aplikację webową np z obsługą wielu języków i autentykacji, staralibyście się uniknąć Spring Boota, który, co by nie powiedzieć, ma bardzo dobre wsparcie do takich funkcjonalności (MessageSource i Spring Security) i wykorzystać podejście "libraries over frameworks" i możliwości jakie oferuje język np. Scala czy raczej lepiej już skorzystać ze Spring Boota, pomijając wady jakie ma?
Zapraszam do dyskusji :D