Code Qualität 2017

Workshop 1

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é

  • 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
  • pouvoir communiquer et se faire comprendre

Efficacité

  • réutilisation future
  • visibilité et chiffrage
  • productivité*

*benef' pour l'entreprise

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

Nos variables d'ajustements

  • common sense
  • common rules
  • linter, formatter, parser

Text

Text

Pour chaque projet :

  • tslint.json et/ou eslintrc.json
  • renegocier les règles pour chaque projet ?
  • Projet non JS: garder cet esprit

Bien commenter

  • 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

  • JSDoc: tous commenter de la même façon
  • pouvoir générer une documentations pour le client et pour les autres utilisateur
  • test sur un simple fichier
  • voir jsdoc de JQuery en TypeScript
  • utiliser les snippets 
  • pour les BDD: générer un schema
  • pour les API: swagger

Merci à tous

CQ2017

By Loïc TRUCHOT

CQ2017

  • 323