Code Reviews - Seniors: Difference between revisions
From My Limbic Wiki
No edit summary |
|||
Line 21: | Line 21: | ||
==Compare== | ==Compare== | ||
* Comparer @PathParameters vs @ModelAttribute | * Comparer '''@PathParameters''' vs '''@ModelAttribute''' | ||
Dans la couche du rest: | Dans la couche du rest: |
Latest revision as of 23:00, 2 December 2019
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é