web-dev-qa-db-fra.com

Traiter avec des collègues qui n'ont pas de style de codage cohérent?

Qu'est-ce que vous travaillez avec quelqu'un qui a tendance à écrire de manière stylistique du code? Le code dont je parle est généralement techniquement correct, raisonnablement structuré, et peut même être algorithmiquement élégant, mais il suffit de a l'air laid. Nous avons:

  • Mélange de conventitions et de titres de dénomination différentes (underscore_style Et camelCase et UpperCamel et CAPS tout appliqué plus ou moins à des variables différentes dans la même fonction)
  • Bizarre et espacement incohérent, par exemple Functioncall (arg1 ,arg2,arg3 );
  • Beaucoup de mots mal orthographiés dans des commentaires et des noms de variables

Nous avons un bon système de critique de code où je travaille, nous permettons donc de regarder et de réparer les pires trucs. Cependant, il se sent vraiment petit à envoyer une critique de code composée de 50 lignes de "Ajouter un espace ici. Épeler" Itariator "correctement. Changer cette capitalisation. Etc."

Comment encourageriez-vous cette personne à être plus prudent et compatible avec ce type de détails?

30
JSBձոգչ

d'accord sur une convention de codage

Même s'il s'agit d'un pager un seul pager. Je suggère que toute l'équipe s'asseoir et tout d'accord sur la convention de base de codage de base que toute l'équipe peut utiliser.

19
Darknight

Je pense que vous devez juste continuer à faire ce que vous faites. Avoir un ensemble clair de directives de codage et les appliquer pendant les revues de code. Si un développeur reçoit 50 ou 100 lignes de "Ajouter un espace ici" et "Épeler" Itérateur "correctement" chaque fois qu'il essaie de vérifier quelque chose, et il n'est en fait pas autorisé à enregistrer avant que tous ceux qui ne soient fixés, éventuellement Je dois commencer à écrire du code de nettoyage juste pour éviter les tracas.

Je pense que si vous réparez ces choses vous-même, comme Nimchimpsky suggéra, vous nettoyez après cette personne pour toujours.

28
Dima

Je pense que des conventions telles que la dénomination des classes et des variables sont importantes et devraient également être suivies à l'aide d'un code élégant et efficace, mais au risque d'avoir la réponse de ma réponse à plusieurs reprises, je dois dire que, en général, le paradigme "joli code" est poussé beaucoup autour de l'iMho très surestimé.

Tout d'abord, le développeur qui a écrit qu'il devra le maintenir en premier lieu, et s'il est jamais frappé par un bus et qu'un autre programmeur ne peut pas comprendre comment cela fonctionne parce que le code n'est pas "joli", je dirais que L'autre développeur n'est pas très bon de toute façon. Et il y a beaucoup de formes automatisées/belles-d'embellications, alors tout le monde peut utiliser celles-ci pour embellir le code si nécessaire, sans perdre de temps tout en étant "dans le flux"/"dans la zone".

Veuillez noter que je ne préconise pas le codage de style spaghetti/cow-boy ici, j'ai vu en fait un code spaghetti très joliment formaté (corps de fonction couvrant 4-5 écrans, des variables globales dispersées autour de différents fichiers de code source, généralement mauvais choix de noms, etc.).

5
Jas

Nous avons un bon système de critique de code où je travaille, nous permettons donc de regarder et de réparer les pires trucs. Cependant, il se sent vraiment petit à envoyer une critique de code composée de 50 lignes de "Ajouter un espace ici. Épeler" Itariator "correctement. Changer cette capitalisation. Etc."

Je le changerais moi-même, puis ajouter un commentaire poli dans le code.

cela suppose qu'il existe déjà un guide de style que la question indiquait:

Nous avons un bon système de critique de code

Donc, ma suggestion est un dernier recours, je pense que c'est juste aussi rapide de le changer vous-même et de laisser un commentaire, car il s'agit d'envoyer un e-mail ou autre chose.

4
NimChimpsky

Un de mes collègues écrit HTML de manière à ce qu'elle rend ma peau rampe. Imaginez mon HTML Nice et structuré avec deux retenues spatiales, piraté en morceaux par des étiquettes ajoutées à la fin de la mille qui se terminent sur la même ligne ou sur le suivant comme une saouille qui doit jeter son bras autour de vous pour rester debout. Les nouvelles lignes sont rarement en retrait mais si elles sont, je suis sûr qu'il y a un trou noir très chaotique dans une partie de la galaxie qui crache des valeurs de température irrationnelles de telle sorte que ses chiffres reflètent le nombre d'espaces ou d'onglets utilisés dans une telle indentation. par cette femme. Si j'ai la chance, je verrai une balise d'entrée qui est fermée avec "</input> ". Total cauchemar que vous pouvez comprendre.

Personne ne semble comprendre cela non plus, voir comment pour la plupart des hauts hauts ici, un code organisé ou un code non organisé, c'est comme la différence entre nous mettant le fromage suisse ou le fromage américain sur nos sandwichs, qui est à dire, ils pourraient vraiment se soucier. J'ai commencé à le laisser glisser parce que j'étais stressé avec un autre projet, et je pense qu'elle a commencé à se rendre compte de la difficulté de comprendre le code comme celui-ci avant qu'elle ne souhaitait s'améliorer. Mon conseil serait de démontrer pourquoi Il est préférable de styler votre code plus que de simplement leur dire de le faire.

3
Neil

Le code dont je parle est généralement techniquement correct, raisonnablement structuré et peut même être algorithmiquement élégant ...

Soyez heureux que vous ayez tout cela. La plupart des programmeurs vous donneront peut-être la première chose sur cette liste. Je pense que la nommée et l'espacement variables est la chose la moins importante à s'inquiéter.

3
jjnguy

Nous avons un test Junit qui recherche des problèmes de formatage. Il fonctionne dans le cadre de la construction. Je suis continuellement mèche en omettant un espace entre si, tandis que ou pour et la parenthèse d'ouverture. Notre code est systématiquement formaté, cependant.

http://code.google.com/p/kawala/wiki/badcodesnippetsRunner

2
Kevin Peterson

On dirait que vous devez mettre en place et accepter une convention de style. Si vous ne le faites pas, vous aurez des bibliothèques qui ont 3 retenues spatiales, d'autres qui en ont 4, certains qui utilisent un étui à chameau et d'autres qui utilisent des sous-traitants.

2
wheaties

Les changements que vous souhaitez apporter vos préférences personnelles ou avez-vous une norme réelle à suivre? Si vous n'avez pas de norme réelle, alors ne faites pas cela. D'abord définir une norme. Ensuite, vous pouvez obtenir des logiciels pouvant être définis pour refroidir le code dans les paramètres STANDADRD (au moins au moins certaines choses).

Si vous avez une norme, commencez à l'appliquer dans l'examen du code. Il ne sert à rien d'avoir une norme si vous ne l'appliquez pas dans l'examen du code. Cela signifiera beaucoup de travail supplémentaire en matière de maintenance, car les gens devront réparer l'ancien code qui ne répondait pas à la norme standard lorsqu'ils le touchent.

