182 votes

Y a-t-il une raison valable pour faire respecter une largeur maximum de 80 caractères dans un fichier de code, cette journée et l’âge ?

Au sérieux. Sur un moniteur de 22", il ne couvre que peut-être un quart de l’écran. J’ai besoin de quelques munitions de supprimer cette règle.

Edit : je ne dis pas qu’il ne devrait pas y avoir une limite ; Je dis simplement, 80 caractères est très faible.

289voto

Will Harris Points 17002

Je pense que la pratique de l'observance du code de 80 (79) les colonnes de a été à l'origine créé pour soutenir les gens de la modification de code sur 80 colonnes de terminaux ou sur 80 colonnes des imprimés. Ceux exigence ont pour la plupart disparu aujourd'hui, mais il ya toujours des raisons valables pour garder la colonne 80 règle:

  • Pour éviter d'emballage lors de la copie de code dans l'email, pages web, et des livres.
  • Pour afficher la source multiple fenêtres côte-à-côte ou à l'aide d'un side-by-side visualisateur.
  • Pour améliorer la lisibilité. Code étroit peut être lu rapidement, sans avoir à analyser votre yeux de gauche à droite.

Je pense que le dernier point est le plus important. Bien qu'affiche la croissance de la taille et de la résolution dans les dernières années, les yeux n'ont pas.

87voto

therefromhere Points 21329

L'origine de 80 colonnes mise en forme du texte est antérieure à celle de la colonne 80 bornes - IBM de cartes perforées, remonte à 1928! Cela rappelle la (apocryphe) histoire que les etats-unis de chemin de fer de jauge a été déterminée par la largeur des roues de chariots en grande-Bretagne Romaine.

Parfois, je trouve ça un peu contraignant, mais il est logique d'avoir certaines limite standard, donc 80 colonnes, il est.

Voici le même sujet couverts par Slashdot.

Et voici un de la vieille école Fortran Déclaration:

FORTRAN punch card

64voto

Craig Day Points 1350

80 caractères est une limite ridicule ces jours-ci. Diviser vos lignes de code où il est logique, pas selon la limite de tout caractère arbitraire.

36voto

Kibbee Points 36474

Vous devriez juste le faire pour le bien de tous ceux qui n'ont pas un 22 pouces écran large. Personnellement, je travaille sur un 17 pouces 4:3 moniteur, et je trouve que plus que suffisamment large. Cependant, j'ai aussi 3 de ces moniteurs, donc j'ai encore beaucoup de utilisable d'espace à l'écran.

Non seulement cela, mais l'œil humain a effectivement des problèmes de lecture de texte si les lignes sont trop longues. Il est trop facile de se perdre dans la ligne à laquelle vous êtes sur. Les journaux sont de 17 pouces de diamètre (ou somethign comme ça), mais vous ne les voyez pas écrit tout le chemin à travers la page, en va de même pour les magazines et autres imprimés. C'est en fait plus facile à lire si vous gardez les colonnes étroites.

27voto

Sam Hasler Points 10253

Lorsque vous avez une séquence d'instructions qui se répète avec de légères variations, il peut être plus facile de voir les similitudes et les différences, si elles sont regroupées dans des lignes de sorte que les différences sont alignés verticalement.

Je dirais que celui-ci est beaucoup plus lisible que ça aurait été si j'avais le diviser sur plusieurs lignes:

switch(Type) {
case External_BL:	mpstrd["X"] = ptDig1.x - RadialClrX;	mpstrd["Y"] = ptDig1.y - RadialClrY;	break;
case External_BR:	mpstrd["X"] = ptDig1.x + RadialClrX;	mpstrd["Y"] = ptDig1.y - RadialClrY;	break;
case External_TR:	mpstrd["X"] = ptDig1.x + RadialClrX;	mpstrd["Y"] = ptDig1.y + RadialClrY;	break;
case External_TL:	mpstrd["X"] = ptDig1.x - RadialClrX;	mpstrd["Y"] = ptDig1.y + RadialClrY;	break;
case Internal_BL:	mpstrd["X"] = ptDig1.x + RadialClrX;	mpstrd["Y"] = ptDig1.y + RadialClrY;	break;
case Internal_BR:	mpstrd["X"] = ptDig1.x - RadialClrX;	mpstrd["Y"] = ptDig1.y + RadialClrY;	break;
case Internal_TR:	mpstrd["X"] = ptDig1.x - RadialClrX;	mpstrd["Y"] = ptDig1.y - RadialClrY;	break;
case Internal_TL:	mpstrd["X"] = ptDig1.x + RadialClrX;	mpstrd["Y"] = ptDig1.y - RadialClrY;	break;
}

Mise à jour: Dans le commentaire, il a été suggéré que ce serait une nouvelle façon de faire de la ci-dessus:

switch(Type) {
  case External_BL: dxDir = - 1; dyDir = - 1; break;
  case External_BR: dxDir = + 1; dyDir = - 1; break;
  case External_TR: dxDir = + 1; dyDir = + 1; break;
  case External_TL: dxDir = - 1; dyDir = + 1; break;
  case Internal_BL: dxDir = + 1; dyDir = + 1; break;
  case Internal_BR: dxDir = - 1; dyDir = + 1; break;
  case Internal_TR: dxDir = - 1; dyDir = - 1; break;
  case Internal_TL: dxDir = + 1; dyDir = - 1; break;
}
mpstrd["X"] = pt1.x + dxDir * RadialClrX;
mpstrd["Y"] = pt1.y + dyDir * RadialClrY;

bien qu'il s'inscrit désormais dans 80 colonnes, je pense que mon point est toujours debout et j'ai juste pris un mauvais exemple. Il ne démontrent encore que le fait de placer plusieurs instructions sur une ligne peut améliorer la lisibilité.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X