Normes de codage .NET / C # recommandées? [fermé]


19

Quelles normes de codage pensez-vous sont importantes pour les projets .NET / C #? Cela pourrait être quelque chose de traiter avec des accolades bouclées et l'espacement et la pédanterie comme ça. Ou il peut s'agir de questions plus fondamentales telles que les espaces de noms à éviter dans le .NET Framework, les meilleures pratiques avec les fichiers de configuration, etc.

Essayez d'éviter de créer un article qui n'est que le corollaire d'un autre. Par exemple, il serait bien d'avoir un poste axé sur les accolades. Nous n'avons pas besoin de deux pour supporter un style par rapport à l'autre. L'idée n'est pas de voter pour la norme de votre animal de compagnie, mais plutôt de préciser ce à quoi il faut penser lors de la création des normes.

Réponses:


29

Voici le Guide Microsoft officiel sur les normes de codage pour le .NET Framework version 4.0.

Si vous voulez l'ancienne version 1.1, essayez ici .

Je ne suis pas obligé de suivre cela jusqu'à un «T», comme on dit. Cependant, en cas de doute, c'est le meilleur endroit pour commencer à être cohérent avec le cadre .NET actuel, ce qui le rend plus facile pour tout le monde, qu'il soit nouveau ou non pour votre projet particulier.


3
Ouaip - ne peut pas se tromper en faisant correspondre ce que les gens qui construisent le logiciel utilisent. J'ai vu des guerres de religion pour ce genre de choses, mais lorsque vous recevez quelque chose qui permettra à votre propre code d'être cohérent avec les cadres qu'il utilise, vous devrez avoir un argument extrêmement fort pour ne pas l'utiliser. En prime, les outils d'analyse statique produits par MS sont déjà réglés pour rechercher ces pratiques.
Todd Williamson

Puis-je obtenir des commentaires sur le downvote, s'il vous plaît?
Ryan Hayes

Que ne suivez-vous pas?
JeffO

Eh bien, il y a beaucoup de choses là-dedans et je ne les ai pas encore mémorisées. Donc, au lieu de dire que je le suis exactement (ce que je ne sais pas, donc cela peut ou peut ne pas être vrai), je dis simplement que non, haha. Si je savais tout cela, je le ferais probablement.
Ryan Hayes

10

Pourrait vouloir jeter un oeil à StyleCop . Vous pouvez même l'incorporer dans certains systèmes de build afin que les erreurs de style interrompent la build. Les paramètres par défaut sont généralement conformes à ce que MS suggère pour les directives (telles que publiées par d'autres).

Vous pouvez également modifier les règles fournies par défaut.




4

Commencez avec FxCop . Il vous informera des violations des meilleures pratiques dans votre code existant.


FxCop examine les binaires, il ne vous dira pas le style de codage, mais il détectera certains problèmes.
Steve



2

Les méthodes doivent être courtes

La plupart des méthodes doivent utiliser la plupart des champs d'une classe.

Choisissez bien vos noms.

Par exemple, lisez le livre Clean Code


2

J'utilise les applications suivantes pour maintenir une norme de codage en plus des règles de camelback, du nom de la méthode, etc.

GhostDoc - Ajoute un commentaire généré automatiquement en haut de chaque méthode. L'application fournit un bon résumé initial de la méthode. (gratuit)

http://submain.com/products/ghostdoc.aspx

Resharper - analyse de code et refactoring http://www.jetbrains.com/resharper/

StyleCop - Comme un nettoyage final avant l'enregistrement à TFS. (gratuit)

http://code.msdn.microsoft.com/sourceanalysis


1

Je déteste les normes de codage établies, elles visent toutes à vous dire de ne pas faire quelques erreurs stupides, ou à vous dire comment formater votre code d'une manière ou d'une autre. Ce sont toutes des banalités.

Je veux dire, ils vous diront combien d'espaces à mettre entre les opérateurs, comment mettre vos variables en casse, quels préfixes de style hongrois utiliser (par exemple _ pour les membres), des conseils contradictoires (par exemple, vous ne pouvez pas appeler une classe Cxyz mais vous devez appeler une interface Ixyz), comment mettre en page votre code (mettre votre variable en haut de la classe ou en bas)

Tous sont inutiles dans l’ensemble.

Ce qui importe pour écrire du code efficace, maintenable et lisible n'est jamais mentionné dans ces normes.

Par exemple: placez-vous vos variables en haut ou en bas de votre classe? Eh bien, peu importe - ce qui importe, c'est si vous regroupez vos variables par domaine fonctionnel. C'est important (vous le saurez si vous avez déjà vu 20 variables éparpillées sur le lieu).

Ils vous disent de mettre vos accolades à certains endroits. Grosse affaire! Je peux lire du code à la fois entre parenthèses de style K&R et ANSI, cela n'a pas d'importance. Ce qui importe, c'est que toutes les classes Window soient différenciées d'une manière ou d'une autre (comme être suffixées avec Form ou Dlg ou autre) afin que vous puissiez voir quels fichiers contiennent du code de fenêtre et quels sont les objets ordinaires.

Des trucs comme celui-ci comptent beaucoup plus que les points mineurs que contiennent généralement les normes. Je ne sais pas pourquoi ils ont évolué comme ça, mais souvent ce ne sont qu'une tonne de règles qui entravent un codage efficace et productif.

Mes normes essaient de se concentrer davantage sur l'organisation du code et des fichiers. Nous avons certaines normes qui font référence à l'emplacement des fichiers. Par exemple, pour les non-développeurs, les gars peuvent regarder l'un de nos projets et récupérer immédiatement les fichiers de documentation dont ils ont besoin. De même, nous essayons de présenter le code du projet d'une manière aussi similaire à d'autres projets que pratique (note: aussi pratique, pas d'une manière fortement interdite qui peut ne pas être appropriée tout le temps) et, fondamentalement, nous essayons de faire des directives de normes qui peut être modifié au besoin.

En bref - ils sont là pour nous aider à travailler ensemble, pas comme un ensemble de règles restrictives qui doivent toujours être suivies.


1

Avertissement: Pragmatisme ci - dessous - La question semble être formulée pour susciter un débat sur le style "approprié" de corset bouclé, etc. Je ne supporte pas de perdre du temps sur ce non-sens.

  1. Installez ReSharper , laissez les valeurs par défaut, faites tout ce qu'il dit.

  2. Bénéfice - Tout le monde dans votre équipe aura le même style qui sera sacrément proche des directives de Microsoft, ne déviant que sur quelques points où les normes Resharper reflètent ce qui est réellement plus largement utilisé dans l'industrie et sont (sans doute) des améliorations.

Le moins de temps que votre équipe passe à créer et référencer un document ou un livre gigantesque, ou à tergiverser sur les inanités curly braceset autres, plus elles seront codées. ReSharper appliquera la dénomination et le style lors de la frappe. Terminé. Fin du débat. Il ne restait plus rien à discuter. Continuons.

Cela dit, une lecture du code complet complet les aidera à comprendre la raison d'être des normes de codage et offrira de nombreux conseils utiles pour transmettre efficacement le sens à travers le code - quelque chose qu'un document de normes ou un programme d'inspection ne peut pas faire.

Si vous souhaitez améliorer ce que le resharper peut faire pour vous, ajoutez StyleCop avec le plug-in StyleCop for ReSharper. Comme mentionné, il y aura quelques conflits mineurs entre les directives MS et les valeurs par défaut de ReSharper. Je voudrais juste aller avec ReSharper sur ceux-ci. Mais quel que soit le côté que vous prenez, enregistrez simplement les résultats dans le fichier de configuration ReSharper, partagez-le avec votre équipe et terminez.

(Non, je ne suis pas un shill payé pour ReSharper, juste un client heureux. En plus de ses nombreuses autres fonctionnalités, il gère les problèmes de style de base plus rentable que tout document standard ou système de révision de code - laissant le cerveau pour les choses qui comptent .)

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.