icancode.de

Entwurfsmuster – Das umfassende Handbuch

Einleitung

Rico Magnucki

Rico Magnucki

21st Century Digital Boy und Blog-Gründer. Studiert naturwissenschaftliche Informatik in Bielefeld. Auf dem Blog ist er der Ansprechpartner für LaTeX, schreibt Tutorials, dreht die Videos für YouTube und durchforstet das Internetz nach spannenden Dingen.


Neuste Artikel

HP Deskjet 3636 – Multitalent zum schmalen Preis 09th April, 2017

NETGEAR AC1750 Smart WLAN-Router im Test 10th January, 2016

Bücher

Entwurfsmuster – Das umfassende Handbuch

Veröffentlicht am .

Von Entwurfsmustern hat wahrscheinlich jeder Programmierer schon mal gehört – oder sollte wenigstens davon gehört haben. Es handelt sich dabei um Schablonen, die wiederkehrende Muster aufgreifen und eine Art Best Practice darstellen. Dabei sind sie natürlich anpassbar und dienen der Wiederverwendbarkeit.

Im Gegensatz zu vielen anderen Dingen in der Softwareentwicklung zählen Entwurfsmuster nicht zu den sehr kurzlebigen Komponenten. Factory, Builder oder Singleton – sie alle existieren schon lange. Dennoch wurden sie weiterentwickelt und an die Eigenheiten der Programmiersprachen angepasst.

Entwurfsmuster - Das umfassende Handbuch - Rheinwerk Computing - icancode.de

Für wen ist das Buch?

Du musst das Rad nicht neu erfinden.

Den Satz hat jeder – egal ob in der Softwarebranche tätig oder nicht – wahrscheinlich schon mehrfach gehört. Aber ist diese Aussage wirklich korrekt? Hätten wir das Rad nicht mehrfach neu erfunden, würden wir wohl immer noch auf mehr oder weniger runden Steinrädern durch die Gegend fahren und nicht auf ultraleichten Alufelgen Geschwindigkeitsrekorde aufstellen. Gleiches gilt auch für die Softwarearchitektur, das Design und die Entwicklung.
Das Buch ist so geschrieben, dass es keine Rolle spielt, ob wir in C, C# oder Java entwickeln. Es geht darum, die grundlegenden Prinzipien der einzelnen Muster zu verstehen und diese an die jeweilige Situation anzupassen. Dabei kann es schon mal passieren, dass man als Nerd da steht, wenn man mit einer besonders cleveren Umsetzung eines Musters glänzen kann.

Der Einstieg

Was erwarte ich eigentlich von einem Buch, dass mir Entwurfsmuster beibringen will? Was sind Muster? Wie erkenne ich Muster? Wann verwende ich sie und natürlich wie wende ich sie an?

Kann „Entwurfsmuster – das umfassende Handbuch“ von Matthias Geirhos diese Fragen beantworten? Absolut. Auf gut 50 Seiten wird hier eine Basis geschaffen, mit der sehr gut gearbeitet werden kann. Diese Basis beinhaltet neben einer kurzen Einführung in die UML und einer Erklärung, was Entwurfsmuster sind bzw. was sie nicht sind auch eine Auffrischung der Grundlagen objektorientierter Entwicklung. In einer Welt aus Betriebsblinden kann das meiner Meinung nach absolut nicht schaden. Durch diesen breit gefächerten Einstieg eignet sich das Buch auch sehr gut für Einsteiger, die im Internet-Dschungel oft mit unnötig komplexen Erklärungen zu kämpfen haben.

Wer das Buch aufschlägt wird schnell feststellen, dass die Überschriften in deutscher Sprache sind. Auf den ersten Blick ist das verwirrend, sind doch gerade Entwickler englische Begriffe gewohnt. Dennoch kann ich die Entscheidung gut nachvollziehen. Gemischte Sprache ist auf Dauer sehr anstrengend. Der Steckbrief am Anfang jedes Musters schafft Klarheit über die Begrifflichkeiten und wer nach den englischen Begriffen sucht, wird im Index fündig. Bei einem Nachschlagewerk hätte ich mir dennoch gewünscht, die englischen Begriffe bereits im Inhaltsverzeichnis zu finden – diese sind es schließlich, die einem in freier Wildbahn begegnen.

Musterklassifiktion

Muster können in verschiedene Klassen unterteilt werden. So ist ein Singletonmuster beispielsweise in eine andere Kategorie einzuordnen, als eine MVC Muster. Um die Übersicht zu gewährleisten, teilt der Author die Muster in 6 Klassen ein.

  • Erzeugermuster (z.B. Factory Pattern)
  • Strukturmuster (z.B. Adapter Pattern)
  • Verhaltensmuster (z.B. Observer Pattern)
  • Muster verteilter Architekturen (z.B. Command Query Responsibility Segregation)
  • Datenmuster (z.B. Vererbung)
  • GUI-Muster (z.B. MVC)

