Code Reviews - Seniors
pas de camel case dans les noms des controllers
High coesion / Lose coupling
- Monolith First ==> puis division en API
Controller = prend le nom de la ressource controllee
Name conventions: @Getmapping("list") pour retourner une liste d'events
@Autowired ==> private @Autowired ==> private final ==> cree par le class Loader
utiliser le + possible de static ==> optimise la gestion de la memoire - valeur commune aux instances - valeur constance
Methods publiques ==> creation javadoc
Comparer @PathParameters vs @ModelAttribute
Dans la couche du rest: - Verifier Attributs maquants, mal envoye
"Coding For Interface" - Recommande de faire des interfaces + implementations car: - Si pas d'interface, utilise CGLib - Quand utilisation interface : AspectG ==> Plus rapide ==> Donc implementer interface pour cette raison + meilleurs contrats
Controller + exception handler (retourne HTTP request aussi) + mapper = facade
DTO = Ce qui va etre transfere au client Domain ou Model = objet en base de donnees
Principes "Has A" vs "Is A" ==> composition plutot que hierarchie
Flax ==> exemple huber
IDE : Ajouter final dans tous les parametres - Principe d'immutabilite ==> Cloner les objets lorsque possible