Aus Linux-Magazin 03/2014

Ein DSL-Buch sowie ein Ruby-Buch

Das Linux-Magazin bespricht zwei Bücher für anspruchsvolle Programmierer: Das erste enträtselt Domänen-spezifische Sprachen, das zweite möchte für besser strukturierten Ruby-Code sorgen.

Markus Völter, vor allem bekannt durch den Podcast “Software Engineering Radio”, hat ein besonderes Buch geschrieben. Zum einen ist das englischsprachige “DSL Engineering” im Selbstverlag erschienen, zum anderen steht es unter http://dslbook.org zum kostenlosen Download bereit.

DSL-Buch

In dem knapp 600-seitigen Band beschreibt der Autor das Design, die Implementierung und den Einsatz von Domain Specific Languages, kurz DSLs. Er wendet sich insbesondere an Leser, die eine eigene DSL implementieren möchten. Dabei legt er den Fokus auf externe DSLs, also auf für einen speziellen Anwendungsbereich entworfene Sprachen, die nicht in eine herkömmliche Programmiersprache eingebettet sind.

Bevor Völter sich den Details widmet, stellt er das Konzept einer allgemeinen Programmiersprache dem einer Domain Specific Language gegenüber und beschreibt die Vorteile, Herausforderungen und Einsatzgebiete von DSLs.

Anschließend erörtert er die Fragen, die es beim Entwurf einer DSL zu klären gilt. Dies sind insbesondere die sieben Design Dimensions: Ausdruckskraft, Abdeckung, Semantik, Trennung der Belange, Vollständigkeit, Modularisierung und Syntax der Sprache. Dank mehrerer Beispiele gelingt es dem Verfasser, die Theorie anschaulich zu vermitteln. Ein Anwendungsfall, der sich durch das ganze Werk zieht, ist Mbeddr C, eine Erweiterung der Programmiersprache C für die Embedded-Programmierung.

Darauf folgt auf rund 300 Seiten die Implementierung: Das Beispiel verwendet die drei Werkzeuge Xtext, Spoofax sowie MPS, das die Grundlage für Mbeddr C bildet. Die zu lösenden Aufgaben beginnen bei Syntax und Typensystem der DSL, schließen deren Transformation und Interpretation mit ein, umfassen aber auch Testen und IDE-Unterstützung.

Mit dem Buchabschnitt “DSL in Software Engineering” rundet Markus Völter sein Buch ab. Weiterführende Themen wie Anforderungsmanagement, Software-Architektur und Produktlinien bestimmen den Schlussakkord.

Dieses DSL-Buch ist sicher kein Werk, das sich mit einmaliger Lektüre voll erschließt. Neben der systematischen Einführung ist es eine unentbehrliche Referenz für den Autor einer DSL. Aufgrund seiner Tiefe und Systematik hat es das Zeug zu einem Standardwerk.

Info

Markus Völter:

DSL Engineering

Selbstverlag, 2013

560 Seiten

27 Euro

(E-Book kostenlos)

ISBN 978-1481218580

Ausgereiftes Ruby

Es gibt unwartbaren und es gibt pflegeleichten Programmcode – was den Unterschied ausmacht, bezeichnet man als das Design der Software. Um diese Codegestaltung dreht sich das englischsprachige Buch “Practical Object-Oriented Design in Ruby”. Die Autorin Sandi Metz ist altbewährte Programmiererin und Trainerin und findet, gutes Design mache obendrein Spaß.

Anhand überschaubarer Codebeispiele in Ruby, die sie in den Kapiteln fortlaufend weiterentwickelt, demonstriert sie Designprinzipien der objektorientierten Programmierkunst: Klassen mit eindeutigen Zuständigkeiten, klaren Schnittstellen und wenigen Abhängigkeiten.

Vieles in diesem Buch lässt sich auch auf andere objektorientierte Sprachen übertragen, etwa der vorsichtige Umgang mit der Klassen-basierten Vererbung, die sich leicht in den Vordergrund drängt. Ebenfalls allgemeingültig sind die Kunstgriffe Duck-Typing und Dependency Injection. Die Umsetzung bleibt aber immer Ruby-spezifisch. Das Konzept einer Rolle etwa, die mehrere Klassen gleichermaßen spielen können, setzt Metz naheliegend als Ruby-Modul um.

Dass die Software während und nach der Umgestaltung noch korrekt funktioniert, garantieren Tests. Ihnen widmet das Buch gegen Ende ein eigenes umfangreiches Kapitel. Viele Gestaltungsprinzipien aus den vorhergehenden Kapiteln gelten auch dort, zudem können sich in Tests Designprobleme der Anwendung auf überraschende Weise bemerkbar machen.

Dieses Werk regt zum Nachdenken über und zum Experimentieren mit dem eigenen Code an. Die Autorin schreibt oft über ökonomisches Arbeiten und richtet sich primär an professionelle Programmierer. Der Band eignet sich aber für alle Ruby-Anwender, die mit mehr Freude schöneren Code schreiben möchten.

Info

Sandi Metz

Practical Object-Oriented Design in Ruby

Addison-Wesley, 2012

270 Seiten

25 Euro

(E-Book 15 Euro)

ISBN 978-0-321-72133-4

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 1 HeftseitePreis €0,99
(inkl. 19% MwSt.)
LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben