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é