l’élégance, la cohérence et l’attention portée aux détails
règles simples, les appliquer systématiquement
important, moyen de communication
"faire en sorte que cela fonctionne" n'est pas la priorité: fonctionnalités changent, lisibilité du code a un impact sur les modifications, facilité de maintenance et extension du code
établir un précédent
très variables, quelques dizaines de lignes a plusieurs milliers
taille des fichiers pas forcément en relation avec la taille des projets
Petits fichiers plus simples à comprendre
- Métaphore du journal -> du plus haut niveau vers les details
- Espacement vertical des concepts -> ligne vide pour séparer les concepts
- Concentration verticale -> ne pas séparer les mêmes concepts ensemble (commentaires, lignes vides, etc)
- Distance verticale -> regrouper les concepts verticalement, regrouper dans un même fichier si cela a du sens. Variables protégées a eviter ?
déclarées au plus près de leur utilisation.
Rare cas d'exception ?
Java: au début de la classe. C++: a la fin.
proches verticalement, appellant avant appellées
appelant/appelées, fonctions qui réalisent une opération semblable
80 caractères arbitraires, mais conserver des lignes pas trop longue (100, voire 120)
espace dans une ligne
- operateur d'affectation = 1 espace
- appel de fonction = pas d'espace
- espace apres virgule
- addition et soustraction = espace, multiplication et division = pas d'espace
auteur préféré non aligné
hiérarchisation
permet de lire rapidement par blocs de code
==> python obligatoire
auteur ne préfère pas le code sur une ligne
préférer des accolades vides plutot qu'un point virgule seul
suivre les règles de l'equipe
rester coherent
- outils de formatage ? clang-format, git hook
séparer commit mise en forme et changement dans le code ?
- C++: meme ordre que interface ?
A qui est destinée la déclaration de la classe ? Au l'utilisateur = mettre dans l'ordre public, protected et private
Java: pas de separation interface/implementation. Fichier destinée aux utilisateurs et concepteurs de la classe. C++ = separation
- guides par equipes