Open Source im professionellen Einsatz
Linux-Magazin 03/2014

Ein DSL-Buch sowie ein Ruby-Buch

Tux liest

,

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.

598

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 PDF

Umfang: 1 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • In eigener Sache: Gewinnen Sie ein Fachbuch!

    Linux-Magazin Online verlost an allen Adventswochenenden 2008 je 10 Fachbücher. Am 20. und 21. Dezember zu gewinnen: Bücher über die Programmiersprache Ruby und Open Office Base vom Verlag O'Reilly.

  • Ruby spricht viele Sprachen

    Domain Specific Languages vereinfachen die textbasierte Arbeit am Computer durch eine zusätzliche Abstraktionsstufe. Statt jedes Detail in einer allgemeinen Sprache auszuprogrammieren, genügen wenige Schlüsselwörter. Ruby enthält die nötigen Ausdrucksmittel für solche Vereinfachungen.

  • Bücher

    Die Bücherseite widmet sich diesmal Skriptsprachen: Das erste Buch behandelt Ruby für alltagstaugliche Skripte, das zweite möchte mit Scipy und Numpy auch Wissenschaftler zu Python bringen.

  • Tux liest

    Auch Anhänger der freien Software müssen sich für den technischen Unterbau ihres Systems interessieren, ihren PC. Wenn er aufgemöbelt und getunt ist, kann man auch mit Skriptsprachen wie Ruby flott arbeiten. Wir haben uns einen Hardware-Schmöker und ein Ruby-Buch angesehen.

  • Überarbeitete Anleitung für sicheres Ruby on Rails

    Der Security-Consultant Heiko Webers hat sein freies E-Book über die Absicherung von Ruby-on-Rails-Anwendungen in Version 2 veröffentlicht.

comments powered by Disqus

Ausgabe 10/2017

Digitale Ausgabe: Preis € 6,40
(inkl. 19% MwSt.)

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.