Head First Design PatternsHead First Design Patterns by Eric Freeman

My rating: 5 of 5 stars



Liebe Leserinnen, liebe Leser,

ich freuche mich, meine neueste Rezension darzustellen, weil dieses Buch ganz viele Leistung für das Durchlesen brauchte. Diese Leistung wurde nicht fürs Verstehen des Inhalts gebraucht, sondern für die Übersetzung des Java-Codes in C++. Zugänglich zu der Einführung zu den vielen Objekt-orientierten Gestaltungsprinzipien hatte ich die Gelegenheit über C++, den Unterschied zwischen Java und C++, Compilerfehlermeldungen und Quellcodeverwaltung sehr viel zu lernen. Letztendlich, um einen Kapitel ohne Übersetzung nicht auszulassen, musste ich mich in Nebenläufigkeit und besonders in Qt einführen, und darüber bin ich besonders glücklich. Alles in allem wurde diese Zeit sehr gut verbracht, besonders wenn man an die dadurch erworbenen wertvollen Erfahrung denkt.

Zusätzlich zu meiner gewöhnlichen goodreads Rezension teile ich den übersetzen Code auch, der auf meiner github-Seite zu finden ist. Im Falle Sie Vorschläge für die verbesserung des Codes haben, schicken Sie mich bitte eine E-Mail oder kontaktieren Sie mich bitte durch Github. Vielen Dank fürs Lesen.

I bought this book in the hopes of getting a nice introductory piece on design patterns, but it turned out to be quite more than that. While some of the other books on the subject are more of pattern catalogs, this one is a guide to design patterns and object oriented programming in general. All chapters are fashioned in a way, that patterns don’t just suddenly hit the reader out of the blue, but instead they are introduced in a more natural way. Each time chapters start with real world problems to which the authors thankfully provide some initial working, yet bad solutions. They also never fail to discuss why those solutions would fail in the long run and how they could be transformed into something that can stand the test of times better, using design patterns of course.

The authors also do not restrict themselves to discussing design pattern alone, but they also provide quite a few related recommendations, mind exercises and comparisons to broaden the readers’ views. Such exercises include crosswords, code puzzles, simple questions, matching tasks and more. While comparisons, which similarities and dissimilarities between their structure, intent and implementation is revealed, the exercises are about broader views, all helping to understand the whys and hows. At the end of each chapter there are also nice summaries, to which the reader can always refer to if there is a need for a bit of recap of chapters already read, and near the end of the book the authors also include a nice discussion about design pattern catalogs and a few words about how to use them, which is a definite plus.

Moreover, all these discussions are done in a very informal way with quite a few drawings and images, so this otherwise dry subject becomes rather enjoyable actually. There is also an ample amount of (Java) code examples, so besides imagining how all these patterns would work, one can directly examine them on their own computers as well. The code examples are just as informal (in naming) as the rest of the book, so learning is fun all the way through. Obviously, despite it being sizable, the book cannot include all the code, thus a freely downloadable package containing every piece of code was also made available. The quality of the code is rather good, but as the authors state, the structure of these mini-programs is not always like it would appear in real world situations, instead, they are presented in a way to make the general idea behind the solutions sink in easier.

So all in all, the authors achieve everything they set out for, and perhaps even more, hence the five stars. If you need an excellent introductory book on design patterns and object oriented programming in general, look no further, this will set you up quite nicely. I would highly recommend reading this as your very first piece on design patterns, and if possible, try to translate it into a different programming language to avoid copy-pasting and make things stick better. Since I honestly can’t come up with anything that I would say is lacking in this book, and the structure, the content, the quality and the amount of discussion is superb despite the highly informal presentation, it will definitely set you up for further, now educated explorations in the subject._

View all my reviews