web-dev-qa-db-fra.com

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

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.

19
RationalGeek

Voici le guide officiel de Microsoft sur les normes de codage pour la version 4.0 du framework .NET.

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.

29
Ryan Hayes

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 lignes directrices (telles que publiées par d'autres).

Vous pouvez également modifier les règles qui l'accompagnent par défaut.

10
Steven Evers
6
ysolik

Nous l'avons adopté dans notre bureau. Il est écrit par Lance Hunt, et il est assez complet:

http://weblogs.asp.net/lhunt/pages/CSharp-Coding-Standards-document.aspx

5
CokoBWare

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

4
Victor Hurdugaci

Je dois recommander les normes mises à disposition par SSW (une société de conseil australienne).

Pas seulement le codage, mais la gestion de projet, etc ... Une ressource incroyablement précieuse.

http://www.ssw.com.au/ssw/standards/default.aspx

2
davewasthere

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
Ian

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 de m'enregistrer sur TFS. (gratuit)

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

2
Nickz

J'essaie de choisir un ensemble commun de styles provenant de diverses sources. Certains qui n'ont pas été mentionnés auparavant:

2
alexandrul

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 - must 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 de regrouper vos variables par domaine fonctionnel. Cela compte (vous le saurez si vous avez déjà vu 20 variables dispersées dans le lieu).

Ils vous disent de mettre vos accolades à certains endroits. Grosse affaire! Je peux lire le 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 ont toujours à suivre.

1
gbjbaanb

Attention: 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 perdre du temps sur ce non-sens.

  1. Installez ReSharper , laissez les valeurs par défaut, faites 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 le curly braces et autres inanités, plus ils seront codés. 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 classique Code complet , les aidera à comprendre la raison d'être des normes de codage et offrira de nombreux conseils utiles pour transmettre efficacement du 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 simplement 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 satisfait. En plus de ses nombreuses autres fonctionnalités, il gère les problèmes de style de base sont plus rentables que n'importe quel document standard ou système de révision de code - laissant le cerveau pour les choses qui comptent.)

1
DanO