© oatawa/Shutterstock.com
Java Magazin
Generieren oder nicht generieren – das ist hier die Frage!

Im Fokus: Codegenerierung

In diesem Artikel geht es um Codegenerierung, warum wir Code generieren müssen und wie es funktioniert. Zunächst möchte ich allgemein beschreiben, warum die Generierung von Code notwendig ist, und auch ein bisschen Theorie einfließen lassen (aber nicht zu viel). Außerdem geht es um die verschiedenen Phasen der Softwareentwicklung, in denen der Quellcode programmatisch generiert werden kann, und ich vergleiche die verschiedenen Ansätze. Nicht zuletzt gehe ich auf die Architektur und die Idee hinter einem spezifischen Tool ein, das in einer bestimmten Phase Code generiert.

Peter Verhas


Um mit den Worten Shakespeares zu sprechen: Code generieren oder nicht generieren, das ist hier die Frage. Und die Praxis gibt die Antwort, genau wie in Hamlet. Wir generieren Code. Viele Entwickler generieren Code. Auch wenn uns das nicht gefällt. Bei toolgeneriertem Code haben wir ein schlechtes Gefühl. Es fühlt sich unprofessionell oder zumindest nicht optimal an. Aber so ist das Leben. Das meiste ist nicht optimal, und trotzdem müssen wir damit umgehen. So auch bei der automatisierten Codegenerierung.

Warum wir Code generieren

Der Hauptgrund für die automatische Codegenerierung ist, dass uns manchmal nichts anderes übrig bleibt oder einfällt. Die manuelle Codegenerierung kann zu umständlich und fehleranfällig sein oder die Sprache, das Framework oder einfach unsere Erfahrung und unser Wissen erlauben keine simplere Lösung. Und das ist bereits die Quintessenz dieses Artikels, schon ganz am Anfang. Bevor wir uns für die Generierung von Code entscheiden, müssen wir wissen, warum wir ihn überhaupt brauchen.

Keinen Code generieren, außer Sie müssen

Verrückt, oder? Besonders, wenn ich über ein Open-Source-Tool spreche, das genau auf die Generierung von Java-Code ausgerichtet ist. Und trotzdem bin ich der Meinung, dass so viel Code wie möglich manuell geschrieben werden sollte. Leider oder – im Sinne des erwähnten Tools – zum Glück gibt es genug Gelegenheiten, bei denen eine manuelle Codegenerierung keine Option ist oder zumindest die automatisierte Codegenerierung die bessere Option zu sein scheint.

Warum soll man überhaupt Code generieren?

Wenn die beste Option die Generierung von Code zu sein scheint, dann läuft im System etwas falsch oder zumindest suboptimal (Abb. 1):

Der Entwickler, der den Code erstellt, ist unterdurchschnittlich. Die Programmiersprache ist unterdurchschnittlich. Die Umgebung oder/und ein Framework sind unterdurchschnittlich.

Abb. 1: Gründe für die Generierung von Code

Sie sollten sich nun nicht angegriffen fühlen. Wenn ich über einen „unterdurchschnittlichen Entwickler“ spreche, meine ich doch nicht Sie. Als Entwickler liegen Sie weit über dem Durchschnitt, nicht zuletzt, weil Sie offen sind und sich für neue Dinge interessieren. Das ist schon dadurch bewiesen, dass Sie diesen Artikel lesen. Wenn Sie jedoch Code schreiben, sollten Sie auch durchschnittliche Hinz-und-Kunz-Entwickler berücksichtigen, die ihr Programm irgendwann in der Zukunft warten müssen. Und durchschnittliche Entwickler haben ein besonderes Merkmal: Sie sind nicht gut. Si...

Java Magazin
Generieren oder nicht generieren – das ist hier die Frage!

Im Fokus: Codegenerierung

In diesem Artikel geht es um Codegenerierung, warum wir Code generieren müssen und wie es funktioniert. Zunächst möchte ich allgemein beschreiben, warum die Generierung von Code notwendig ist, und auch ein bisschen Theorie einfließen lassen (aber nicht zu viel). Außerdem geht es um die verschiedenen Phasen der Softwareentwicklung, in denen der Quellcode programmatisch generiert werden kann, und ich vergleiche die verschiedenen Ansätze. Nicht zuletzt gehe ich auf die Architektur und die Idee hinter einem spezifischen Tool ein, das in einer bestimmten Phase Code generiert.

Peter Verhas


Um mit den Worten Shakespeares zu sprechen: Code generieren oder nicht generieren, das ist hier die Frage. Und die Praxis gibt die Antwort, genau wie in Hamlet. Wir generieren Code. Viele Entwickler generieren Code. Auch wenn uns das nicht gefällt. Bei toolgeneriertem Code haben wir ein schlechtes Gefühl. Es fühlt sich unprofessionell oder zumindest nicht optimal an. Aber so ist das Leben. Das meiste ist nicht optimal, und trotzdem müssen wir damit umgehen. So auch bei der automatisierten Codegenerierung.

Warum wir Code generieren

Der Hauptgrund für die automatische Codegenerierung ist, dass uns manchmal nichts anderes übrig bleibt oder einfällt. Die manuelle Codegenerierung kann zu umständlich und fehleranfällig sein oder die Sprache, das Framework oder einfach unsere Erfahrung und unser Wissen erlauben keine simplere Lösung. Und das ist bereits die Quintessenz dieses Artikels, schon ganz am Anfang. Bevor wir uns für die Generierung von Code entscheiden, müssen wir wissen, warum wir ihn überhaupt brauchen.

Keinen Code generieren, außer Sie müssen

Verrückt, oder? Besonders, wenn ich über ein Open-Source-Tool spreche, das genau auf die Generierung von Java-Code ausgerichtet ist. Und trotzdem bin ich der Meinung, dass so viel Code wie möglich manuell geschrieben werden sollte. Leider oder – im Sinne des erwähnten Tools – zum Glück gibt es genug Gelegenheiten, bei denen eine manuelle Codegenerierung keine Option ist oder zumindest die automatisierte Codegenerierung die bessere Option zu sein scheint.

Warum soll man überhaupt Code generieren?

Wenn die beste Option die Generierung von Code zu sein scheint, dann läuft im System etwas falsch oder zumindest suboptimal (Abb. 1):

Der Entwickler, der den Code erstellt, ist unterdurchschnittlich. Die Programmiersprache ist unterdurchschnittlich. Die Umgebung oder/und ein Framework sind unterdurchschnittlich.

Abb. 1: Gründe für die Generierung von Code

Sie sollten sich nun nicht angegriffen fühlen. Wenn ich über einen „unterdurchschnittlichen Entwickler“ spreche, meine ich doch nicht Sie. Als Entwickler liegen Sie weit über dem Durchschnitt, nicht zuletzt, weil Sie offen sind und sich für neue Dinge interessieren. Das ist schon dadurch bewiesen, dass Sie diesen Artikel lesen. Wenn Sie jedoch Code schreiben, sollten Sie auch durchschnittliche Hinz-und-Kunz-Entwickler berücksichtigen, die ihr Programm irgendwann in der Zukunft warten müssen. Und durchschnittliche Entwickler haben ein besonderes Merkmal: Sie sind nicht gut. Si...

Neugierig geworden?


    
Loading...

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