So stellen Sie einen einzelnen Codierungsstandard in .NET mit Toolunterstützung sicher

14

Wahrscheinlich ist die Grundsituation jedem bekannt. Sie haben sich in Ihrem Team auf bestimmte Kodierungsstandards geeinigt, und jetzt ist es an der Zeit, sicherzustellen, dass alle ihnen folgen.

Einige tun dies über stark gepaarte Programmierung, andere führen eine Liste der Codierungsstandards und führen eine manuelle Überprüfung durch. Andere verwenden sogar das statische Codeanalyse-Tool von Visual Studio, um sicherzustellen, dass die Codierungsstandards durchgesetzt werden.

Was sind Ihre Best Practices, um Codierungsstandards sicherzustellen? Welche Tools verwenden Sie? Gibt es einige wichtige Tools, die jeder Entwickler kennen sollte? Wie integrieren Sie die Standardisierung Ihres Codes in Ihre Entwicklungstools?

Stefan Papp
quelle

Antworten:

15

StyleCop (jetzt auch StyleCop for Resharper) wird häufig zum Erzwingen von Regeln für Codierungsstile in C # -Codebasen verwendet.

Es kann in Ihren CI-Build integriert werden und zu Buildfehlern führen, wenn Verstöße vorliegen.

Oded
quelle
Weitere Informationen zur Verwendung? Ich möchte vor jedem Commit eine Stilüberprüfung durchführen. Also brauche ich cli dafür. Gibt es irgendwelche. Ich konnte keine relevanten Informationen finden.
FreeLightman
@R. - Wenn man nur StyleCop-Regeln anpassen könnte. Oh, warte ...
Oded
@R. - Sie können auch Ihre eigenen Regeln schreiben.
Oded
6

Stellen Sie zunächst sicher, dass Sie über einen ordnungsgemäßen Buildserver verfügen, der Ihren Code kontinuierlich erstellt. TFS oder Jenkins / Hudson + Msbuild sind gute Optionen. Auf diesem Build-Server führen Sie natürlich Tests durch, und Sie können auch statische Code-Analysen sowie Syntaxprüfungen durchführen.

Ich empfehle die Verwendung von FxCop oder Gendarme für die statische Code-Analyse. Beide können nebeneinander verwendet werden.

Ein wichtiger Schlüssel zum Erfolg: Stellen Sie sie nicht mit einem massiven Regelsatz bereit und erwarten Sie, dass sie gut funktionieren. Sie werden Millionen von Warnungen haben und niemand wird sich darum kümmern.

Faustregeln sind:

  • Haben Sie immer Null Warnungen. Reduzieren Sie die Anzahl der Überprüfungen zunächst, wenn dies erforderlich ist, und fügen Sie dann bei jedem Sprint einige neue Überprüfungen hinzu, und korrigieren Sie diese. Stellen Sie sicher, dass jede durchgeführte Prüfung für Sie einen tatsächlichen Wert hat und mit Ihren Standards übereinstimmt.

  • Wenn Sie domänenspezifische Regeln haben, die Sie einhalten müssen, haben Sie keine Angst davor, Ihre eigenen Regeln zu implementieren.

Verwenden Sie für die Syntaxprüfung StyleCop oder StyleCop for Resharper, wenn Sie Resharper verwenden (was ich ebenfalls sehr empfehle).

Anders Forsgren
quelle
2

StyleCop und FxCop sind meine leichtgewichtigen Tools, die meine Entwickler an erinnern. Resharper ist auch gut, aber es macht VS sehr langsam.

ich empfehle FxCop wegen seiner umfangreichen Regelbibliothek mit hervorragender Dokumentation, Klassifizierungen, Beispielen und vielen anderen Funktionen.

Es gibt auch StyleCop Fixer- Erweiterung für Visual Studio, mit der sich normale Fehler beheben lassen.

Codemetriken werden manchmal auch von Codestilen beeinflusst. Mit diesem Tool können Sie die Wartbarkeit von Codes überwachen.

Reza Owliaei
quelle
2

Ich möchte betonen, dass die bereits erwähnte automatische Codeanalyse (FxCop, StyleCopy, CI-Builds usw.) anstelle manueller Überprüfungen zuerst funktioniert. Bei den automatischen Überprüfungen werden weitaus mehr Dinge erfasst, als dies bei manuellen Überprüfungen wahrscheinlich ist, und sie sind normalerweise viel strenger, konsistenter und selbstdokumentierend. Manuelle Überprüfungen können für übergeordnete Entwurfsentscheidungen usw. gut sein, aber meiner Erfahrung nach können sie sehr subjektiv und willkürlich sein.

Polyfun
quelle
0

NDepend kann verwendet werden, um verschiedene Codierungsstandards auf einer .NET-Codebasis durchzusetzen. Es gibt ungefähr 200 Standard-Coderegeln, die hier durchsucht werden können . Es ist auch einfach, vorhandene Regeln anzupassen oder eigene Regeln zu erstellen, da mit NDepend eine Regel nur eine C # LINQ-Abfrage ist .

Haftungsausschluss: Ich arbeite für NDepend

Patrick Smacchia - NDepend dev
quelle