|
Cześć Adam!
Standardowa architektura warstwowa w Springu ma wadę konstrukcyjną: zachęca do grupowania kodu wokół tabel, a nie funkcji biznesowych. Efektem jest UserService, który z czasem staje się God Objectem.
Problem: Pułapka Service Layer Zaczynasz od rejestracji użytkownika. Potem dochodzi zmiana profilu, hasła, reset avatara i eksport danych RODO. Po roku UserService ma 1500 linii i zależności od EmailService, S3Client, PaymentGateway czy AuditLog.
Co to oznacza w praktyce? 1. Unit testy to fikcja: Aby przetestować zmianę hasła, musisz zamockować 11 pozostałych serwisów, których ta logika w ogóle nie dotyka. 2. Merge Conflicts: Każdy
developer pracujący nad systemem edytuje ten sam plik. 3. Cognitive Load: Otwierasz klasę i tracisz 5 minut na znalezienie właściwej metody.
Rozwiązanie? VSA i Feature-based Handlers W Vertical Slices rezygnujemy z podziału na warstwy na rzecz pionowego cięcia funkcjonalności. Każdy flow biznesowy to osobny komponent.
|