Excellent – Statische Code Analyse für Ruby und Rails

Marco Otte-Witte, 9. Oktober 2009 19:07

Ich habe gestern auf dem Treffen von Munich on Rails in einem kurzen Talk mein gem Excellent vorgestellt. Excellent macht statische Code Analyse auf Ruby Code ähnlich wie dies reek, roodi oder flog tun (Excellent basiert zum Teil auch auf Code dieser Projekte).

Ein wichtiger Bestandteil ist dabei Komplexitätsmaße zu ermitteln anhand derer man eine Aussage über die Verstehbarkeit und Wartbarkeit des Codes treffen kann. Wenn etwa Maße wie Zyklomatische Komplexität, ABC-Metrik aber bspw. auch Line Count in einem sehr hohen Bereich liegen, kann man davon ausgehen, dass die Komplexität sehr hoch und damit die Wartbarkeit relativ gering ist. Solche Maße stellen natürlich immer nur ungefähre Richtlinien dar und können keine Aussage über die tatsächliche Qualität des Codes treffen. So können bspw. Teile des Codes hohe Komplexitätswerte erzielen, nichtsdestotrotz aber leicht verständlich sein.

Excellent bietet daher zusätzlich zu solchen Komplexitäts-Checks auch Rails spezifische Checks an. Im Gegensatz zu den Komplexitätsmaßen können solche Checks klare Aussagen treffen, da sie feste Kriterien überprüfen, wie etwa ob bestimmte Best Practices oder auch Bad Practices eingehalten werden oder im Code auftauchen. Rails spezifische Checks sind bspw. solche die überprüfen ob ActiveRecord Models ihre Attribute validieren oder solche die die Verwendung von Instanzvariablen in Partials beanstanden.

Excellent ist trotz der Versionsnummer 1.5.4 immer noch im Beta Stadium. Für Vorschläge auf der Mailing Liste, Bug Reports oder auch Patches auf Github bin ich natürlich dankbar!

Hier die Slides zum Talk:

Bookmark and Share

Autor: Marco Otte-Witte, http://simplabs.com

Marco Otte-Witte ist Freelancer in München. Neben seiner Arbeit als Web Entwickler mit Ruby on Rails (ehemals auch .NET) und als Consultant schreibt er auch Open Source Software: http://simplabs.com/#open-source.

Artikel bewerten:

1 Sterne2 Sterne3 Sterne4 Sterne5 Sterne (1 Bewertung(en), durchschnittlich: 5.00 (max. 5)
Loading ... Loading ...

Comments are closed.