Thomas Woelfers Baustatik Blog

Baustatik-Software und was sonst des Weges kommt

FxCop: Benutzen und besseren Managed Code produzieren

Ich hatte schon vor sehr langes Zeit den ersten Kontakt mit FxCop - und hatte damals dummerweise beschlossen, mich zunächst nicht weiter mit diesem Tool zu beschäftigen. In den letzten Wochen habe ich aber wieder einen Anlauf gemacht und kann nur sagen: Benutzen Sie es! Jede Zeile Code, die Sie ohne die Verwendung von FxCop schreiben, ist ein Zeile Code, die Ihnen später das Leben schwerer machen wird.

Bei FxCop handelt es sich um ein Analyse-Tool, das den Quellcode von Managed Code Assemblies auf Basis eines recht umfangreiche Regelsatzes untersucht. Dabei gibt es Regeln die die Sicherheit des Codes betreffen, solche die für die Namensgebung zuständig sind - aber auch solche die auf Performance-Probleme aufmerksamen machen. Insgesamt hat das Programm von Haus aus etwa 200 Regeln.

Man kann aber auch eigene Regeln entwickeln, und FxCop damit zusätzlich bestücken.

Mein Eindruck in den letzten paar Wochen war der, das FxCop zwar keine 2-Personen Code Review ersetzt - diese aber ganz entscheident vorbereiten kann. Lauter kleine Ärgernisse, über die man als 'Einzel' Programmierer unter Umständen hinwegsehen würde werden 'angemeckert'. Kümmert man sich drum, das die Warnungen abgearbeitet werden, so resultiert das in deutlich besserem Code.

Natürlich führen einige der Regeln auch zu 'Noise' - falschen Positiven. Solche Meldungen kann man aber für zukünftige Sitzungen ausblenden. Wer das Tool nicht verwendet, der nimmt sich eine einfache aber effektive Methode den eigenen Code zu verbessern.

Die kommende Version von VS.Net wird im TeamSystem übrigens eine integrierte Version von FxCop aufweisen - und seit meinen letzten Erfahrungen damit, kann ich es wirklich gar nicht mehr abwarten, VS.Net 2005 auch im produktiven Betrieb einzusetzen. (Dann gibt es auch endlich eine integrierte Version von PreFast für C++ Code - noch ein Tool von MsResearch, auf das ich wirklich nicht länger warten möchte.)

Comments are closed