Heim > Backend-Entwicklung > PHP-Tutorial > Buchbesprechung: Praktische Designmuster in PHP

Buchbesprechung: Praktische Designmuster in PHP

尊渡假赌尊渡假赌尊渡假赌
Freigeben: 2025-02-19 09:33:09
Original
325 Leute haben es durchsucht

Buchbesprechung: Praktische Designmuster in PHP

Diese Überprüfung der praktischen Designmuster von Brandon Savage in PHP umfasst meine eigenen Meinungen und Impressionen sowohl über das Buch als auch den Aspekt der Selbstveröffentlichung. Vielen Dank an Brandon, dass Sie mir ein Bewertungskopie gegeben haben.

In

Konstruktionsmustern handelt es sich um häufige Lösungen für häufige Probleme.
… Es sind Konzepte, keine Blaupausen; Ideen, keine fertigen Designs.
… Sie verleihen einer ansonsten schwierigen Situation Klarheit.
- Brandon Savage, praktische Designmuster in PHP

Key Takeaways

  • „Praktische Entwurfsmuster in PHP“ von Brandon Savage bietet einen umfassenden Leitfaden zum Verständnis und zur Implementierung von Entwurfsmustern in PHP mit Schwerpunkt auf gemeinsamen Lösungen für gemeinsame Probleme. Das Buch deckt eine breite Palette von Mustern ab, die jeweils mit potenziellen Codeimplementierungen erklärt werden, was es zu einer wertvollen Ressource für Entwickler auf mittlerer Ebene macht.
  • Während der Inhalt des Buches gelobt wird, stellt die Bewertung einige Mängel fest. Dazu gehören die mangelnde Erklärung für bestimmte Muster wie das Registrierungsmuster und die Annahme, dass die Leser mit fortschrittlichen Konzepten und Inhalten von Drittanbietern vertraut sind. Die Rezension kritisiert auch den Ansatz des Buches zu Modellen in MVC -Anwendungen und das Fehlen praktischer Beispiele für das Domänenmodellmuster.
  • Die Überprüfung unterstreicht die Herausforderungen des Selbstverlagers, wie es in der mangelnden beruflichen Anleitung, Sprachfehlern und gelegentlichen Kuriositäten in Code-Beispielen zu sehen ist. Trotz dieser Probleme wird das Buch für Zwischenentwickler empfohlen, die sich mit Designmustern befassen möchten, jedoch nicht für Anfänger, die zuerst grundlegende Konzepte beherrschen müssen.

Inhalt

Beginnend mit einem leichteren, einführenden Hinweis erklärt Brandon die Notwendigkeit von Frameworks, argumentiert, dass OOP nicht nur in den Klassen einwickelt und detailliert darüber geht, warum Designmuster schwierig zu lernen scheinen. Anschließend setzt er eine milde Einführung in feste Prinzipien fort und legt die Grundlage für fortgeschrittenere Konzepte. Er erklärt, warum jede solide Regel wichtig ist und was sie bedeutet. Angesichts der Tatsache, dass Solid ein gut etabliertes Software -Design -Prinzip ist, ist es nur natürlich, es mit jedem Muster zu vergleichen, das im Buch erklärt werden soll. Oder genauer gesagt, um zu beurteilen, wie gut jedes Muster die soliden Prinzipien respektiert und dem Entwickler seine beabsichtigte Funktionalität ermöglicht.

Buchbesprechung: Praktische Designmuster in PHP

Wenn ich Angelegenheiten in der Dreyfus -Model -Terminologie zum Ausdruck bringen, behauptet er, dass das Buch da ist, um einen Anfänger in einen kompetenten Entwickler zu verwandeln, ohne sie weiteren Fehlern an Anfängern zu unterziehen, wenn tatsächlich ein solcher Lernansatz nicht möglich ist - das ist - das ist - das ist - das ist - das ist. Nur nicht wie der Prozess des menschlichen Wissens funktioniert.


