FlexPMD ist ein kleines Open Source Tool aus dem Hause Adobe, das helfen soll, die Qualität des eigenen Quellcodes zu verbessern. Es ist dem Vorbild PMD aus der Java-Welt nachempfunden.

Anwendbar auf Flex- und ActionScript-Code, wird der Programmcode auf problematischen oder schlecht programmierte Stellen anhand eines Regelwerks untersucht. Gefunden werden zum Beispiel:

  • ungenutzer Code (Funktionen, Variablen, Konstanten, etc.)
  • ineffizienter Code
  • zu komplexer Code (z.B. geschachtelte Schleifen, zu viele Bedingungen, etc.)
  • zu langer Code (Klassen, Methoden, etc.)
  • Falsche Verwendung des Lifeycycles von Flexkomponenten

Ted Patrick hebt sein Lieblingsfeature hervor:

My favorite feature of FlexPMD is flagging unused code. It is so easy to create a variable or method that goes unused. Detecting these within your project is hard and deleting a method always feels like a risk unless you really know it is unused. Having a tool to flag these is great and better still it gives me the confidence to delete methods and properties with impunity.

Auflistung der Problemstellen

Als Ergebnis liefert das Tool im Wesentlichen eine Liste mit den gefundenen Problemstellen.

XML:
  1. /Main.mxml:0: col: 0: The copyright header is missing in this file
  2. /Test.as:12: col: 15: This private attribute (cars) does not seem to be used.     
  3. /Test.as:0: col: 0: The copyright header is missing in this file
  4. /Test.as:19: col: 0: This variable name is too short (3 characters minimum, but 1 actually). Detects when a field, local, or parameter has a very short name

Das Ergebnis kann man sich in den PMD Violations Viewer, einer Onlineanwendung, als XML-File hochladen und anschauen.

PMD Violations Viewer

Erweiterbar um eigene Regeln

Neben den bereits enthaltenen Regeln, welche Programmierpraktiken zu einem Fehler führen können, kann FlexPMD auch mit eigenen Regeln erweitert werden.

Kommandozeile oder automatisierte Einbindung

FlexPMD kann in der Kommandozeile ausgeführt werden. Alternativ kann es auch mit Maven, Ant oder Automator (Mac) genutzt werden.

FlexPMD-in-automator

Zusätzlich gibt es seit kurzem ein Plug-in für die Open Source Entwicklungsumgebung FlashDevelop (siehe Kommentar 11).

Link: FlexPMD
Link: PMD Violations Viewer
Link: FlexPMD - Finding worst practices in your projects
Link: FlexPMD Ruleset Creator