J'ai toujours soutenu l'idée d'avoir des règles de codage pour les développeurs dans une entreprise ou un projet spécifique. Surtout si l'entreprise a une taille supérieure à 10. Plus l'entreprise est grande, plus le besoin est grand. Je sais que beaucoup de gens seront en désaccord, mais j'ai vu des projets qui n'en ont pas et le code ressemble à un désastre total.
Le vrai problème qui en découle est de savoir comment rendre ces têtes dures qui n'aiment pas utiliser les crochets dans les instructions if, ou utiliser la même chaîne de connexions partout dans le code, ou autre, pour utiliser les règles de codage sans les opposer l'idée?
coding
coding-standards
coding-style
company
TheBoyan
la source
la source
Réponses:
Faites-les participer à la résolution d'un problème plutôt qu'à la lutte contre les règles. Personnellement, je préfère l'idée de «guides de style», de «normes de codage» ou quelque chose de similaire, dans l'espoir que cela empêche la réaction «règles = mauvaise» de la secousse du genou.
Mais même si c'est le cas - j'ai tendance à penser que les règles sont en place pour une raison, et la manière d'inciter les personnes à la tête dure à se retourner est de leur faire réaliser qu'en suivant les directives, elles aident à rendre le code plus facile à lire pour tout le monde.
Parfois, la pression des pairs est la meilleure solution pour cela.
la source
Dans mon travail, nous utilisons les trois solutions suivantes:
1) Adoptez un vérificateur de style de code tel que l'excellent Checkstyle (pour Java) ou StyleCop (pour C #). Ce sont des outils faciles à configurer qui peuvent automatiquement mettre en évidence les écarts de style / règle de codage. Il donne à chacun une tierce partie neutre pour déterminer ce qui est et n'est pas acceptable.
2) Adoptez un modèle de code de reformatage à sauvegarde automatique (voici un exemple utilisant Eclipse) (et un autre pour Visual Studio) qui formatera automatiquement votre code lors de la sauvegarde. C'est génial pour permettre à quelqu'un de coder comme il le souhaite, mais d'avoir tout le code formaté de la même manière lors de l'enregistrement / de la validation. J'aime vraiment celui-ci et notre code n'a jamais été aussi cohérent.
3) Revues de code. J'espère que vous le faites de toute façon, mais une chose que cela devrait souligner, c'est où les règles / styles de codage enfreignent les conventions.
En plus de ce qui précède, il est important que tout le monde soit sur le même bateau et ait convenu des styles / règles vers lesquels ils travaillent. Faites comprendre que vous n'obtiendrez pas l'accord de tout le monde sur tout, mais demandez à l'équipe de s'engager à respecter ce que l'équipe décide. Assurez-vous de revoir de temps en temps les styles / règles choisis pour tenir compte de l'expérience réelle dans leur utilisation et du roulement d'équipe.
la source
Sont-ils "durs" en n'utilisant pas de crochets ou s'agit-il d'une demande "dure"?
Choisissez vos batailles. Je doute que ce soit l'un de ceux qui mérite d'être choisi. Je n'apprécierais pas de travailler n'importe où qui m'attendait n'importe où près de ce niveau de détail sur le "premier code d'enregistrement". Il s'agit d'un indicateur de drapeau rouge indiquant que l'équipe ne comprend pas le refactoring.
OO 101 : "Refactoriser lorsque le produit fait ce qu'il doit faire". Pas avant.
la source
Il est assez difficile de s'asseoir sur l'épaule de chaque développeur dans de grandes équipes, en s'assurant qu'ils mettent des accolades là où vous pensez qu'ils devraient aller - faites-moi confiance à ce sujet;).
Si c'est quelque chose que vous sentez vraiment gêner votre développement, alors vous allez avoir besoin d'un "gardien". Ne laissez pas les gens s'enregistrer sans un examen du code par exemple. Demandez à l'architecte technique ou au chef d'équipe de revoir le code et de le rejeter jusqu'à ce qu'il "corrige" le style de code. Ils s'en lasseront bientôt et s'adapteront aux règles, cependant, peut-être aussi longtemps qu'ils seront contrôlés.
Bien sûr, certaines entreprises retirent complètement les privilèges d'enregistrement aux programmeurs juniors. Lorsqu'ils apprennent enfin les règles de codage des entreprises, ils obtiennent le privilège.
la source
Je pense que vous parlez de problèmes de niveaux très différents:
Il s'agit principalement d'un problème de style / lisibilité, sauf en cas de problème de priorité explicite de l'opérateur. Ce dernier ne devrait pas être très courant, et est testable de toute façon, donc facile à réparer. Les premiers peuvent facilement régresser dans une guerre sainte avec peu à gagner, mais de graves conséquences négatives pour le moral de l'équipe. Alors méfiez-vous - ne faites que pousser des règles éprouvées, qui ont été acceptées par au moins certaines équipes / communautés et qui ont fait leurs preuves.
Si vous parlez de Magic Constants, il s'agit en effet d'un problème de maintenance (plus potentiellement de sécurité), et à ce titre, à mon humble avis, tout développeur chevronné comprendra et acceptera qu'il s'agit d'une mauvaise chose.
Vous ne pouvez pas forcer les gens à accepter les règles de codage - votre seule chance est de parvenir à une compréhension commune et à l'adhésion des membres de l'équipe via une discussion et un débat (parfois féroce) . Vous devez utiliser des arguments logiques et convaincants , en montrant la valeur derrière chaque règle et en expliquant comment le suivre va payer pour l'inconvénient d'ajuster des habitudes enracinées. D'un autre côté, nous nous efforçons de rendre la transition aussi simple que possible , en introduisant par exemple un formatage de code automatisé lors de l'enregistrement, conformément aux règles acceptées.
Pourtant, il suffit parfois d'accepter que les gens ont des opinions différentes , donc les règles de codage que tout le monde peut accepter seront indulgentes à certains égards. Acceptez cela et concentrez-vous sur les domaines où vous pouvez améliorer les choses avec moins d'effort.
la source
Faites-les participer à l'établissement des règles. Cela aide généralement à encourager les gens à les suivre.
la source
C'est à cela que sert la révision du code. Les réviseurs de code ne devraient pas laisser passer un code qui ne répond pas aux normes. Assurez-vous de ne pas assouplir les règles pour les correctifs urgents. Le fait d'avoir à refaire plusieurs fois sous pression pour le faire résoudra ceux qui hésitent à faire leur travail correctement la première fois.
la source
La même chaîne de connexion partout? La solution à cela est de refactoriser jusqu'à ce que vous ayez supprimé toute la duplication. Les codeurs copier-coller devraient aller en prison pour programmeurs. (Ne riez pas! Steve Ballmer est le gardien.)
Mais le vrai problème ici est votre verbe "faire" . Vous ne pouvez pas obliger les programmeurs à faire quoi que ce soit, et si vous le faites, vous gaspillez leur caractéristique la plus précieuse: l'engagement intellectuel profond qui vient de travailler sur quelque chose qui vous tient à cœur.
La façon dont je le résoudrais:
La programmation est un sport d'équipe ou une œuvre artistique collective. Ce sur quoi les gens s'accordent n'a pas autant d'importance que ce qu'ils sont d'accord, et ils parviennent à conclure de nouveaux accords si nécessaire.
la source