Spring Webapp - przegląd kodu i wskazówki do pierwszej aplikacji

0

Cześć,
jest to moja pierwsza aplikacja (początek aplikacji? :) ) w Springu. Prosty serwis internetowy, rejestracja, logowanie, możliwość dodawania "eventów, gier", oceniania użytkowników i takie podstawowe funkcjonalności. Jako, że dopiero zaczynam przygodę z Springiem, część "frontowa" oparta jest na szablonach Thymeleaf. Wrzucam tutaj kod ponieważ chciałbym się dowiedzieć czy moje "bazgroły" idą w dobrym kierunku, chodzi mi bardziej o część "tylnią" niż ten śmieszny widok :) Byłbym wdzięczny gdyby ktoś zechciał mi podpowiedzieć co robię źle, co mogę robić lepiej a co jest ok i czy ogólnie w tym momencie raczej kod nadaje się do śmietnika i lepiej żeby światła dziennego nie ujrzał czy nie ma tragedii :D
Z góry dziękuję :)!

Link do repo: BBucket

0

1, gdzie są testy?
2. https://bitbucket.org/KCrookedHand/projectfor3/src/431ff45568b1584ef90ff590b7395158214af3aa/src/main/java/com/packt/webapp/event/RegistrationListener.java?at=master&fileviewer=file-view-default - confirmRegistration - w tej metodzie masz 3 bloki kodu oddzielone pustymi liniami. Tam gdzie wstawiasz w metodzie pustą linię dla czytelności to znak, że to mogłaby być osobna metoda. Po drugie przekazywanie adresu w postaci 'http://localhost:8080' jest raczej słabe. Mógłbyś port i adres aplikacji trzymać w plikach konfiguracyjnych i przekazywać do klasy.
3. ResendTokenListener i RegistrationListener - dużo kodu się powtarza, to zły znak, bo jeżeli będziesz musiał kiedyś to zmienić to będziesz musiał zmienić to w więcej niż 1 miejscu.
4, https://bitbucket.org/KCrookedHand/projectfor3/src/431ff45568b1584ef90ff590b7395158214af3aa/src/main/java/com/packt/webapp/service/impl/GameServiceImpl.java?at=master&fileviewer=file-view-default metoda checkIfUserCanJoinGame po pierwsze jest źle nazwana. Metoda zwraca booleana wiec IMHO lepsza nazwa byłoby np. canUserJoinGame. Po drugie jest tam wiele instrukcji warunkowych, które śmialo mozna by bylo wydzielnic do osobnych metod, np logged.getId() == game.getGameOwner().getId() wyglądałoby czytelniej, gdy to była metoda np. isLoggedUserAGameOwner. No i stosowanie 3 literowych nazw zmiennych tez nie wyglada najlepiej.
5. Co do kontrolerów - lepiej zwracać ModelAndView a do metod przekazywać ModelAttribute zamiast Modelu. Zwracanie dalej do modelu obiektów wprost z bazy danych - średni pomysł. Jeżeli będa to obiekty w sesji bazodanej to mogą się zapisać zmiany, których bys nie chcial lub będa nieoczywiste.Ppoza tym jeżeli są to klasy proxy to często pcha się tam o wiele więcej niż potrzeba.

0

Ech jest Java 8 z 3 lata a tu ludzie takie coś piszą:

Set<GrantedAuthority> grantedAuthorities = new HashSet<>();
		for (Role role : user.getRoles()) {
			grantedAuthorities.add(new SimpleGrantedAuthority(role.getName()));
		}
0
qrzywy napisał(a):

Cześć,
jest to moja pierwsza aplikacja (początek aplikacji? :) ) w Springu. Prosty serwis internetowy, rejestracja, logowanie, możliwość dodawania "eventów, gier", oceniania użytkowników i takie podstawowe funkcjonalności. Jako, że dopiero zaczynam przygodę z Springiem, część "frontowa" oparta jest na szablonach Thymeleaf. Wrzucam tutaj kod ponieważ chciałbym się dowiedzieć czy moje "bazgroły" idą w dobrym kierunku, chodzi mi bardziej o część "tylnią" niż ten śmieszny widok :) Byłbym wdzięczny gdyby ktoś zechciał mi podpowiedzieć co robię źle, co mogę robić lepiej a co jest ok i czy ogólnie w tym momencie raczej kod nadaje się do śmietnika i lepiej żeby światła dziennego nie ujrzał czy nie ma tragedii :D
Z góry dziękuję :)!

Link do repo: BBucket

Uczysz się z jakiegoś kursu? Jak tak to możesz podac link? Thx!

1 użytkowników online, w tym zalogowanych: 0, gości: 1