Des normes de codage existent pour rendre les équipes plus productives. En théorie, ils facilitent la compréhension, la modification et le test du code. En pratique, ils peuvent créer une quantité dangereuse de méta-travail; les équipes réécrivent le code existant encore et encore à la recherche de la solution la plus correcte et la plus élégante. Malheureusement, le problème du méta-travail semble pire dans les équipes où tout le monde est engagé, passionné et obsédé à faire la bonne chose.
En tant que consultant passant d'un projet à l'autre, j'ai constaté qu'une excellente discipline avec une norme de codage rigide contribue beaucoup moins à la réussite d'un projet que d'excellents développeurs qui sont intéressés par les résultats. Les styles de codage incohérents sont une nuisance mineure pour les développeurs incroyables. Ils sont productifs avec ou sans cohérence. Certes, s'ils rencontrent un code incohérent, ils vous poseront des questions sur le courantstandard et respectez-le. Cependant, ils n'insisteront pas pour mettre à jour chaque ligne de code du projet à la norme actuelle. Ils n'insistent pas parce qu'ils ont vu des bonnes pratiques se multiplier. La bonne façon de faire quelque chose aujourd'hui n'est pas la même que la bonne façon de faire quelque chose demain. Si c'était le cas, vos normes de codage n'évolueraient pas. Donc, si la façon correcte de faire quelque chose change avec le temps, peut-être que notre définition de «correct» est cassée.
Cela ne veut pas dire que les normes n'ont pas d'importance. N'oubliez pas que l'objectif des normes est la productivité. Si vous ne pouvez pas garantir que la réécriture d'une nouvelle norme sera rentable à long terme, ne perdez pas de temps dessus. Il est beaucoup plus facile de justifier une nouvelle norme dans un code nouveau ou refactorisé. L'élégance est cool mais ce n'est pas la même chose que les résultats.
Marche de Corbin
la source
Personnellement, je choisirais de conserver les anciens codes tels quels et de suivre les nouvelles normes, quoi que vous fassiez. Plus précisément, je n'utiliserai pas de double standard dans old.c. Mais si je vais créer new.c, il peut utiliser les nouvelles syntaxes raffinées :)
la source