Code Reviews - Seniors: Difference between revisions
From My Limbic Wiki
(Page créée avec « 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 control... ») |
No edit summary |
||
Line 1: | Line 1: | ||
=Best Practices= | |||
* Pas de camel case dans les noms des controllers | |||
High coesion / Lose coupling | * High coesion / Lose coupling | ||
* Monolith First ==> puis division en API | * 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 final ==> cree par le class Loader | |||
* 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 | |||
* 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 | |||
Comparer @PathParameters vs @ModelAttribute | |||
Dans la couche du rest: | 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 | - Si pas d'interface, utilise CGLib | ||
- Quand utilisation interface : AspectG ==> Plus rapide | - Quand utilisation interface : AspectG ==> Plus rapide | ||
==> Donc implementer interface pour cette raison + meilleurs contrats | ==> Donc implementer interface pour cette raison + meilleurs contrats | ||
==Principles== | |||
Principes '''"Has A"''' vs '''"Is A"''' ==> composition plutot que hierarchie | |||
Principes "Has A" vs "Is A" ==> composition plutot que hierarchie | |||
IDE : Ajouter final dans tous les | ==IDE== | ||
IDE : Ajouter final dans tous les paramètres - Principe d’immutabilité |
Revision as of 22:57, 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
- Name conventions: @Getmapping("list") pour retourner une liste d'events
- @Autowired ==> private final ==> cree par le class Loader
- 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
- 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é