Code Qualität

2018 - 2019

Before

After

Everything can be improved

Common rules && good practices

Rule n°1: there is no rules, it's a social science

Notre exigence de qualité 1

  • Un code bien formé est un code qui…

peut-être lu par n’importe quel opérateur humain, et peut être compris et expliqué par n’importe quel développeur formé 

  • et qui…

peut migrer, évoluer et être augmenté, sans avoir besoin de tout reprendre à zéro 

  • et même qui…

est explicite par et pour lui-même : génère les logs, décris sa progressions et ses erreurs, suit des parcours fluides, sans étapes intermédiaires inutiles

  • et éventuellement qui…

fonctionne. Et fonctionne en toute conditions (après compilation, build, en tout environnement, etc.)

Fierté

  • savoir se relire
  • savoir se comprendre
  • voir son code comme une "petite oeuvre"

Sérénité

  • code maintenable
  • code scalable
  • ne pas avoir peur de son propre code, de celui des autres

Harmonie

  • expliquer son code
  • partager son code
  • merge son code

Efficacité

  • autodocumentation
  • réutilisation future
  • visibilité et chiffrage

Pour quoi faire ?

Un petit échantillon

  • coder dans la langue de Kanye West
  • un decoupages des fichiers et des dossiers cohérents
  • un codé aéré, indenté, ni trop large, ni trop long
  • des instructions claires
  • contrôler la portée des variables
  • des conditions et des exécutions claires
  • des types maîtrisés
  • un nommage cohérent et simple

Bien commenter: exemple

  • Un bon commentaire apporte quelque chose sans surcharger
  • Sauter une ligne avant chaque commentaire
  • Le commentaire sert à commenter, la gestion de version sert à versionner 

Mieux commenter: outils

  • Compodoc: bien typer !
  • JSDoc: installer des extensions !
  • Swagger + postman/insomnia
  • Schémas de base de donnée (tout, dont UML, draw.io, etc.)

 

 

//FIXME : Je sais que ça ne marche pas, ça prendrait plus de 15 min et moins d'1h à corriger, ou j'attends une ressource indisponible 

//TODO : Ca marche, mais ça peut être amélioré en plus de 5 min et moins de 30 min, ou j'attends une ressource indisponible

 

VSCODE: todo highlight

Nos variables d'ajustements

  • common sense
  • common rules
  • linter, formatter, parser
  • don't blame the IDE: use VSCode, or find a solution
  • explore Loïc's conf

Text

Text

Pour chaque projet :

  • eslintrc.json et/ou tslint.json
  • Projet non JS: garder cet esprit, trouver des linters

C'est l'heure du vote

"C'est à cause de gens comme toi qui votent pas que y a des nazis après".

Un gars bourré au Ramdam

  • CI: no forgotten branch, goon names
  • Project must start easily for anyone
  • no unused/underused dependencies, updated, no vulnerabilities
  • folder tree: unique ? shared ? routes ? suffixe ?
  • unused < 2.5%
  • duplicated < 2.5%
  • Test: 80% de coverage
  • Doc: 80% de coverage (dont types & autodocs)
  • Lint: 0 error, minimum warning

 

 

 

Code reviews

  • Windows vs MacOS vs Ubuntu (linux)
  • Every new people: check set up
  • No excuses if special conf

 

 

 

Set up

Merci à tous

CQ2018-2019

By Loïc TRUCHOT

CQ2018-2019

  • 292