Skip to content

Latest commit

 

History

History
102 lines (54 loc) · 2.55 KB

chapitre_05.md

File metadata and controls

102 lines (54 loc) · 2.55 KB

Mise en forme

l’élégance, la cohérence et l’attention portée aux détails

règles simples, les appliquer systématiquement

Objectif de la mise en forme

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

Mise en forme verticale

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éclarations de variables

déclarées au plus près de leur utilisation.

Rare cas d'exception ?

Variables d’instance

Java: au début de la classe. C++: a la fin.

Fonctions dépendantes

proches verticalement, appellant avant appellées

Affinité conceptuelle

appelant/appelées, fonctions qui réalisent une opération semblable

Rangement vertical

Mise en forme horizontale

80 caractères arbitraires, mais conserver des lignes pas trop longue (100, voire 120)

Espacement horizontal et densité

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

Alignement horizontal

auteur préféré non aligné

Indentation

hiérarchisation

permet de lire rapidement par blocs de code

==> python obligatoire

Rompre l’indentation

auteur ne préfère pas le code sur une ligne

Portées fictives

préférer des accolades vides plutot qu'un point virgule seul

Règles d’une équipe

suivre les règles de l'equipe

rester coherent

questions

  • 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