Ein alter Schinken
Für den Fall das du dieses Buch noch nicht kennst: Das Buch “Design Patterns - Elements of Reusable Object-Oriented Software” von Erich Gamma, Richard Helm, Ralph Johnson und John Vlissides ist ein echter Klassiker. Es wurde 1994 veröffentlicht und ist damit fast 30 Jahre alt. Es sieht genau so aus:
Warum reden wir darüber?
Weil es mich seit vielen Jahren begleitet, ist es zunächst das einzige Buch, das ich in meiner Diplomarbeit zitiert habe. Auf der anderen Seite handelt es sich um ein Buch, das viele Softwarearchitekten vielleicht sogar jeder Softwarearchitekt auf seinem Schreibtisch liegen hat. Es ist einfach ein Klassiker, der unzählige Programmierer und Architekten geprägt hat und immer noch prägt.
Ist der Inhalt noch aktuell?
Wie bereits bekannt ist, ist “Design Patterns” mittlerweile 30 Jahre alt und immer noch in Smalltalk und einer veralten Version von C++ verfasst, was für viele junge Programmierer nicht mehr besonders zugänglich ist. Gerade Anfänger fühlen sich oft überfordert von diesen Sprachen und auch von den teilweise komplexen Diagrammen, die nicht unbedingt für jedermann verständlich sind.
Trotzdem sind sie voller inhaltlicher Patterns, die zu ihrer Entstehungszeit und auch viele Jahre später als äußerst genial gelten. Beim Schreiben von Software müssen wir stets an die Architektur denken, insbesondere wenn wir über den Anwendungsbereich alltäglicher kleiner Apps hinausgehen, die lediglich CRUD-Operationen durchführen. Heutzutage sind wir allzu sehr von Fullstack-Frameworks wie Laravel, Rails oder Next verwöhnt.
Was auch in Ordnung ist: Viele Programmierer werden bis zu ihrem Lebensende nicht über die Grenzen vorgefertigter Fullstack-Frameworks hinausgehen. Nicht jeder schreibt am nächsten Big Data 1-Billion-Dollar-Startup mit. Aber für diejenigen, die es tun, wird es mit vorgefertigten Architekturen irgendwann eng. Genau an diesem Punkt sollten wir tiefer über Architektur und Software Engineering nachdenken.
Natürlich reicht es nicht aus, nur ein Buch zu lesen, um all diese extrem schwierigen Hürden zu meistern. Aber es ist ein Anfang, ein guter Anfang, meiner Meinung nach der beste Anfang. Die darin enthaltenen 23 Patterns sind perfekt, um sich gedanklich für Design Patterns zu öffnen. Einige davon kann man sogar heute noch einsetzen.
Kannst du die Patterns nicht einfacher erklären?
Ja, das habe ich mir auch zur Aufgabe gemacht, und für mich ist eine der besten Möglichkeiten, Wissen zu vermitteln, per Videos. Deshalb habe ich diese Playlist erstellt und werde so viele Patterns wie möglich in einfachem JavaScript mit einfachen Beispielen erklären. PS: Auch sehr nützlich, wenn man gerade Computer Science studiert; es könnte sein, dass einige davon in der Prüfung abgefragt werden 🌝.
Affiliatelink
Wenn ich dich neugierig gemacht habe, kannst du das Buch hier kaufen:
Design Patterns - Elements of Reusable Object-Oriented Software