Die Einteilung erleichtert nicht nur die Suche nach einem spezifischen Muster, sie birgt auch eine Erklärungskomponente. Hier werden Anwendungsbereiche abgesteckt, die direkt verhindern, dass eines der Muster an der falschen Stelle verwendet wird. Nicht selten sieht man Code, der völlig überladen ist mit Entwurfsmustern. Nicht weil sie an dieser Stelle sinnvoll wären, sondern weil man sie kann und dann auch anwenden will. So kann sich der Leser jetzt Fragen: „Erzeuge ich hier wirklich etwas?“ – und anschließend entscheiden, ob der Einsatz eines Factory Patterns sinnvoll ist oder nicht.

Auch für Fortgeschrittene

„Entwurfsmuster – Das umfassende Handbuch“ erklärt 37 Muster. Dabei können auch erfahrene Entwickler noch etwas lernen. Singletons sind ein sehr heikles Thema, besonders wenn es um Nebenläufigkeit und Threadsicherheit geht. Bisher war mir beispielsweise nicht bewusst, dass man Enums als Singleton missbrauchen kann. Diese Variante ist nicht nur sehr übersichtlich, sondern auch garantiert threadsicher.
Solche Alternativen werden zu fast jedem Pattern angeboten, wodurch es auch für erfahrenere Entwickler durchaus die Chance gibt etwas neues zu lernen oder wenigstens ein teiferes Verständnis um bestimmte Verhaltensweisen zu erhalten.

Beispiele und Erklärungen

Das Buch von Matthias Geirhos geizt wahrlich nicht mit Beispielen. Egal ob Snippets, Anwendungsbeispiele oder ganze Implementationen – es bleiben nahezu keine Fragen offen. Bei einem durchaus trockenen Thema wie Entwurfsmustern ist das eine beachtliche Leistung.
Die meisten Codebeispiele sind Java-Code. Die Art und Weise wie die geschweiften Klammern gesetzt werden, lässt dennoch einen C# Hintergrund des Autors vermuten, werden diese im Java-Umfeld doch häufiger in der selben Zeile gesetzt und nicht in der darauffolgenden.

//Java Code
public void saySomething(String fnord){
//Add some magic
}

//C# Code
public void saySomething(string fnord)
{
//Add some magic
}
Codestyle

Java vs. C#

Die C# Beispiele stehen auf der Verlagsseite zum Download bereit. Ein bisschen Schade finde ich, dass bei vielen ifelse Blöcken – wahrscheinlich aus Platzgründen – auf die Klammerung verzichtet wurde. Das ist aber echt schon Meckern auf sehr hohem Niveau.

Design- und Entwicklungsprinzipien

So der Titel des letzten Kapitels. Es ist in meinen Augen ein sehr wertvolles Kapitel. Hier werden unter anderem Merkmale schlechten Designs, das SOLID Prinzip und verschiedene Anti-Patterns beschrieben. Spätestens diese letzten 70 Seiten machen das Buch zu einem Nachschlagewerk, dass sich seinen Untertitel „Das umfassende Handbuch“ wirklich verdient hat.

Über den Autor

Auf der Homepage des Verlags heißt es über den Autor:

Matthias Geirhos ist C#- und .NET-Spezialist. Seit vielen Jahren ist er als verantwortlicher Entwicklungsleiter für eine große Verlagsgruppe tätig. Er hat viel Erfahrung in der Entwicklung und im Management von Softwareprojekten. Seine Bücher zeichnen sich durch gutdurchdachte Konzepte und flotten Schreibstil aus.

Ein Blick in die Liste seiner Veröffentlichungen bestätigt meine anfängliche Vermutung, dass er aus dem C# Umfeld kommt. Besonders den „flotten Schreibstil“ muss ich hier nochmal unterstreichen. Selten habe ich bei einem Fachbuch so oft schmunzeln müssen, ohne dass es lächerlich wurde.

Das gilt übrigens auch für sein Buch IT-Projektmanagement, dass ich auch nur wärmstens empfehlen kann.

Fazit

Entwurfsmuster – Das umfassende Handbuch“ ist alles anderes als ein Staubfänger im Regal. Vollgepackt mit wertvollem Wissen wird es wohl eher auf dem Schreibtisch liegen bleiben und gar nicht erst den Weg in ein Regal finden.
Das Buch hat den Titel „Das umfassende Handbuch“ absolut verdient. Auf 630 Seiten werden 37 Entwurfsmuster aus verschiedenen Winkeln beleuchtet und erklärt. Dabei wird großer Wert auf die Anwendbarkeit, mögliche Fallstricke , Best Practices und den Bezug zur Realität gelegt. Matthias Geirhos schafft es, auch Leser mit geringem Vorwissen so abzuholen, dass sie am Ende definitiv verstanden haben worum es geht. Dabei macht es seine lockere und teils humorvolle Darstellungsweise zu einem wahren Lesevergnügen.

Würde ich mir das Buch für schlanke 39,90 € kaufen? Definitiv. Würde ich das Buch weiterempfehlen? Unbedingt sogar.

Rico Magnucki

Rico Magnucki

http://magnucki.de

21st Century Digital Boy und Blog-Gründer. Studiert naturwissenschaftliche Informatik in Bielefeld. Auf dem Blog ist er der Ansprechpartner für LaTeX, schreibt Tutorials, dreht die Videos für YouTube und durchforstet das Internetz nach spannenden Dingen.

Navigation