Longueur et largeurs de ligne «recommandées» [fermé]

9

J'étais curieux de savoir si quelqu'un connaissait une recommandation d'une source fiable pour le nombre maximum de lignes de code pour un fichier donné. Par exemple, Google Closure Linter recommande que chaque ligne ne dépasse pas 80 caractères.

Devin G Rhode
la source
Votre exemple ne correspond pas à la question. Votre question porte sur les lignes par fichier et votre exemple concerne les caractères par ligne.
Jason S
2
C'est le même concept - la zone carrée que vous devez faire défiler, qu'elle soit horizontale ou verticale.
Devin G Rhode

Réponses:

11

Un fichier doit être suffisamment court pour que vous puissiez trouver n'importe quelle fonction ou méthode sans faire défiler plusieurs fois d'avant en arrière, sans avoir à vous souvenir d'une chaîne de recherche. La métrique que j'utilise est le temps que je passe à rechercher du code dans un fichier par rapport à sa lecture. Si cela devient visible, il est temps de repartitionner le fichier ou la classe.

Une bonne taille pour un bloc de code de base est suffisamment courte, à la fois en largeur et en hauteur, pour que vous puissiez en projeter les tripes lors d'une révision de code de groupe et que tout soit adapté sans que la police soit si petite que le gars à l'arrière de la salle de conférence ne peut pas le lire. Cette taille est également utile si vous êtes appelé pour expliquer du code alors que tout ce que vous avez avec vous est un appareil mobile ou une tablette.

hotpaw2
la source
Ceci est la ligne directrice la plus utile, merci beaucoup!
Devin G Rhode
Y a-t-il une longueur de fichier trop courte ? J'ai un projet avec 35 fichiers avec une longueur moyenne de ~ 200 lignes.
Dan
1
@Dan je me risquerais "non" comme réponse. Si l'ouverture d'un fichier est trop difficile dans votre configuration, il est peut-être temps d'améliorer votre configuration (c'est-à-dire les plugins vim, un meilleur IDE, quoi qu'emacs fasse)
Mike Graf
@Dan: Un fichier trop court? Possible si vous passez plus de temps à rechercher le petit fichier correct pour quelques LOC au lieu de les trouver dans un fichier logique et étroitement lié (mais pas trop long).
hotpaw2
9

Il n'y a rien de tel, et s'il y en avait, cela dépendrait fortement du langage que vous utilisiez (faire la même chose dans l'assembleur contre C # ou Java par exemple).

Pour les langues de niveau supérieur, vous pouvez voir cette discussion SO. Pour Java / C #, 10-20 lignes par méthode est ce que Bob Martin recommande au maximum. Il n'y a pas de discussion concernant les fichiers, car ils ne sont pas pertinents et dépendent de ce que la classe est censée faire.

En ce qui concerne la limite de 80 caractères par ligne - c'est un retour aux jours des cartes perforées. Cela dit, lorsque les lignes s'allongent trop, la lisibilité en souffre.

Oded
la source
5
+1: il est bon de conserver des lignes de moins de 80 caractères de large; plus facile à lire et donne plus de place pour les fenêtres côte à côte
Donal Fellows
6
Personnellement, je pense que la lisibilité souffre lorsqu'une ligne est chiffonnée en plusieurs lignes pour en contenir 80 ou moins. Il y a aussi le temps perdu à décider où faire les pauses ou à en discuter.
ergosys
5

Les longueurs de fichier et de ligne sont des mesures des effets secondaires de la complexité et, en tant que telles, sont très variables. Ce que vous devez viser, c'est du code sans complexité inutile, pas un certain nombre de lignes maximum.

Les fichiers longs ont tendance à indiquer que les méthodes, sous-routines ou classes sont trop complexes (faire trop de choses, pas suffisamment factorisées, etc.)

Les longues lignes ont tendance à indiquer que les expressions sont trop complexes.

Ce sont des odeurs qui indiquent un problème de code potentiel, pas des mesures cibles bien définies.

Rein Henrichs
la source
3

La longueur de la ligne doit être telle que vous n'ayez pas à faire défiler l'écran pour voir la ligne entière. Cela dépend de la taille et de la résolution du moniteur.

Les méthodes et les fonctions sont optimales si elles peuvent s'adapter à un seul écran.

Les fichiers ne devraient pas être trop longs. Les meilleurs sont des fichiers courts, où il est facile de comprendre la classe et l'implémentation.
Une fois, j'ai travaillé sur un projet qui avait un fichier de 10 klines. C'était comme lire un livre très complexe. Dois-je indiquer le nombre de problèmes causés par la mise en œuvre?

BЈовић
la source
Le code ne devrait pas nécessiter une configuration de moniteur de police de petite taille, en particulier pour les révisions de code de groupe.
hotpaw2
"La longueur de la ligne doit être telle que vous n'avez pas à faire défiler l'écran pour voir la ligne entière." - Et si votre éditeur se termine?
Dan Dascalescu
3

80 caractères!

Je me souviens que j'avais l'habitude de voir les fichiers de code source pour les programmes de facturation d'environ 80 pages et plus quand j'ai fait COBOL. Bien sûr, je ne vois pas que cela est proche de la pratique courante, mais 80 caractères est tout aussi ridicule.

Du point de vue de la taille d'une classe, si vous essayez d'appliquer cette suggestion à une classe client typique qui a environ 80 propriétés et 20 méthodes environ, vous devrez diviser la classe en plusieurs autres et rendre le code très compliqué.

Aucune chance
la source
1
Absolument. 80 caractères signifie que vous pouvez imprimer une section de code pour le brainstorming à une taille de police raisonnable sur une feuille A4 / Letter portrait. Cela signifie également que sur un écran d'ordinateur de développement raisonnable, vous pouvez afficher trois copies du code source côte à côte sans défilement horizontal pour effectuer des fusions à trois voies (drôle que 80x8x3 soit 1920 * 8 ').
Mark Booth
2

J'essaie de garder les classes et les méthodes courtes, mais ne vous inquiétez pas trop de la longueur de la ligne. En ces jours d'écrans larges et de longs identifiants, je pense que quatre-vingts caractères, c'est beaucoup trop peu. Il faut du travail pour briser les instructions afin qu'elles soient faciles à lire, et avec une limite de quatre-vingts caractères, cela arrive assez fréquemment. Je pense qu'environ 120 ou 130 colonnes par ligne est plus raisonnable.

kevin cline
la source
J'utilise des moniteurs de 22 pouces inversés verticalement, ce qui me donne 1080 pixels sur chaque écran (et verticalement, je peux avoir 104 lignes de code visibles à la fois!). Garder des largeurs de ligne à 90 caractères ou moins est utile dans des scénarios comme celui-ci.
Roy Tinker