Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in
  • P PA165 Project - Movie Recommender Catalog
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
    • Locked files
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
    • Requirements
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Artifacts
    • Schedules
    • Test cases
  • Deployments
    • Deployments
    • Environments
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Terraform modules
    • Model experiments
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • CI/CD
    • Code review
    • Insights
    • Issue
    • Repository
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Patrik Tomov
  • PA165 Project - Movie Recommender Catalog
  • Issues
  • #24

Fix codebase

Tu projit VSECHNY moduly a package

Controllery

  • PathVariable v URL by malo byť prefixnuté “/” => pridat
  • Chýbajú základné CRUD operácie (zakomentovaná DELETE operácia, chýba DELETE pre Rating, UPDATE pre User, získanie Ratingov pre vybranú Movie) => Toto si myslim ze uz bude poresene v M2, ale zkontrolovat a pripadne doplnit
  • RestTemplate v login a recommender module by som nahradil za WebClient (RestTemplate bude časom deprecated) => pouzit WebClient vsude

Entity

  • Je lepšie použiť objektový typ pre identifikátor (Long vs long), aby ste vedeli rozpoznať stav kedy identifikátor ešte nebol pridelený databázou (niektoré DB môžu začínať generovať hodnotou 0) => predelat na Long vsude
  • Nepoužívate automatické generovanie mapovacích metód z MapStructu (nebolo súčasťou M1, ale bude v M2) => asi poresene v M2, zkontrolovat
  • Nepridával by som entitám suffix “Do”, dosť sa to podobá na Dto a ťažšie sa v tom potom orientuje => oddelat

Dtocka

  • ID v DTO je typu String, ale v entitách typu long + Lepšie použiť objektové typy pre id fieldy v DTO, aby ste predišli nejasnostiam v prípade, že hodnota nie je vyplnená => pohlidat ze je vsude Long
  • Chýbajú Gettre, Settre pri niektorých DTO triedých => mozna uz poresene, zkontrolovat
  • BaseObjectDto by mal byť tiež abstraktný => zabstrahovat

Servicy

  • Transactional anotácie nie sú vždy potrebné v Service vrstve, ak používate CrudRepository, v ktorom sú už jednotlivé CRUD metódy transactional => projit a uklidit
  • Používate generickú nadtriedu pre Service, ale nie konzistentne. Základné CRUD metódy môžu byť všetky implementované na jednom mieste (v BaseService) => projit a sjednotit
  • Nepotrebný Getter na Mapper fieldy v Service triedách. Dôvodom getteru nad *Repository fieldoch v ukážkovom projekte je to, aby bola implementovaná metóda pre prístup k repozitáru v BaseService, aby mohli byť použité operácie z repozitárov. => projit a vyhazet

Testy

  • smazat prazdne test classy - CoreApplicationTests

Repository

  • MovieService::getMovie uses repository.getReferenceById, which only fetches the data lazily when the state is accessed (when getters are called in movieMapper). This should be replaced with a call to MovieRepository::findById. If the movie with given ID is not found, it should fail at the call to repository, not in the mapper.
Edited May 05, 2023 by Jiří Smejkal
Assignee
Assign to
Time tracking