DSL mit Xtext/Xtend. 4GL mit externem Quellcode
()
About this ebook
Read more from Ulrich Merkel
DSL mit Xtext/Xtend. 4GL-Entwicklung produktiver gestalten Rating: 0 out of 5 stars0 ratingsDSL mit Xtext/Xtend. Luecken(x)text Rating: 0 out of 5 stars0 ratings
Related to DSL mit Xtext/Xtend. 4GL mit externem Quellcode
Titles in the series (100)
Einstieg in Google Go Rating: 0 out of 5 stars0 ratingsServiceorientierte Architektur: Anforderungen, Konzeption und Praxiserfahrungen Rating: 0 out of 5 stars0 ratingsJavaScript für Eclipse-Entwickler: Orion, RAP und GWT Rating: 0 out of 5 stars0 ratingsSharePoint-Entwicklung für Einsteiger Rating: 0 out of 5 stars0 ratingsC++: Kurzportträt einer zeitlosen Sprache Rating: 0 out of 5 stars0 ratingsHTML5 für Mobile Web Rating: 0 out of 5 stars0 ratingsHTML5 Security Rating: 0 out of 5 stars0 ratingsF#: Ein praktischer Einstieg Rating: 0 out of 5 stars0 ratingsSkalierbare Softwaresysteme: Design, Betrieb und Optimierungspotenziale Rating: 0 out of 5 stars0 ratingsJava EE Security Rating: 0 out of 5 stars0 ratingsNFC: Near Field Communication für Android-Entwickler Rating: 5 out of 5 stars5/5Erfolgreiche Spieleentwicklung: OpenGL, OpenAL und KI Rating: 0 out of 5 stars0 ratingsUser Experience Testing 3.0: Status Quo, Entwicklung und Trends Rating: 0 out of 5 stars0 ratingsJavaScript auf dem Server Rating: 0 out of 5 stars0 ratingsIT Wissensmanagement: Theorie und Praxis Rating: 0 out of 5 stars0 ratingsUX Design - Definition und Grundlagen: Definition und Grundlagen Rating: 4 out of 5 stars4/5Algorithmen: Grundlagen und Implementierung Rating: 0 out of 5 stars0 ratingsÜberzeugende Präsentationen: Konzeption, Technik und Design Rating: 0 out of 5 stars0 ratingsWebentwicklung mit dem Play Framework Rating: 0 out of 5 stars0 ratingsTFS 2012 Anforderungsmanagement: Work Items und Prozessvorlagen Rating: 0 out of 5 stars0 ratingsTFS 2012 Versionskontrolle: Grundlagen, Check-In Policies und Branch-Modelle Rating: 0 out of 5 stars0 ratingsErfolgreiche Spieleentwicklung: OpenCL Rating: 0 out of 5 stars0 ratingsJava 7: Fork-Join-Framework und Phaser Rating: 0 out of 5 stars0 ratingsMobile Business: Was Entscheider morgen wissen müssen Rating: 0 out of 5 stars0 ratingsAmazon Web Services für .NET Entwickler Rating: 0 out of 5 stars0 ratingsSpring: Vier Perspektiven auf Framework und Ökosystem Rating: 0 out of 5 stars0 ratingsUX Design für Tablet-Websites: Ein Überblick Rating: 0 out of 5 stars0 ratingsBig Data: Executive Briefing Rating: 0 out of 5 stars0 ratingsZend Framework 2: Für Einsteiger und Umsteiger Rating: 0 out of 5 stars0 ratingsBig Data: Technologiegrundlagen Rating: 0 out of 5 stars0 ratings
Related ebooks
C# 10 – kurz & gut Rating: 0 out of 5 stars0 ratingsPHP for Office: Automatisierte Dokumentenerstellung mit PHPExcel, PHPWord und PHPPowerPoint Rating: 1 out of 5 stars1/5C# 8.0 – kurz & gut Rating: 0 out of 5 stars0 ratingsC# 6.0 – kurz & gut Rating: 5 out of 5 stars5/5Sprachenkompendium: Vala, Go und Rust Rating: 0 out of 5 stars0 ratingsClojure: Funktionale Programmierung für die JVM Rating: 0 out of 5 stars0 ratingsPowerShell: Anwendung und effektive Nutzung Rating: 5 out of 5 stars5/5Moderne Webanwendungen mit AngularJS Rating: 0 out of 5 stars0 ratingsJava 8 Streams Rating: 0 out of 5 stars0 ratingsC – kurz & gut Rating: 0 out of 5 stars0 ratingsLearnPasLin: Lernen der UR Programmiersprache aller Geeks.. Rating: 0 out of 5 stars0 ratingsAngular 2: Moderne Frontends für alle Plattformen entwickeln Rating: 0 out of 5 stars0 ratingsC++ – kurz & gut: Aktuell zu C++17 Rating: 4 out of 5 stars4/5Linux Befehlsreferenz: Schnelleinstieg in die Arbeit mit der Konsole, regulären Ausdrücken und Shellscripting Rating: 0 out of 5 stars0 ratingsEclipse meets Java FX Rating: 0 out of 5 stars0 ratingsXtend beyond Java: DSL für mobile Business-Apps Rating: 0 out of 5 stars0 ratingsWebentwicklung mit dem Play Framework Rating: 0 out of 5 stars0 ratingsPowerShell: Grundlagen für .NET-Entwickler Rating: 0 out of 5 stars0 ratingsJavaScript und TypeScript für C#-Entwickler Rating: 0 out of 5 stars0 ratingsApache Kafka Rating: 0 out of 5 stars0 ratingsASP.NET Core: Eine Einführung Rating: 0 out of 5 stars0 ratingsJava 9 Streams Rating: 0 out of 5 stars0 ratingsTroubleshooting und Monitoring von Exchange und Office 365 Rating: 0 out of 5 stars0 ratings.NET Core 1.0 und 1.1: Entwicklung mit den Core-Produkten Rating: 0 out of 5 stars0 ratingsJavaScript für Java-Entwickler Rating: 0 out of 5 stars0 ratingsWeb-APIs mit ASP.NET MVC 6 Rating: 0 out of 5 stars0 ratingsEinstieg in Google Go Rating: 0 out of 5 stars0 ratingsSoftware entwickeln mit C#, WPF und dem MVVM-Konzept Rating: 0 out of 5 stars0 ratingsSoftware Development Trends: Wegweisende Beiträge für eine neue IT: Wegweisende Beiträge für eine neue IT Rating: 0 out of 5 stars0 ratingsVue.js kurz & gut Rating: 0 out of 5 stars0 ratings
Programming For You
JavaScript kurz & gut Rating: 3 out of 5 stars3/5Python kurz & gut: Für Python 3.x und 2.7 Rating: 3 out of 5 stars3/5Git kurz & gut Rating: 0 out of 5 stars0 ratingsProgrammieren für Einsteiger: Teil 1 Rating: 0 out of 5 stars0 ratingsLinux Grundlagen - Ein Einstieg in das Linux-Betriebssystem Rating: 0 out of 5 stars0 ratingsWeniger schlecht programmieren Rating: 4 out of 5 stars4/5Algorithmen: Grundlagen und Implementierung Rating: 0 out of 5 stars0 ratingsC++: Eine kompakte Einführung Rating: 0 out of 5 stars0 ratingsSQL von Kopf bis Fuß Rating: 4 out of 5 stars4/5Mikrocontroller in der Elektronik: Mikrocontroller programmieren und in der Praxis einsetzen Rating: 0 out of 5 stars0 ratingsProgrammieren lernen mit Python 3: Schnelleinstieg für Beginner Rating: 0 out of 5 stars0 ratingsLinux Befehlsreferenz: Schnelleinstieg in die Arbeit mit der Konsole, regulären Ausdrücken und Shellscripting Rating: 0 out of 5 stars0 ratingsPython programmieren lernen: Der spielerische Einstieg mit Minecraft Rating: 0 out of 5 stars0 ratingsAndroid-Entwicklung für Einsteiger - 20.000 Zeilen unter dem Meer: 2. erweiterte Auflage Rating: 0 out of 5 stars0 ratingsHacken mit Python und Kali-Linux: Entwicklung eigener Hackingtools mit Python unter Kali-Linux Rating: 0 out of 5 stars0 ratingsDas große Python3 Workbook: Mit vielen Beispielen und Übungen - Programmieren leicht gemacht! Rating: 4 out of 5 stars4/5Eigene Spiele programmieren – Python lernen: Der spielerische Weg zur Programmiersprache Rating: 0 out of 5 stars0 ratingsProgrammieren von Kopf bis Fuß Rating: 4 out of 5 stars4/5Microsoft Word 2016 (Microsoft Press): Einfache Anleitungen für wichtige Aufgaben Rating: 0 out of 5 stars0 ratingsEinstieg in TypeScript: Grundlagen für Entwickler Rating: 0 out of 5 stars0 ratingsGames | Game Design | Game Studies: Eine Einführung (Deutschsprachige Ausgabe) Rating: 0 out of 5 stars0 ratingsSQL – kurz & gut Rating: 0 out of 5 stars0 ratingsRaspberry Pi: Mach's einfach: Die kompakteste Gebrauchsanweisung mit 222 Anleitungen. Geeignet für Raspberry Pi 3 Modell B / B+ Rating: 0 out of 5 stars0 ratingsArduino: Ein schneller Einstieg in die Microcontroller-Entwicklung Rating: 5 out of 5 stars5/5C++: Kurzportträt einer zeitlosen Sprache Rating: 0 out of 5 stars0 ratingsPerspektiven für Informatiker 2019: Branchenüberblick, Erfahrungsberichte und Tipps zum Berufseinstieg Rating: 0 out of 5 stars0 ratingsC von Kopf bis Fuß Rating: 3 out of 5 stars3/5Docker: Webseiten mittels Containerarchitektur erstellen Rating: 3 out of 5 stars3/5Android-Programmierung kurz & gut Rating: 0 out of 5 stars0 ratings
Reviews for DSL mit Xtext/Xtend. 4GL mit externem Quellcode
0 ratings0 reviews
Book preview
DSL mit Xtext/Xtend. 4GL mit externem Quellcode - Ulrich Merkel
GmbH
1 Ein externer Codegenerator für Copy and Paste
Auch eine veraltete Entwicklungsumgebung, die keinerlei Plug-in-Möglichkeiten bietet, kann durch einen externen Codegenerator aufgewertet werden, dessen erzeugte Teile des Quellcodes mit Copy and Paste in den 4GL-Codeeditor übertragen werden. Nach dem Ansatz „we build to learn werde ich auch in diesem zweiten shortcut zum Thema
DSL mit Xtext/Xtend" wieder kleine Teilaufgaben angehen, die sich mit meiner 4GL-Arbeit kombinieren lassen.
Nachdem sich mein erster shortcut mit dem Erzeugen und Nutzen von Ladedateien beschäftigt hat, werden wir für unsere 4GL-Entwicklung, die keinerlei „Active Annotations" und ähnliche Herrlichkeiten zur dynamischen Codierung kennt, einen externen Codegenerator erstellen, dessen Erzeugnisse wir per Copy and Paste in die 4GL-Entwicklungsumgebung übernehmen werden. Neben einer drastischen Erhöhung der Produktivität (besonders bei Langsamtippern wie mir) trägt dies auch zur Qualitätssicherung bei, da im gesamten Boilerplate-Text Tippfehler ausgeschlossen sind.
Es beginnt alles mit einem Lückentext
Je öfter ich als Langsamtipper gezwungen bin, immer wieder den gleichen Text einzutippen, desto größer wird mein Verlangen, dies zumindest in einem Textbaustein abzulegen, bei dem ich nur noch den variablen Teil ersetzen muss. Diese Templates werden innerhalb des Eclipse-Ecosystems besonders schön unterstützt.
Da wir in unserer DSL-Grammatik eine Eingabemöglichkeit für freien Code geschaffen haben, wenn dieser in «» eingeschlossen ist, können wir ein Template dadurch aufbauen, indem wir aus dem 4GL-Quellcode ein Muster per Copy and Paste in das Eclipse-Template übernehmen. Wir ersetzen die Variablen durch die Platzhalter ${variable}
und haben so unsere Eingabevorlage erstellt. Hier haben wir den gesamten Quellcodetext „offen" in unserem DSL-Editor, und der Generator fügt ganz einfach diesen Text in die generierte Datei ein (Abb. 1.1).
Abbildung 1.1: Dieses Template liefert die Grundlage für die DSL, mit TAB springt man von Variable zu Variable
Die Abbildungen 1.2 und 1.3 zeigen die einzelnen Schritte der Ersetzung.
Abbildung 1.2 und 1.3: Wir müssen die Variablen unseres Lückentexts nur einmal angeben, alle anderen Vorkommen werden automatisch aktualisiert
Wenn wir später die Einarbeitung des Lückentexts in den Generator verlagert haben, wandelt sich das Template in einen Steuerungsbefehl, der aber ebenso als Template den Nutzer unterstützt (Abb. 1.4).
Abbildung 1.4: Nach der Auslagerung mittels „mergefile" können wir unser Template deutlich verkleinern: unser DSL-Inhalt wird wesentlich übersichtlicher
Wir haben in unserer 4GL eine Reihe von Hilfsroutinen in einer Art Framework zusammengestellt und können