Mam projekt monolityczny oparty na springu, składa się z oddzielnych projektów mavenowych.
Celem jest refactor na aplikacje springbootową.
Na podstawie jakich kryteriów trzeba podjąc decyzje, czy zostawić aplikacje z jednym pomem a kiedy warto zostawić modularyzacje?
Refactor projektu monolitycznego
- Rejestracja: dni
- Ostatnio: dni
- Postów: 100
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Space: the final frontier
- Postów: 26433
Multi-module krul. Pozwala na fajną separacje pomiędzy modułami i nic nam nie "przecieka" przypadkiem. Ale w sumie nie wiem co chcesz "refaktorować".
- Rejestracja: dni
- Ostatnio: dni
- Postów: 100
@Shalom: aplikacja ma napisany UI w starym javowym frameworku - trzeba wystawic endpointy i przy okazji mozna coś zmienić.
To samo przeciez mozna zbudować na odpowiednim pakietowaniu i modyfikarom dostepu. W takiej strukturze mamy narzuc z koniecznością budowania hierarchii w pomach (dependncy managment) i zarządzania nimi. Czy coś mieszam?
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Silesia/Marki
- Postów: 5549
@masjav: określ co chcesz refaktoryzować (w którą stronę). IMHO możliwe drogi:
- Zamiana Springa na Spring Boota, nic wiecej nie zmieniasz
- Zamiana wielu subprojektów-pomów na jeden projekt-pom. Z modulernego projektu tworzysz jeden wielki i straszny monolit
- Zamiana każdego subprojektów na każdy projekt osobno budowany niezaleznie
W którą stronę chcesz iść? Co robią twoje subprojekty? Jak duzy och masz?
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Space: the final frontier
- Postów: 26433
- Ok, rozumiem, ale nie wiem dokładnie co to ma wspólnego z "przepisaniem na spring boota" skoro już masz tam springa :) Boot nie robi nic magicznego, ot dodaje troche autokonfiguracji i pozwala zbudować runnable jara. Rozumiem ze chcesz przerobić jakieś template-based UI na REST, ale to mógłbyś zrobić i bez wprowadzania boota
- Nie, przykro mi ale pakiety się nie sprawdzają, bo większość ludzi i tak robi klasy
publica niepackage protectedi w efekcie wszystko przecieka wszędzie i są cyrki w stylu mieszanie DTO z obiektami domenowymi. Moduły (czy to mavenowe czy gradlowe) wymagają explicite podania zależności na taki czy inny moduł i nie da się tego zrobić "przypadkiem", podczas gdy importy robią się auto-magicznie i mało kto patrzy skąd taka czy inna klasa jest. - Właśnie cały myk polega na tym, że masz jasne zależności między modułami i kontrolujesz co się tam dzieje i np. możesz spać spokojnie wiedząc że masz np.
domainbez zależności od frameworków :)
- Rejestracja: dni
- Ostatnio: dni
- Postów: 100
@Shalom: to od czego warto zaczac refactor? Jak to w firmie jest budzet- aplikacja oprocz starego UI nie powoduje błędów z wydajnością albo nie ma problemów z security.
Jakie mogą być przyklady innych metryk, które warto przemyślęć?
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Space: the final frontier
- Postów: 26433
Ja to bym zaczął od napisania porządnych testów ;)
- Rejestracja: dni
- Ostatnio: dni
- Postów: 1909
To ma być migracja na Spring Boota, zmiana architektury kodu czy zmiana sposobu pisania frontendu? ;) czy wszystko naraz?