32 votes

L'argument «devrait être facile à comprendre pour un développeur junior»

Quelqu'un pense-t-il vraiment que c'est une bonne raison de «baisser» votre code? Quand un gestionnaire vous demande de rendre votre code simple (en termes de compétences technologiques nécessaires pour le comprendre) au prix d'un code encombré plus verbeux, que devez-vous faire?

63voto

Scott Muc Points 2212

J'ai fortement en désaccord. Les développeurs juniors sera à la fin développeurs chevronnés. Comment? Par la rencontre des rubriques avancées qui ne sont pas enseignés à l'école.

Mon code de base maintenant fait un usage intensif de l'Inversion de Contrôle des conteneurs. Je voudrais de ne jamais revenir mon code à l'ancienne parce qu'un développeur junior a eu des problèmes groking Cio. Au lieu de cela je les prendrais pour une bière après le travail et d'en discuter. Le plus de la junior dev apprend au moins à la main qui doit être fait.

Voici un blog de discuter de ce sujet très.

21voto

Dave Ray Points 20873

Si vous êtes constamment nivellement vers le bas de votre code ou des dessins, c'est une très bonne façon de s'assurer que votre junior développeurs de rester muet. Les mettre au défi et de l'utiliser comme une occasion de mentorat. Bien sûr, certains n'apprendront jamais, mais vous avez plus de problèmes à ce point.

Ce n'est pas seulement pointues, cheveux boss soit. En tant que senior dev, il est souvent difficile de résister à l'envie de maman les développeurs juniors. "Oh, je vais le faire cette partie parce que c'est trop dur pour eux", ou il va prendre trop de temps, ou ils vont loin dans les herbes.

Et enfin, assurez-vous de trouver un équilibre entre idiomatiques code qui utilise toute la puissance d'une langue vs idiomatiques code d'abus de ce pouvoir. Il n'y a pas de raison, vous avez besoin de remplacer l'opérateur || juste pour exécuter ses arguments dans deux threads différents. Au moins stupide le code vers le bas un peu pour votre plus âgés, dumber, le soi futur.

19voto

Jon Skeet Points 692016

Eh bien, je pense qu'il est raisonnable d'éviter l'utilisation "intelligente" des éléments de langage, sauf si ils ont vraiment, vraiment faire le code mieux, au terme de laquelle, si un développeur junior voit, j'espère qu'ils demanderais plutôt que d'être simplement flumoxed.

Voici une autre façon de phrasé bien: "Écrire votre code, de sorte qu'il est assez facile de comprendre que si vous avez appelé à 3h du matin et demandé de fixer un bug, vous pouvez toujours les comprendre."

Sérieusement, le rendre aussi facile à comprendre que possible. Qui ne veut pas dire un commentaire à chaque ligne, il signifie un commentaire où le but d'un morceau de code n'est pas évident, et alors seulement, d'où le choix de "bien faire il évident" ne fonctionne pas.

11voto

Jeffrey Hantin Points 19272

Il y a une différence entre le code du puzzle et le code complexe.

J'ai trouvé que le plus gros problème est qu'il y a une grande différence entre "facile à comprendre en lisant" et "bien factorisé", et que les deux objectifs sont souvent en tension directe l'un avec l'autre. Dans un code bien factorisé, il y a beaucoup plus de sauts entre les classes et beaucoup de répartition virtuelle, donc le chemin à travers le code est très non linéaire.

8voto

Element Points 2511

Oui, la lisibilité et la capacité de comprendre facilement le code sont à mon avis une grande partie de la maintenabilité.

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