Même sans une norme, insistez sur la fixation des distinctions de noms variables (je ne m'inquiéterais pas particulièrement pour les commentaires) car ils conduiront tous ceux qui touchent le code fou pour toujours.

2
HLGEM

Les normes de codage doivent être identifiées afin que tout le monde sait ce qu'ils sont, puis ils doivent être appliqués. Il devrait y avoir des conséquences pour ne pas suivre les règles.

Voici les choses qui devraient fournir une incitation:

  1. Les critiques de code seront fastidieuses et plus longues que nécessaire.
  2. Le code sera rejeté plus souvent.
  3. Les horaires ne seront pas satisfaits.

Si cette personne n'a pas à s'inquiéter à ce sujet parce que personne n'autorise vos règles ou ils ne se soucient pas s'ils sont improductifs (et personne ne fait quoi que ce soit à ce sujet), il n'y a pas grand chose à faire à ce sujet.

2
JeffO

Je serais tenté de suggérer d'avoir une conversation privée et de voir si vous pourriez trouver une cause fondamentale:

  1. Le collègue est-il précipité et parce que quelqu'un voulait le code hier, la personne tente d'obtenir quelque chose de travailler aussi vite que possible? Cela peut être une occasion d'informer cette personne de se concentrer davantage sur la qualité que la vitesse de leur travail. Un mantra comme, "Prenez votre temps", pourrait être utile si cela n'est pas contre-productif.

  2. Comment la personne affiche son travail? S'il y a un sentiment de fierté, vous pouvez avoir un angle à utiliser pour vous améliorer. Si c'est juste un travail qui paie les factures, il peut être beaucoup plus difficile d'obtenir des changements. Savent-ils qu'ils ne font pas un excellent travail mais sont si proches de cela?

  3. Cette personne n'est-elle pas d'accord avec les conventions et essaie de coder en manifestation? Si oui, alors vous avez peut-être un gros problème, mais cela vaut la peine de déterminer si c'est le cas ou la personne simplement paresseuse? Quels types de motivation peuvent être utiles ici, par exemple. Pourriez-vous faire appel à la cupidité, à la fierté ou à un autre vice pour amener la personne à améliorer. Ceci est sournois mais éventuellement efficace si j'essaie la Nice Guy Route obtient une nulle part.

  4. Comment gagner des amis et influencer les gens a quelques suggestions en termes de persuasion qui peut fonctionner, telles que la louée des améliorations et donner à la personne une bonne réputation à défendre.

Quant à la raison pour laquelle cela doit être fait en privé, voici quelques raisons:

  1. Il y a de bonnes chances d'humiliation, de critiques ou d'autres désagréments qui sont mieux conservés derrière une porte que laissée dans l'ouverture où quelqu'un peut sentir que leur personnage est assassiné.

  2. Vous voulez encourager cette autre personne à ouvrir un peu. Un défi ici est que certaines personnes sont aussi gardées que cela peut prendre beaucoup de temps pour les amener à emporter leurs murs.

  3. Si possible, je suggérerais d'essayer de le faire un peu loin du bureau. Sortez pour le déjeuner, faites une promenade ou faites quelque chose de pour que les environnements soient suffisamment modifiés que la personne se sente un peu plus confortable. Cela peut être un défi et nécessite de connaître la personne, mais l'idée ici est que, dans le bureau, certaines personnes porteront un masque de travail qui ne sera probablement pas utile ici.

  4. Préparez-vous à la conversation pour aller plutôt chauffer ou moche, mais cela pourrait bien être un bon signe si vous pouvez garder l'autre personne engagée et avoir un bon dialogue. Certaines personnes aiment garder les choses à l'extérieur et les autres peuvent préférer des moyens plus subtils de faire avancer les choses. La clé est de vous assurer que vous écoutez suffisamment l'autre personne pour empathiser et essayer de comprendre leur côté.

2
JB King

Quelle est la difficulté à suivre les conventions de style? Je comprends les erreurs d'orthographe, mais le reste est un indicateur de pensée bâclée et de codage. Dites à la personne qu'ils doivent être plus cohérentes en ce qui concerne le code de production car ils ne sont pas les seuls à la regarder. C'est tout simplement impoli, égoïste et inconsidéré pour écrire un code de production dans un style inconsiste.

1
davidk01

Code Embellissement Comme Incroty sera capable de résoudre certains de vos problèmes. Si vous êtes prêt à payer pour cela, il existe des logiciels de haut niveau qui intégrent les règles dans le code source lui-même comme parasoft . Parasoft rend obligatoire d'écrire le code dans un style uniforme. Vous pouvez également intégrer vos propres règles. Lorsque de tels outils sont utilisés, les développeurs sont obligés d'utiliser un style uniforme. Et après un moment, ils s'y habitueront.

1
Manoj R

Si vous utilisez Eclipse, activez Enregistrer les actions pour le Java éditeurs, et dites à tout le monde de l'utiliser. Cela corrige des problèmes de formatage sur chaque sauvegarde, mais ne corrige pas la mauvaise capitalisation. Cela pourrait être assez utile. bien que!

alt text

1
user1249

MDR. Vous détesteriez absolument mon code. Je ne peux pas épeler pour sauver ma vie et je m'en fiche.

Mais je sais que certaines personnes se soucient réellement de ces choses.

Je vous suggère de tirer la personne qui écrit ce code laid s'ils ne changent pas, puis trouvez quelqu'un qui rend les choses vraiment jolies et espérons pouvoir écrire un code qui

est généralement techniquement correct, raisonnablement structuré et peut même être algorithmique élégant

et s'ils ne peuvent pas alors au moins vous pouvez montrer le joli code cassé au client et les vendre à ce sujet!

Mais sérieusement. Concentrez-vous sur les choses en réalité importantes. Si vous ne trouvez pas une bonne raison solide à l'extérieur "Ça fait mal mes sensibilités délicates", ignorez-le pour l'instant. S'il est en fait important, assoyez-vous avec la personne et convaincez-les de cette importance. Des choses comme des normes qui facilitent la différence entre le niveau de classe, le niveau de la méthode, les variables partagées et constantes font une différence. Si le codeur en question se soucie du tout à propos de son métier, ils comprendront et essaient de faire la bonne chose.

0
ElGringoGrande

Ma solution lorsqu'elle traite des ressources externalisées qui ne donnaient pas de &% $ # sur la formation (ou des bugs facilement évitables pour cette affaire) était de faire appliquer le serveur de construction. J'ai créé un travail de serveur CI qui a couru chaque nuit qui a vérifié le code, Ran Jalopy et Findbugs a ensuite vérifié le code de retour. Une fois que l'autre équipe a appris que l'utilisation des conventions de code standard rendrait leur travail plus difficile, ils ont commencé à utiliser leur travail. IDE pour maintenir un format standard.

0
sal