luchob/softuni-music-db

Просто рецензия

Closed this issue · 2 comments

Здравейте, надявам се да сте по добре. Моля Ви само за бърз поглед над това, с което съм се захванала и мнение как е. Благодаря предварително. https://github.com/chupelina/Galactic-Intruders

Бързо оздравяване :)
Ако трябва ще пращаме от лечебната ракия на татко.

Привет! Мисля, че още е прекалено оптимистично да посякам към лечебна ракия :)) Но имам и прогрес. Прегледах класовете на проекта ти и струлям напосоки с няколоко неща, които ми направиха впечатление:

  1. В UserSecurity не разбирам този ред и това депендънси:
    planetService.getCurrentPlanet(userEntity.getPlanet());

  2. Принципно не е супер куул сървисите да връщат/приемат ентитита, особено пък такива, които трябва да са от друг сървис. Напр:

public interface UserService {
    PlanetEntity findById(long planetId);
}

Има доста сървиси, където имаш такива моменти.

  1. Методи които записват и модифицират нещо не ги кръщавай getXYZ...
@Override
public void getFirstOne()
  1. Време е за няколко тестчета, особено при теб има мегдан за юнит тестове.

  2. Имаш доста суичове и ифове които работят със стрингове, най-малко може да бъдат енумерации:

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);
}

При желание дори може да се заменят тук таме с полиморфизъм :)

  1. Виждам че именуваш rest API-то малко странен начин @GetMapping("/ships/api")
    По логично е /api/ships

  2. В REST controllers може да връщаш директно вю модели и те ще се сериализират до JSON, не ти трябва gson!

  3. Това също не съм сигурен за какво ти е:

<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, а друг начин не успях да намеря или да се сетя. По останалите почвам да работя. :)