Vaughn Vernon ist ein»software Craftsman«mit mehr als 30 Jahren Erfahrung in Softwaredesign, Entwicklung und Architektur. Seine Leidenschaft ist die Vereinfachung von Softwaredesign und die Implementierung mit innovativen Methoden. Er ist Autor der Bücher»Implementing Domain-Driven Design (IDDD)«und»Reactive Messaging Patterns with the Actor Model«(beide Addison- Wesley). Vaughn hat sein Wissen in seinem IDDD-Workshop bereits an Hunderte Softwareentwickler überall auf der Welt weitergegeben und spricht regelmäßig auf Fachkonferenzen. Er interessiert sich vor allem für verteilte Systeme, Messaging, und das insbesondere in Kombination mit dem Aktorenmodell, und ist als Berater für Domain-Driven Design sowie für DDD unter Verwendung des Aktorenmodells mit Scala und Akka tätig. Seine aktuellen Veröffentlichungen sind in seinem Blog www.vaughnvernon.co zu finden oder bei Twitter unter @VaughnVernon. Die Übersetzer: Dr. Carola Lilienthal (@cairolali auf Twitter) ist Softwarearchitektin bei der WPS Workplace Solutions GmbH. 2015 hat sie ihre Erfahrungen aus über hundert Architekturanalysen in Java, C#, C++, ABAP sowie PHP in dem Buch»Langlebige Softwarearchitekturen Technische Schulden analysieren, begrenzen und abbauen«zusammengefasst. Regelmäßig gibt sie ihr Wissen auf Konferenzen, in Artikeln und bei Schulungen weiter. Henning Schwentner (@hschwentner) liebt Programmieren in hoher Qualität. Diese Leidenschaft lebt er als Softwarearchitekt, Berater, Trainer und Entwickler bei der WPS Workplace Solutions GmbH aus. Seine Projekte sind Domain-Driven, agil und in Programmiersprachen wie Java und C#, aber auch ABAP geschrieben. Er gibt regelmäßig Workshops zum Thema Domain-Driven Design. Zu diesem Buch sowie zu vielen weiteren dpunkt.büchern können Sie auch das entsprechende E-Book im PDF-Format herunterladen. Werden Sie dazu einfach Mitglied bei dpunkt.plus + : www.dpunkt.plus
Vaughn Vernon Domain-Driven Design kompakt Aus dem Englischen übersetzt von Carola Lilienthal und Henning Schwentner
Vaughn Vernon vaughn@forcomprehension.com Carola Lilienthal cl@wps.de Henning Schwentner hs@wps.de Lektorat: Christa Preisendanz Übersetzung: Carola Lilienthal und Henning Schwentner Copy-Editing: Ursula Zimpfer, Herrenberg Satz: Birgit Bäuerlein Herstellung: Susanne Bröckelmann Umschlaggestaltung: Helmut Kraus, www.exclam.de Druck und Bindung: M.P. Media-Print Informationstechnologie GmbH, 33100 Paderborn Bibliografische Information der Deutschen Nationalbibliothek Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar. ISBN: Print 978-3-86490-439-4 PDF 978-396088-178-0 epub 978-3-96088-179-7 mobi 978-3-96088-180-3 1. Auflage 2017 Copyright 2017 dpunkt.verlag GmbH Wieblinger Weg 17 69123 Heidelberg Authorized translation from the English language edition, entitled Domain-Driven Design Distilled, 1st Edition by Vaughn Vernon, published by Pearson Education, Inc, publishing as Addison-Wesley Professional, Copyright 2016 by Pearson Education, Inc. ISBN 978-0134434421 All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording or by any information storage retrieval system, without permission from Pearson Education, Inc. German language edition published by dpunkt.verlag GmbH, Copyright 2017 Die vorliegende Publikation ist urheberrechtlich geschützt. Alle Rechte vorbehalten. Die Verwendung der Texte und Abbildungen, auch auszugsweise, ist ohne die schriftliche Zustimmung des Verlags urheberrechtswidrig und daher strafbar. Dies gilt insbesondere für die Vervielfältigung, Übersetzung oder die Verwendung in elektronischen Systemen. Es wird darauf hingewiesen, dass die im Buch verwendeten Soft- und Hardware-Bezeichnungen sowie Markennamen und Produktbezeichnungen der jeweiligen Firmen im Allgemeinen warenzeichen-, marken- oder patentrechtlichem Schutz unterliegen. Alle Angaben und Programme in diesem Buch wurden mit größter Sorgfalt kontrolliert. Weder Autor noch Verlag können jedoch für Schäden haftbar gemacht werden, die in Zusammenhang mit der Verwendung dieses Buches stehen. 5 4 3 2 1 0
Nicole und Tristan Wir haben es wieder geschafft!
vii Vorbemerkung der Übersetzer Obwohl das Buch, in dem Domain-Driven Design (DDD) zum ersten Mal vorgestellt wurde das»big Blue Book«[Evans 2004], schon 2004 erschienen ist, gab es bisher keine Übersetzung eines DDD-Buches ins Deutsche. Das war vielleicht in Ordnung, weil man sowieso viel Zeit braucht, um sich intensiv mit einem dicken Buch auseinanderzusetzen. Und die Fremdsprache macht die Hürde dann auch nicht entscheidend schwieriger. Aber ein knappes Werk, wie das vorliegende Buch, soll einfach und schnell zugänglich sein und den Leser nicht dadurch in seinem Lesefluss verlangsamen, dass es ihn dazu zwingt, jedes zweite Wort im Wörterbuch nachzuschlagen. Deshalb haben wir es übersetzt. Wir hoffen, dass es Entwicklern nicht nur hilft, selbst in DDD einzutauchen, sondern auch Manager, Domain Experts und sonstige Stakeholder davon überzeugen kann. Wenn man ein Sachbuch übersetzt, stellt sich die Frage, wie man mit den Fachbegriffen umgeht. Lässt man sie in Englisch, weil sie bereits so in die deutsche Sprache eingeführt wurden? Oder übersetzt man sie, um die Begriffe verständlich zu machen? Wir haben in der deutschsprachigen DDD-Gemeinde eine Diskussion darüber geführt und sind zu folgendem Ergebnis gekommen: In der Praxis ist es auch in Projekten, in denen Deutsch gesprochen wird üblich, die DDD-Begriffe auf Englisch zu verwenden. Deshalb lassen wir sie auch hier im deutschen Text auf Englisch. Jeweils beim ersten Auftreten eines Begriffes geben wir eine Übersetzung auf Deutsch an, um die Begrifflichkeiten verständlich zu machen. Weil man ein Sachbuch nicht immer von Anfang bis Ende liest, sondern gerne auch mitten in den Text springt, machen wir das jeweils beim ersten Auftreten eines DDD-Begriffes in jedem Kapitel. Außerdem finden Sie auf den Umschlaginnenseiten ein kleines Glossar, in dem Sie schnell nachschlagen können, wenn Sie sich z. B. fragen, was das»bounded«in Bounded Context nochmal auf Deutsch heißt.
viii Vorbemerkung der Übersetzer Für die lebhafte Diskussion»englische vs. deutsche Begriffe«und die tollen Ideen danken wir herzlich (in alphabetischer Reihenfolge): Sebastian Dietrich, Jan Fellien, Oliver Gierke, Marco Heimeshoff, Stefan Hofer, Michael Plöd, Stefan Priebsch, Lars Röwekamp und Eberhard Wolff. Carola Lilienthal, Henning Schwentner Hamburg, März 2017