Просто рецензия
Closed this issue · 2 comments
Здравейте, надявам се да сте по добре. Моля Ви само за бърз поглед над това, с което съм се захванала и мнение как е. Благодаря предварително. https://github.com/chupelina/Galactic-Intruders
Бързо оздравяване :)
Ако трябва ще пращаме от лечебната ракия на татко.
Привет! Мисля, че още е прекалено оптимистично да посякам към лечебна ракия :)) Но имам и прогрес. Прегледах класовете на проекта ти и струлям напосоки с няколоко неща, които ми направиха впечатление:
-
В
UserSecurity
не разбирам този ред и това депендънси:
planetService.getCurrentPlanet(userEntity.getPlanet());
-
Принципно не е супер куул сървисите да връщат/приемат ентитита, особено пък такива, които трябва да са от друг сървис. Напр:
public interface UserService {
PlanetEntity findById(long planetId);
}
Има доста сървиси, където имаш такива моменти.
- Методи които записват и модифицират нещо не ги кръщавай getXYZ...
@Override
public void getFirstOne()
-
Време е за няколко тестчета, особено при теб има мегдан за юнит тестове.
-
Имаш доста суичове и ифове които работят със стрингове, най-малко може да бъдат енумерации:
if(addingBindingModel.getType().equals("ship")){
isOk = shipService.createShip(addingBindingModel);
}else if(addingBindingModel.getType().equals("science")){
isOk = scienceService.createOne(addingBindingModel);
}else if(addingBindingModel.getType().equals("station")){
isOk= stationService.createOne(addingBindingModel);
}
При желание дори може да се заменят тук таме с полиморфизъм :)
-
Виждам че именуваш rest API-то малко странен начин
@GetMapping("/ships/api")
По логично е/api/ships
-
В REST controllers може да връщаш директно вю модели и те ще се сериализират до JSON, не ти трябва gson!
-
Това също не съм сигурен за какво ти е:
<meta th:name="_csrf" th:content="${_csrf.token}"/>
<meta th:name="_csrf_header" th:content="${_csrf.headerName}"/>
Ей такива дреболийки :-)
Много благодаря за отделеното време за planetService.getCurrentPlanet(userEntity.getPlanet());
сетвам на дадения user коя му е планетата, но сега като се замисля не му е мястото там. А crsf token ми е за оторизиране на post заявката от js файла, защото иначе дава forbidden, а друг начин не успях да намеря или да се сетя. По останалите почвам да работя. :)