Da es aus der TOC möglicherweise nicht übermäßig offensichtlich ist, sind die in diesem Buch erläuterten Muster in der Reihenfolge:

  • das (abstrakte) Fabrikmuster
  • Das Singleton -Muster
  • Das Builder -Muster
  • Das Dekorateur Muster
  • Das Adaptermuster
  • Das Brückenmuster
  • Das Fassadenmuster
  • Das Strategiemuster
  • Das Mediatormuster
  • Das Beobachtermuster
  • Die Kette des Verantwortungsmusters
  • das Iteratormuster
  • Das zusammengesetzte Muster
  • Das MVC -Muster
  • Das Domänenmodellmuster
  • Das aktive Datensatzmuster
  • Das vordere Controller -Muster

Mit so vielen gedeckten Mustern (und den meisten gut abgedeckt) war ich überrascht, einen Satz wie „ […] zum Beispiel das Registrierungsmuster (nicht in diesem Buch behandelt)… “. Warum nicht? Das Registrierungsmuster ist ein beliebtes Muster und sehr einfach zu erklären, auch wenn es heutzutage nicht genau empfohlen wird.

Muster nach Muster wird jeder gut erklärt, und die meisten folgen Code -Beispiele, die ihre potenzielle Implementierung demonstrieren, obwohl ich mit dem Fabrikmuster -Beispiel mit dem Cache einen Überfall habe.

Das Muster wird in einem Beispiel für verschiedene Caches realisiert - APC und Memcache - und beide werden durch eine Fabrik hervorgebracht, die in den Diensten injiziert wird, welcher Dienst eine Cache -Komponente benötigt.

Es macht für mich Sinn, aber ich kann weniger erfahrene Leute sehen, die sich fragen, warum man den Werksschritt tatsächlich überhaupt braucht, und nicht einfach einen Hinweis auf die Cache -Schnittstelle selbst im Konstruktor, die die Injektion des Cache -Objekts selbst erfordert. und nicht seine Fabrik. Das aktuelle Beispiel enthält sowohl eine Fabrikoberfläche als auch eine Cache -Schnittstelle und zumindest scheint man einen Überschuss zu sein. Dies wurde nie auf mittelgroße Entwickler der mittelgroßen Ebene erklärt, und ich befürchte, dass es für einige verwirrend sein könnte. Ich bin auch weniger als zufrieden mit der Erklärung des Brückenmusters - es schien es zu fehlen, als wäre es nur an der Oberfläche zerkratzt worden, um niemals richtig zurückzukehren.

Andererseits habe ich die Erklärung des zusammengesetzten Musters und seine Demonstration an sehr interessanten Baumbeispielen absolut geliebt - der Autor baut einen zusammengesetzten Baum mit einer willkürlichen Anzahl verschachtelter Knoteneben - und ich war besonders begeistert von der Erklärung des Dekorationsmusters. Es wurde sehr zugänglich und auf gute, verwendbare Beispiele geschehen. Insbesondere dieses Muster war eines, das ich immer Schwierigkeiten hatte, Menschen aus heiterem Himmel zu erklären, als ich gefragt wurde, und ich habe noch keinen besseren Zusammenbruch als in diesem Buch gefunden.

Vernachlässigung von Modellen

In einer Instanz des Buches sagt Brandon, dass Modelle die schwersten Lifter einer MVC -Anwendung sind, die alle Geschäftslogik- und Validierungscode enthalten. Dies ist eine Aussage, die viel zu absolut für mich ist, um es zu akzeptieren - von der Spitze meines Kopfes kann ich mir ein Beispiel vorstellen, bei dem dies nicht wahr ist: Laravel. Wenn Laravel 5 herauskommt und Formularanfragen hinzufügt, werden die Modelle noch leichter wachsen.

Buchbesprechung: Praktische Designmuster in PHP

Zugegeben, einige Menschen neigen dazu, alles und das Spülen in die Modelle zu stecken, aber es gibt Menschen, die auch die gleiche Menge an Godcode in Controller einfügen. Meine Erfahrung und Präferenz sagen, dass alles, was mit Framework bezogen wurde , solange sie zwischen Frameworks interoperabel sind. Das ist jedoch persönliche Präferenz, nehme ich an. Eine andere Sache hat mich jedoch seltsam gemacht:

