Entwickler zu ihrem Glück zwingen – Styleguides durchsetzen mit StyleCop

Dieser Artikel wurde von Mohr, Steven und Do, Hoang Viet am Freitag, 31. August 2012 verfasst. Aktualisiert: 24.11.2013 03:16:43

Nachdem letzte Woche unserem Projekt die Lasttest vorgestellt wurden, die sie diese und nächste Woche adaptieren sollen, kommen dieses mal ein Stylechecker für den C#-Teil dran. Wenn jemand Erfahrungen mit etwas ähnlichem für ActionScript kennt, würde ich mich über einen Kommentar freuen. Nun aber ran ans Thema.

Wofür braucht man eigentlich einen Style-Guide?

Das ist eine beliebte Frage: Ich könnte doch einfach so schreiben, wie ich will, meinen Code kann man eh verstehen und außerdem steht in Buch X, dass man das alles nicht braucht. Das mag sein, aber der größte Vorteil eines gemeinsamen Styles ist das Verschwinden von Programmierergrenzen. Was ich damit sagen will, ist, dass man dem Code nicht mehr ansieht, wer ihn geschrieben hat und man sich beim Einarbeiten nicht mit verschiedenen Stilen rumschlagen muss. Zudem interpretiert man unter Umständen Dinge in den Code, die man versucht aus den verschiedenen Stilen abzuleiten. Neben diesen Gründen gibt es aber auch ganz pragmatische Gründe, sich um die Einhaltung des Codestyles zu kümmern: Oftmals gibt die Firma, der Kunde oder (wie bei uns) der Dozent einen Stil vor, den es einzuhalten gilt. Und genau hierbei hilft (auf jeden Fall für C#) StyleCop.

Was ist eigentlich StyleCop?

StyleCop (externe Link) ist ein Tool, um die Einhaltung von C#-Codestyles zu überwachen. Hierbei integriert es sich u.a. ins Visual Studio und den Team Foundation Server (TFS). Besonders die Integration in den TFS ist schön, um Entwickler zu ärgern. Denn in Zusammenspiel mit "Gated Check-Ins" kann man Check-Ins verhindern, die Code enthalten, die den Styleregeln widersprechen.

Wie installiere ich StyleCop?

Das ist wieder relativ einfach: Einfach im Download-Bereich (externe Link) den MSI-Installer runterladen und (am Besten bei geschlossenem Visual Studio) installieren. Wenn man nun VS wieder startet, findet sich Kontextmenü der Projekte drei neue Einträge: Run StyleCop, Run StyleCop, (Rescan All) und die Style Cop Settings.

pr_context.png

Run StyleCop und Run StyleCop (Rescan All) sind eigentlich selbsterklärend: Sie führen die konfigurierten Styletests auf dem Projekt durch. Auch die Konfiguration des Styles ist einfach. Hierfür gibt es einen Dialog, in dem einzelne Regeln ein- und ausgeschaltet werden können.

pr_setting.png

Wie gestalte ich die Einstellungen effektiv?

Das StyleCop die Einstellungen per Projekt verwaltet, scheint auf jeden ersten Blick etwas hinderlich, insbesondere im Hinblick auf größere Softwareprojekte, die sich in viele Visual Studio-Projekte innerhalb einer Solution gliedern. Hierbei hat StyleCop allerdings einen sehr netten Mechanismus: Als erstes wird die StyleCops-Settingsdatei im Wurzelverzeichnis der Solution ausgelesen, danach weitere Dateien im Pfad oberhalb des aktuellen Projektes. Hierbei werden die Einstellung des Wurzelverzeichnisses von den Einstellungen in den tieferen Verzeichnisebenen überschrieben. Hiermit können die Styleregeln für die untergeordneten Projekte entweder entschärft oder verstärkt werden.

 
blog comments powered by Disqus

Google Anzeigen

Neusten Blogeinträgen

  • CSS: Animationen

    CSS3 bietet von Haus aus Möglichkeiten zur Definition von Animationen über die Property animation. Wie es funktioniert zeigen wir in diesem Artikel.

  • CSS: Alternierende Tabellenzeilen

    Um die Lesbarkeit von Tabellen zu steigern, bietet die CSS die Möglichkeit Tabellenzeilen alternierend zu färben. Wie das funktioniert zeigen, wir ...

  • Unity3D: Konsolenausgabe formatieren

    Die Unitykonsole ist einer der meistgenutzten Feature wenn es bei Unity um Fehlersuche und -behandlung geht. Sie wird dabei schnell voll und verli ...

  • Unity3D: Singleton für langsame Operationen

    Operationen wie Object.FindObjectOfType werden in der Dokumentation von Unity3D Entwickler selbst als sehr langsam beschrieben. Aus dem Grund wird ...

  • Unity3D: Optionale Parameter

    Unity3D (4.3.1) unterstützt keine optionale Parameter, wenn die betroffene Skriptdatei in einem Namespace definiert wird.

Popular Threads

Share it on your network