Konzeption für Codegen ist in der Mache

Die letzten Tage habe ich neben dem Dienst immer weiter am Konzept für mein Code-Generator gefeilt. Langsam aber sicher bin ich mit dem Design der einzelnen Klassen zufrieden und kann mich demnächst an die Implementation machen.

Der Code-Generator wird als PHP5-Script laufen und benutzt das Zend-Framework. Weiterhin soll Smarty für die Template-Generierung zum Einsatz kommen. Die Idee hinter dem Tool entstand bereits vor ein oder zwei Jahren: Viele Applikationen, die ich geschrieben habe, besitzen immer das selbe Muster. Getreu DRY (Don’t Repeat Yourself) wurde es allerhöchste Zeit, dass ich mir das lästige manuelle Schreiben von Code vom Hals schaffe.
Der Code-Generator kann im Prinzip jedes beliebige Eingangsformat nehmen (JSON, XML, Datenbankschemas etc.). Aus der Quelle wird ein klassenbasiertes Metamodell erstellt. Es können auch andere Quellen eingebunden werden. Der Programmierer muss sich nur darum kümmern, dass die Quelle in das Metamodell übersetzt wird.
Sobald nun das Metamodell existiert, wird spezifiziert, welches Zielprojekt benutzt werden soll. Ein Anwendungsfall wäre z.B. das DAOFramework oder aber Struts. Das Projekt hängt wiederum von einer spezifischen Programmiersprache ab (PHP5, Java, was auch immer). Die Projektgenerierung kann nun angestoßen werden. Die einzelnen Projekt-Klassen kümmern sich mit Hilfe von Templates um die Generierung des Outputs.
Damit lässt sich über das Metamodell jede Framework-Implementation erzeugen.

Weitere Informationen folgen in den nächsten Wochen/Monaten. Das Tool wird natürlich Opensource sein.

Leave a reply

Your email address will not be published.

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>