gute Modelle erstellen ist eine der kompliziertesten Aufgaben, die jeder Entwickler anschließt. In der Dokumentation von Zend Framework war es für eine lange Zeit festgestellt, dass es keine Zend_Model -Klasse gab, da das Erstellen eines Modells der Großteil eines Anwendungsentwicklungsprozesses ist. Um ein Zend_Model zu erstellen, würde man davon ausgehen

Während dies sinnvoll ist, wäre es unglaublich vorteilhaft gewesen, dass die Wert-, Gateway- und Speicherobjekte im einfachsten Manieren zum ersten Mal unglaublich vorteilhaft gewesen sind. Das Domänenmodellmuster war meiner Meinung nach in diesem Buch zu vernachlässigt und viel zu theoretisch.

Der Fluch des Wissens

Im gesamten Buch gibt Brandon Hinweise auf fortschrittliche Konzepte (ORM, Erbschaft, Abhängigkeitsinjektion) und Inhalte von Drittanbietern, ohne mit der Verknüpfung (Bande von vier) zu verknüpfen, vorausgesetzt, der Leser kennt alles mit allem. Die Bande von vier Jahren wird mehrfach erwähnt und könnte zumindest einen Link zu Entwurfsmustern verwenden - sonst schauen der Leser „Anfänger“ und „Advanced Anfänger“ nur den Satz in Verwirrung.

In anderen Fällen wird die Absatzstruktur auf eine Weise geschrieben, die weit über das Verständnis für einen Anfänger bis zum Zwischenbenutzer hinaus geht:

Es ist eine uralte Frage, mit der viele Entwickler immer zu kämpfen haben: Wenn ich daran arbeite, meine Abhängigkeiten umzukehren und keine Objekte in meinen Klassen zu erstellen 'T notwendigerweise injiziert werden?

Dies ist nicht auf einem Niveau, das vom Leser konsumiert werden kann, der dieses Buch benötigen würde, um sich mit den Mustern vertraut zu machen. Der Leser, der diesen Satz in vollem Umfang versteht, ist mit allen Mustern des Buches wahrscheinlich bereits voll vertraut und stellt so die eigentliche Zielgruppe in Frage. Ich glaube, dies ist darauf zurückzuführen, dass Herr Savage unter dem, was als „Fluch des Wissens“ bezeichnet wird, leidet.

Buchbesprechung: Praktische Designmuster in PHP

wikipedia definiert es als solche:

Der Fluch des Wissens ist eine kognitive Tendenz, die besser informierte Parteien dazu führt, dass es äußerst schwierig ist, aus der Perspektive weniger informierter Parteien über Probleme nachzudenken.

Der Fluch des Wissens ist ein sehr häufiges Ereignis bei Fachleuten, die nicht formell geschult sind, um das weiterzugeben, was sie wissen, aber auch etwas, das mit Zeit, Erfahrung und Feedback den Effekt verliert. Dies ist auch der Grund, warum wir bei SitePoint die Menschen ermutigen, uns ehrliches Feedback zu unseren Beiträgen zu geben, und der Grund, warum wir versuchen, die Dinge mit jeder neuen Veröffentlichung einfacher und besser gestoppt zu machen. Niemand ist immun gegen den Fluch - einige sind nur mehr davon betroffen.

Die Pest der Selbstveröffentlichung

Buchbesprechung: Praktische Designmuster in PHP

In den letzten Jahren scheint sich die Selbstverlagsscheibe wirklich geschafft zu haben. Diejenigen, die nicht auf Leanpub zurückgreifen, gehen vollständig Solo, wie es Brandon mit diesem Buch getan hat. Während dieser Ansatz den Prozess tatsächlich beschleunigt und es Experten ermöglicht, qualitativ hochwertige Inhalte in alarmierend schnellem Tempo in die Hände interessierter Parteien zu stecken, ermöglicht er auch mehr Fehler, schlechte Inhalte und Tippfehler.

Die meisten Probleme, die andere Selbstveröffentlichungsautoren plagen, plagen dieses Buch leider auch. Ohne einen erfahrenen Redakteur scheint es keine Anleitung zu Inhalten, Form oder sogar grammatikalischen und syntaktischen Genauigkeit gegeben zu haben - etwas, das Menschen, die in einer Sprache beheimatet sind, oft durcheinander gebracht.

Ich denke, dass Muttersprachler keine Fehler machen und daher keine formelle Bearbeitung benötigen, um beispielsweise ein in Y ansässiges Unternehmen zu vergleich zu Das einzige Gründe, dass der Korrektor als Muttersprachler von Sprache X ist. Sie möchten mich wirklich nicht einstellen, um Ihre kroatische Version einer Website zu korrigieren, obwohl es meine Muttersprache ist, aber es fällt Ihnen schwer, ein besseres Englisch zu finden Sprache Herausgeber.

Schlussfolgerung

Als erweiterter Benutzer hatte ich frühere Kenntnisse über die meisten, wenn nicht alle Muster, die im Buch erklärt wurden. Die Erklärungen, die ich durchgemacht habe, waren jedoch gut geformt und für einen Zwischenbenutzer zugänglich - obwohl meiner Meinung nach nicht zu einer geringeren Fähigkeiten. Während der Inhalt des Buches sehr gut ist und Brandon hervorragend in Code demonstrieren kann, was die Theorie beschreibt, bin ich der Meinung, dass das Buch als Ganzes viel zu komplex ist, als dass der Neuling Entwickler etwas Greifbares herausholen kann.

Die PHP -Community im Allgemeinen, wie es mir scheint, leidet an einer Art „fehlender Link“ -Syndrom, bei dem wir die absoluten Anfängerbücher haben („Dies ist Echo, dies ist eine Funktion, dies ist ein PHP -Tag“) und die Zwischenbücher wie diese oder alles, was Stör, Jones, Hartjes und andere herausgegeben haben Der Feueransatz “.

, dass Sie ein Zwischenentwickler sind, der in Muster einsteigen möchte, und aus diesen unangenehmen Nicken auf Konferenzen, in denen Menschen, die um Sie herum stehen, über sie sprechen, aber nichts verstehen, nichts bekommen - erhalten Sie dieses Buch auf jeden Fall. Wenn Sie ein Neuling sind, kann ich Ihnen nicht empfehlen, dies zu kaufen - noch nicht. Beherrschen Sie zuerst Ihre „Echos“, lernen Sie, was der Komponist ist, und versenken Sie Ihre Zähne in diesen.

In der Tat, wenn Sie ein fortgeschrittener Anfänger sind (Anfänger sollten bei den Grundlagen beginnen), der dennoch an Mustern interessiert ist, applaudiere ich Ihnen und biete die folgenden Ressourcen an, bevor Sie in dieses Buch eintauchen:

    Elemente von objektorientiertem PHP auf Lernable
  • objektorientiertes Php
  • objektorientiertes PHP angewendet: Zwei Armeen kämpfen gegenseitig
  • Awesomeness von Alejandro Gervasio - Lesen Sie alles, was dieser Mann jemals geschrieben hat
  • Komponist
  • mvc
Inhaltlich, ich würde dem Buch ein 4/5 geben, aber unter Berücksichtigung des Rush-Job Github Repo, den ich bereits mit Korrekturen verschmutzt habe) und der offensichtliche Mangel an beruflicher Anleitung zusammen mit einigen Kuriositäten, von denen ich persönlich glaube, dass sie falsche Werte in Neulinge einbetten werden, die auf dieses Buch stolpern werden (Startklassennamen mit Zahlen in verschiedenen Code -Beispielen), ich ', ich' '' '. M Beende das Endergebnis bei 3/5.

Buchbesprechung: Praktische Designmuster in PHP

häufig gestellte Fragen zu praktischen Entwurfsmustern in PHP

Wie hoch sind die Vorteile der Verwendung von Entwurfsmustern in PHP? Sie bieten eine Möglichkeit, die Effizienz und Wartbarkeit Ihres Codes zu verbessern. Durch die Verwendung von Designmustern können Sie Ihren Code flexibler, wiederverwendbarer und verständlicher machen. Sie erleichtern auch die Kommunikation zwischen Entwicklern, da sie eine Standardterminologie für bestimmte Lösungen bieten. Um Objekten dynamisch neue Verhaltensweisen hinzuzufügen, indem diese Objekte in spezielle Wrapper -Objekte platziert werden. In PHP kann dies erreicht werden, indem eine Dekorationsklasse erstellt wird, die die ursprüngliche Klasse umhüllt und zusätzliche Funktionen bietet. Die Dekorateure -Klasse implementiert dieselbe Schnittstelle wie die ursprüngliche Klasse und enthält eine Instanz davon. Alle Anrufe an den Dekorateur werden an die ursprüngliche Klasse weitergeleitet, und dann wird das zusätzliche Verhalten hinzugefügt. Musterbibliotheken und Stilführer sind alle Werkzeuge, die dazu beitragen, die Konsistenz in Bezug auf Design und Entwicklung aufrechtzuerhalten. Ein Designsystem ist die übergreifende Struktur, die die Philosophie, Prinzipien und Werkzeuge umfasst, die den Design- und Entwicklungsprozess regieren. Eine Musterbibliothek ist eine Teilmenge des Designsystems und enthält die wiederverwendbaren Designelemente und Komponenten. Ein Stilhandbuch hingegen ist ein Dokument, das die visuellen Designelemente wie Farben, Typografie und Abstand beschreibt. Musterbibliotheken sind ein wichtiges Instrument zur Erreichung von Designkonsistenz. Sie bieten eine Reihe wiederverwendbarer Komponenten, die in verschiedenen Teilen eines Projekts verwendet werden können. Durch die Verwendung dieser vordefinierten Komponenten stellen Sie sicher, dass die gleichen Entwurfsmuster konsistent verwendet werden, was zu einem zusammenhängenden und benutzerfreundlicheren Design führt. Refactoring ist ein Prozess der Änderung des vorhandenen Code, um seine Struktur zu verbessern, ohne seine Funktionalität zu ändern. Im Zusammenhang mit Entwurfsmustern kann Refactoring verwendet werden, um ein Designmuster in eine vorhandene Codebasis zu implementieren. Dies kann die Wartbarkeit, Lesbarkeit und häufig Leistung des Codes verbessern. ”Bietet einen umfassenden Leitfaden zum Verständnis und zur Implementierung von Designmustern in PHP. Es bietet praktische Beispiele und detaillierte Erklärungen verschiedener Entwurfsmuster und erleichtert den Lesern, die Konzepte zu erfassen und sie in ihren eigenen Projekten anzuwenden.

Sind Designmuster nur für PHP anwendbar? Sie sind ein Konzept im Softwaredesign, das auf jede objektorientierte Programmiersprache angewendet werden kann. Die Implementierung kann von Sprache zu Sprache variieren, aber die zugrunde liegenden Prinzipien bleiben gleich.

Wie können Entwurfsmuster die Kommunikation zwischen Entwicklern verbessern? . Wenn Entwickler diese Begriffe verwenden, vermitteln sie ein spezifisches, gut verstandenes Konzept, das Missverständnisse reduziert und die Kommunikation verbessert. Sie können auch Komplexität einführen, wenn sie nicht ordnungsgemäß verwendet werden. Überbeanspruchung von Entwurfsmustern kann zu unnötiger Abstraktion führen und den Code schwieriger zu verstehen und zu warten. Daher ist es wichtig, sie mit Bedacht zu verwenden und nur dann, wenn sie ein wiederkehrendes Problem wirklich lösen. Ihre PHP -Projekte sind es, das Problem zu verstehen, das Sie zu lösen versuchen, und festzustellen, ob es sich um ein wiederkehrendes Problem handelt, das ein Designmuster lösen kann. Sobald Sie ein geeignetes Designmuster identifiziert haben, können Sie es in Ihrem Code implementieren. Denken Sie daran, das Ziel ist es, Ihren Code effizienter und aufrechterhalten zu gestalten. Behalten Sie also immer Einfachheit und Klarheit im Auge.

Das obige ist der detaillierte Inhalt vonBuchbesprechung: Praktische Designmuster in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage