Toute réponse directe va être extrême. Il est clair que dans certains cas, le délai est si serré que vous devez utiliser un code laid, et dans certains cas, le code est si laid qu'il vaut la peine de manquer le délai pour l'améliorer. Ce dont vous avez besoin, ce sont des méthodes pour juger de qui vous êtes, et peut-être des méthodes pour fixer des délais réalistes qui permettent de rédiger du code de meilleure qualité.
Ne sauvegardez pas le nettoyage pour plus tard. Sauf si vous avez habituellement des périodes sans autre tâche que le refactor, il n'y a pas de "plus tard" dans lequel il deviendra plus ou moins prioritaire de ranger le code qu'il ne l'est actuellement. La routine est "rouge, vert, refactor", pas "rouge, vert, faites quelque chose de complètement différent pendant deux semaines, refactor". De manière réaliste, vous ne modifierez pas le code avant la prochaine fois que vous le revisitez pour une autre raison et vous serez probablement soumis à une date limite également. Vos vraies options sont de le réparer maintenant ou de le laisser.
Bien sûr, un code bien stylé est préférable à un code mal stylé, en supposant que vous envisagiez de le lire à nouveau. Si vous envisagez de ne plus jamais le relire, ne le rangez pas . Expédiez la première chose qui passe les tests. Mais c'est un scénario assez rare, pour la plupart des programmeurs, cela n'arrive jamais plus ou moins. En ignorant ce cas, vous seul avez les détails de votre cas réel pour juger du coût de la réparation par rapport au coût (en cas de maintenance accrue) pour ne pas résoudre le problème.
Certaines choses ne sont pas plus difficiles à corriger au moment où le code nécessite une maintenance que ce qu’elles sont à réparer maintenant. Ceux-ci ne vous aident pas vraiment beaucoup à réparer maintenant. Les plus évidentes sont faciles à corriger (erreurs d’espace, etc.) et il est donc difficile d’imaginer que vous avez le temps de poser cette question, mais pas de la résoudre ;-) Pour celles qui ne sont pas anodines et de ce genre, alors OK , vous avez du code qui n’est pas idéal mais vous devez être pragmatique. Cela fonctionne et vous êtes sur une date limite. Utilise le.
Certaines choses sont beaucoup plus faciles à régler maintenant qu’elles ne le seront plus tard quand (a) elles ne sont pas si fraîches dans l’esprit de tous; (b) d'autres choses ont été écrites qui les utilisent ou les imitent. Celles-ci sont beaucoup plus précieuses à corriger maintenant, donc hiérarchisez-les. Si vous n'avez pas le temps, dans vos délais, de les corriger, vous devez alors faire de votre mieux pour respecter des délais plus longs, car vous accumulez des dettes dans votre code que vous devrez probablement payer lors de votre prochaine visite. le code.
La méthode privilégiée de correction du code est un processus de révision. Donnez votre avis sur les problèmes que vous rencontrez et renvoyez-le au junior pour qu’il change . Vous pouvez donner des exemples de ce que vous voulez dire et laisser l’administrateur junior rechercher tous les cas dans le code auquel ils s’appliquent, mais ne vous contentez pas de terminer son code pour eux. Si vous le faites, vous ne leur donnez aucun moyen de s'améliorer.
Vous devriez écrire les problèmes courants dans un guide de style qui dit "ne le faites pas, faites-le plutôt", et explique pourquoi. En fin de compte, on permet que la raison soit "afin de rendre notre code esthétiquement cohérent", mais si vous n'êtes pas prêt à écrire vos règles avec une justification, vous ne devriez probablement pas les appliquer non plus. Laissez juste chaque programmeur libre de choisir.
Enfin, méfiez-vous de la tendance à peaufiner les choses indéfiniment. Les rendements diminuent et vous devez apprendre par l'expérience où ils sont encore bons. Il est absolument essentiel de vous faire une idée réaliste de ce qui est assez bon, sinon vous ne pouvez pas avoir cette négociation dans laquelle vous vous assurez que vos délais vous donnent le temps de créer du code "assez bon". Passez votre temps sur des choses qui ne vous suffisent pas.