Comment garantir une norme de codage unique dans .NET avec la prise en charge des outils

14

Probablement, la situation de base est familière à tout le monde. Vous avez convenu de certaines normes de codage dans votre équipe et il est maintenant temps de vous assurer que tout le monde les respecte.

Certains le font via une programmation couplée lourde, d'autres maintiennent une liste de normes de codage et effectuent une révision manuelle. D'autres utilisent même l'outil d'analyse de code statique de Visual Studio pour s'assurer que les normes de codage sont appliquées.

Quelles sont vos meilleures pratiques pour garantir les normes de codage? Quels outils utilisez-vous - y a-t-il des outils essentiels que chaque développeur devrait connaître? Comment intégrez-vous la standardisation de votre code dans vos outils de développement?

Stefan Papp
la source

Réponses:

15

StyleCop (maintenant aussi StyleCop pour Resharper) est couramment utilisé pour appliquer les règles de style de codage dans les bases de code C #.

Il peut être intégré à votre build CI et provoquer des échecs de build si des violations ont été introduites.

Oded
la source
Plus d'informations sur la façon de l'utiliser? Je voudrais exécuter une vérification de style avant chaque validation. J'ai donc besoin de cli pour ça. Y a-t-il. Je n'ai trouvé aucune information pertinente.
FreeLightman
1
Cela pourrait aider blog.submain.com/stylecop-detailed-guide
z-boss
@R. - si un seul pouvait personnaliser les règles StyleCop. Oh, attendez ...
Oded
@R. - vous pouvez également écrire vos propres règles.
Oded
FWIW, à partir du fichier lisez-moi sur github: "Bien que les demandes d'extraction continueront d'être acceptées, il est peu probable qu'un développement majeur soit effectué sur ce projet. Il est de plus en plus difficile et inefficace de maintenir l'analyseur C # personnalisé utilisé par StyleCop."
rouillé il y a
6

Tout d'abord, assurez-vous que vous disposez d'un serveur de génération approprié qui génère en continu votre code. TFS ou Jenkins / Hudson + Msbuild sont de bonnes options. Sur ce serveur de build, vous exécutez bien sûr des tests et vous pouvez également exécuter une analyse de code statique ainsi que des vérificateurs de syntaxe.

Je recommande d'utiliser FxCop ou Gendarme pour l'analyse de code statique. Les deux peuvent être utilisés côte à côte.

Une clé importante du succès: ne les déployez pas avec un ensemble de règles massif et attendez-vous à ce qu'il fonctionne bien. Vous aurez des millions d'avertissements et personne ne s'en souciera.

Les règles de base sont les suivantes:

  • Ayez toujours zéro avertissements. Si nécessaire, réduisez d'abord l'ensemble des contrôles, puis ajoutez de nouveaux contrôles à chaque sprint et corrigez-les. Assurez-vous que chaque vérification effectuée a une valeur réelle pour vous et est conforme à vos normes.

  • Si vous avez des règles spécifiques à un domaine que vous devez respecter, n'ayez pas peur d'implémenter vos propres règles.

Pour la vérification de la syntaxe, utilisez StyleCop ou StyleCop for Resharper si vous utilisez Resharper (ce que je recommande vivement également).

Anders Forsgren
la source
2

StyleCop et FxCop sont mes outils légers qui rappellent les styles de code à mes développeurs. Resharper est également bon, mais il rend VS très lent.

Je recommande FxCop en raison de sa riche bibliothèque de règles, avec une excellente documentation, des classifications, des exemples et de nombreuses autres fonctionnalités.

Il existe également une extension StyleCop Fixer pour Visual Studio, qui aide à corriger les erreurs ordinaires.

Les métriques de code sont également parfois affectées par les styles de code. Vous pouvez surveiller la maintenabilité des codes avec cet outil.

Reza Owliaei
la source
2

Je tiens à souligner que l'analyse automatique du code déjà mentionnée (FxCop, StyleCopy, builds CI, etc.) fonctionne en premier, de préférence aux révisions manuelles. Les vérifications automatiques ramasseront beaucoup plus de choses qu'une révision manuelle ne le fera probablement, et sont normalement beaucoup plus rigoureuses, cohérentes et auto-documentées. Les révisions manuelles peuvent être bonnes pour des décisions de conception de plus haut niveau, etc., mais d'après mon expérience, elles peuvent être très subjectives et aléatoires.

Polyfun
la source
0

NDepend peut être utilisé pour appliquer diverses normes de codage sur une base de code .NET. Il contient environ 200 règles de code par défaut que vous pouvez parcourir ici . Il est également facile de personnaliser des règles existantes ou de créer vos propres règles car avec NDepend, une règle n'est qu'une requête C # LINQ .

Avertissement: je travaille pour NDepend

Patrick Smacchia - NDepend dev
la source