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... »)
 
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
pas de camel case dans les noms des controllers
=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
** '''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


Controller = prend le nom de la ressource controllee
* utiliser le + possible de static ==> optimise la gestion de la memoire
 
** valeur commune aux instances
Name conventions: @Getmapping("list") pour retourner une liste d'events
** valeur constance


@Autowired ==> private
==Documentation==
@Autowired ==> private final ==> cree par le class Loader
* Methodes publiques ==> creation javadoc


utiliser le + possible de static ==> optimise la gestion de la memoire
==Compare==
- valeur commune aux instances
* Comparer '''@PathParameters''' vs '''@ModelAttribute'''
- valeur constance
 
Methods publiques ==> creation javadoc
 
Comparer @PathParameters vs @ModelAttribute


Dans la couche du rest:
Dans la couche du rest:
- Verifier Attributs maquants, mal envoye
- 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 Interface" - Recommande de faire des interfaces + implementations car:
==Coding For Interfaces==
- Si pas d'interface, utilise CGLib
Recommande de faire des interfaces + implémentations car:
- Quand utilisation interface : AspectG ==> Plus rapide
- '''Si pas d'interface, utilise CGLib'''
- Quand utilisation interface : '''AspectG ==> Plus rapide'''
==> Donc implementer interface pour cette raison + meilleurs contrats
==> Donc implementer interface pour cette raison + meilleurs contrats


Controller + exception handler (retourne HTTP request aussi) + mapper = facade
==Principles==
 
Principes '''"Has A"''' vs '''"Is A"''' ==> composition plutot que hierarchie
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
==IDE==
==> Cloner les objets lorsque possible
IDE : Ajouter final dans tous les paramètres - Principe d’immutabilité

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é