De l’importance d’un code propre et aéré

De l’importance d’un code propre et aéré

10 février 2022 0 Par Aschen

Les standards de code c’est souvent une discussion sans fin et des développeurs qui se battent à coup d’économie d’un caractère ou de position d’une virgule.

Pour ma part, j’estime que le meilleur standard sera le plus lisible.

Plutôt que de vouloir économiser des lignes et des caractères, il faut essayer d’aérer son code et de lui donner du sens.

Certaines règles simple venant du monde de l’édition de livre sont applicables à l’informatique pour améliorer le confort de lecture:

  • Garder des lignes courte. En général 80 caractères.
  • Sauter des lignes
  • Grouper les lignes en paragraphes

Prenons des exemples antagonistes pour bien voir la différence (ici c’est du Javascript) :

function ages(country,def) {
  if(!country.code.includes('us')) {
    return [{type:'driver',age:18},{type:'vote',age:18}];
  }else if(country.code.includes('fr')){
    return [{type:'driver',age:16},{type:'vote',age:21}];
  }else{
    return [{type:'driver',age:18+def}];
  }
}

function ages (country, defaultAge) {
  if (! country.code.includes('us')) {
    return [{ type: 'driver', age: 18 }, { type: 'vote', age: 18 }];
  }
  else if (country.code.includes('fr')) {
    return [{ type: 'driver', age: 16 }, { type: 'vote', age: 21 }];
  }
  else {
    return [{ type:'driver', age: 18 + defaultAge }];
  }
}

A chaque équipe de décider ou elle souhaite mettre le curseur ensuite. Comme pour tout, les standards de code ne doivent pas être des dogmes inamovibles 🙂


Bonus: Règles Eslint pour un code aéré

Il est possible de configurer eslint pour forcer les standard à respecter le code ci-dessus en rajoutant les règles suivantes:

    "keyword-spacing": ["error", { "before": true, "after": true }],
    "object-curly-spacing": ["error", "always"],
    "space-before-function-paren": ["error", "always"],
    "comma-spacing": 2,
    "brace-style": ["error", "stroustrup"],
    "space-infix-ops": 2,
    "space-unary-ops": [2, { "words": true, "nonwords": false, "overrides": { "!": true } }]

(Source)


Image d’entête: Old houses in Tbilisi, Georgia – 02/2022