Code-Generierung
Die Grundidee von Code-Generierung ist es möglichst viel lästige Tipparbeit bei der Software-Entwicklung zu vermeiden. Darüber hinaus ergeben sich aber auch folgende Vorteile:
- Bei Routinearbeiten sinkt die Konzentration und es steigt die Fehlerquote. Der Code-Generator übernimmt diese Routinearbeiten und reduziert somit die Anzahl Fehler.
- Wenn die Grundlage für den Generator eine technische Spezifikation oder ein Modell ist, werden die bei manueller Übertragung entstehenden Fehler vermieden.
Auf jeden Fall sollte man sich genügend Mühe bei der Entwicklung des Code-Generators geben, sodass das Ergebnis gut lesbarer und verständlicher Quelltext ist. Das sind leider alles andere als selbstverständlich. Letztendlich ist niemandem geholfen, wenn die durch den Generator gewonnene Zeit, durch Fehlersuche beim Verwendendes generierten Codes wieder verloren geht.
Beispiel PI-Mobile
Bei PI-Data sind XML Schema und darauf aufbauend WSDL die Schlüsseltechnologien unseres Frameworks PI-Mobile, um Datenstrukturen und Schnittstellen zu spezifizieren. Dafür haben wir gleich eine ganze Reihe von Generatoren:
- Modellklassen aus XML Schema, die dann vom XML Reader instantiiert und mit dem XML-Writer wieder in XML exportiert werden können.
- SQL Datenbankdefinitionen (DDL) aus XML Schema.
- Service-Schnittstellen, -Proxys und -Stubs aus WSDL und XML Schema.
Mit den oben erwähnten Modellklassen stellen wir sicher, dass beim Lesen, Schreiben und Übertragen von XML keine Fehler bzgl. der Daten gemacht werden können. Da diese Modellklassen für alle gängigen PC-Plattformen (Linux, Mac, Windows) und Mobilgeräte (Android, iOS) vorhanden sind, kommen wir bei der Entwicklung von Plattform übergreifenden Lösungen sehr schnell zu sehr zuverlässigen Ergebnissen. Seit wir Modellklassen und XML-Reader/Writer auch für C++ haben ist selbst die Integration von Embedded Geräten kein Thema mehr, wie unser Modellbahnsteuerung CTC zeigt.