Code Reviews - Seniors
From My Limbic Wiki
Best Practices
- 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
- Controller + exception handler (retourne HTTP request aussi) + mapper = facade
- Name conventions: @Getmapping("list") pour retourner une liste d'events
- @Autowired ==> private final ==> cree par le class Loader
- DTO = Ce qui va etre transfere au client
- Domain ou Model = objet en base de donnees
- Flux ==> exemple Uber
- Cloner les objets lorsque possible
- utiliser le + possible de static ==> optimise la gestion de la memoire
- valeur commune aux instances
- valeur constance
Documentation
- Methodes publiques ==> creation javadoc
Compare
- Comparer @PathParameters vs @ModelAttribute
Dans la couche du rest: - La couche du REST a la responsabilite de verifier les attributs manquants et/ou mal envoyes, avant de transmettre les informations aux services.
Coding For Interfaces
Recommande de faire des interfaces + implémentations car: - Si pas d'interface, utilise CGLib - Quand utilisation interface : AspectG ==> Plus rapide ==> Donc implementer interface pour cette raison + meilleurs contrats
Principles
Principes "Has A" vs "Is A" ==> composition plutot que hierarchie
IDE
IDE : Ajouter final dans tous les paramètres - Principe d’immutabilité