Design Patterns automatisieren mit Xtends Active Annotations

Design Patterns automatisieren mit Xtends Active Annotations


Design Patterns werden oft als besonders fortschrittlich oder professionell dargestellt. Und Softwareentwickler, die nicht zumindest das Buch der Gang of Four [1] gelesen haben oder aus dem Stand erklären können, wie z. B. ein Visitor-Pattern zu implementieren ist, gelten als weniger erfahren. Aber sind Design Patterns wirklich das Nonplusultra? Oder vielmehr ein Ergebnis fehlender Sprachmittel, um diese Muster wiederverwendbar – also als Bibliothek – zu implementieren?

Code Generation with Xtend

In der Java-Welt gibt es auffällig viele Quellcodemuster. Dazu zählen nicht nur die allgemein gängigen Entwurfsmuster der Gang of Four (GoF), sondern vor allem auch unzählige frameworkspezifische Idiome. Richtig interessant wird es, wenn wir die eigenen Projekte betrachten: Die konkrete Bedeutung und Implementierung eines „Service“ oder einer „Entität“ variiert von Projekt zu Projekt sehr stark. Hier wird dann häufig in Wikis oder anderer technischer Dokumentation erklärt, wie so ein Projektkonzept in Java-Konzepte übersetzt wird – ein Programmier- oder Entwurfsmuster wird beschrieben, damit die Entwickler es möglichst genau und fehlerfrei kopieren.

Natürlich wissen wir als Entwickler, dass Copy and Paste keine nachhaltige Programmiertechnik ist. Der dadurch entstehende redundante Quelltext verlangsamt zukünftige Veränderungen immens und macht unseren Code unleserlich. Die Wartbarkeit leidet.

Ein einfaches Beispiel

Stellen Sie sich vor, Sie implementieren ein typisches Datenmodell für eine Businessanwendung und wollen diesem Modell das Observer-Pattern beibringen. Das ist im Prinzip recht einfach: Sie müssen lediglich die Möglichkeit bieten, einen Observer an den Entitäten anzumelden und dann in allen Setter-Methoden bei Änderungen entsprechende Events zu erzeugen und zu werfen. Wie viele Setter-Methoden gibt es wohl in einem typischen Businessdomänenmodell? Das variiert natürlich stark, aber ich denke, mehrere Hundert bis Tausend sind keine Seltenheit. „Na gut“, denkt Ihr Manager, „da setzen wir jemanden ein bis zwei Wochen dran und dann ist das erledigt.“ Klar hat der Kollege hier und da einen Fehler eingebaut (bei so stupider Arbeit ist man leicht mal unkonzentriert), aber die findet und behebt man im Laufe der Zeit. Den Beton an den Füßen spüren wir leider erst, wenn neue Anforderungen bzgl. dieses Musters entstehen. Stellen Sie sich vor, dass im Nachhinein auch Pre-Change-Events und die Möglichkeit, ein Veto durchzusetzen, unterstützt werden müssen. Od...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang