✅ WEB- und WordPress-Nachrichten, Themen, Plugins. Hier teilen wir Tipps und beste Website-Lösungen.

Rapid Prototyping mit WordPress: Konzeptanalyse

4

Im vorherigen Beitrag habe ich begonnen, den Prozess der Umsetzung der Idee für ein Plugin zu durchlaufen, das es schnell als Prototyp in etwas umwandelt, das in WordPress funktioniert. Und obwohl es funktioniert, folgt es nicht unbedingt irgendwelchen objektorientierten Prinzipien, noch ist es an einem Ort, an dem wir einfach weitere Funktionen hinzufügen können.

Nein, das ist kein Argument dafür, warum Objektorientierung besser ist. Es ist zufällig meine bevorzugte Art, Code zu schreiben, also gehe ich so vor.

Ich weiß, dass der Beispielcode, den ich gebe, einfach ist, und ich weiß, dass man argumentieren kann, dass so etwas so gelassen werden kann, wie es ist. Aber der Punkt dabei ist, zu zeigen, wie man ein Konzept nimmt, es prototypisiert und es dann in etwas umwandelt, das objektorientierten Prinzipien folgt.

Und meiner Erfahrung nach ist es viel schwieriger, dies mit einem komplexen Beispiel von Anfang an zu tun. Wenn Sie die Leser von Anfang an verlieren, welche Hoffnung besteht dann für sie, dass sie verstehen, was kommt?

Nachdem dies gesagt ist, werfen wir einen Blick auf den Code aus dem vorherigen Beitrag und führen eine kleine Konzeptanalyse durch, um zu sehen, was innerhalb einer Klasse gut funktionieren könnte und wie wir anfangen könnten, ihn mithilfe von Klassen zu organisieren. Namensräume usw.

Konzeptanalyse

Wann immer es um das Programmieren geht, ist es so einfach, sofort in das Schreiben von Code einzusteigen und ihn dann so lange zur Vorlage zu bringen, bis er das tut, was wir wollen.

Und wenn es funktioniert, fühlt es sich an, als wären wir fertig und können mit der nächsten Aufgabe fortfahren. Aber bei größeren Projekten ist das nicht immer der Fall. Tatsächlich ist es oft besser, ein wenig Konzeptanalyse oder objektorientierte Analyse Ihres Designs durchzuführen, bevor Sie fortfahren.

Einfach ins Programmieren einzusteigen ist nicht immer der beste Ansatz.

Ein Fall für die Analyse

Ein typisches Beispiel: Während ich dies schreibe, führen einer meiner Teamkollegen und ich eine Diskussion darüber, ob wir eine Klasse erweitern oder eine neue Klasse schreiben sollten, um Geolokalisierungsinformationen für Daten zu verarbeiten, die aus der Google Maps-API abgerufen werden.

Kann ich es beflügeln und etwas schreiben, das funktioniert? Sicher. Aber lässt es sich gut in die Anwendung integrieren? Nicht ohne Konzeptanalyse, Planung und Abstimmung mit dem Rest des Systems.

Und genau darum geht es bei der Analyse.

Analyse unserer Arbeit

Was bedeutet das also für das Plugin, das wir uns gestern angesehen haben? Aktuell haben wir folgendes:

  • eine Funktion, die für die Erstellung einer Metabox und die Anzeige der darin enthaltenen Inhalte verantwortlich ist,
  • eine Funktion zum Abfragen der Datenbank und Abrufen der letzten neusten Beiträge,
  • eine Funktion zur Anzeige der Ergebnisse in der Metabox
  • eine Funktion zum Anzeigen einer Nachricht, wenn keine Ergebnisse in der Metabox vorhanden sind

Darüber hinaus beziehen sich einige dieser Funktionen auf Hooks, die Teil der WordPress-API sind. Die Funktion zum Erstellen der Metabox ist nämlich mit WordPress verbunden, und ihre Begleitfunktion zum Rendern der Anzeige sind alle Teil derselben Komponente.

Dann haben wir Funktionen zum Abfragen der Datenbank und wir haben Funktionen, die direkt mit Ansichten zusammenhängen.

Wie könnte dies also aussehen, wenn wir dies in verschiedene Klassen und Dateien grafisch darstellen würden, die dabei helfen würden, dies auf eine objektorientiertere Weise zu erstellen?

Keine Einzellösung

Es gibt keine einheitliche Lösung und einige Lösungen sind weitaus fortschrittlicher als andere. Aber da ich versuche, hier ein Gleichgewicht zu finden, werde ich das einfacher angehen, als mich zu sehr mit Abstraktion, Vererbung, Schnittstellen und all dem zu beschäftigen.

Konzentration auf das, was wir haben

Konzentrieren wir uns zunächst auf einzelne Klassen und die Verantwortlichkeiten, die sie möglicherweise tragen. Zum Beispiel:

  • Ich denke, wir brauchen eine Klasse, die die Meta-Box darstellt. Dieser sollte für die Erstellung der Metabox zuständig sein.
  • Außerdem benötigen wir eine Klasse, die für die Anzeige des Inhalts der Metabox verantwortlich ist. Sie denken vielleicht, dass das Einfügen einer Funktion in die Klasse für die Metabox gut funktioniert. Es tut; Wenn Sie jedoch davon ausgehen möchten, dass jede Klasse eine einzige Verantwortung hat, können wir eine Klasse speziell für die Anzeige und speziell für die Metabox erstellen und dann die Anzeige während der Instanziierung in die Metabox einfügen. Wir werden später mehr darüber sprechen.

An dieser Stelle könnte unser Diagramm etwa so aussehen:

Aufschlüsselung der Meta-Box.

Als nächstes müssen wir die andere Funktionalität betrachten. Nämlich die Funktionalität zum Anzeigen der Ergebnisse in der Metabox und die Funktionalität zum Anzeigen der Ergebnisse, wenn keine vorhanden sind.

Um etwas in der Meta-Box anzuzeigen, müssen wir eine Möglichkeit haben, die Datenbank abzufragen, um die Ergebnisse abzurufen. Von dort aus müssen wir dann in der Lage sein, festzustellen, ob Ergebnisse vorhanden sind, und diese Ergebnisse dann in die Ansicht einzufügen.

Angesichts dieser Informationen hört es sich so an, als bräuchten wir eine Klasse zum Abfragen der Datenbank und dann eine Klasse, um eine Nachricht in die Anzeige der Metabox zu übertragen.

Vielleicht sieht eine Möglichkeit, den Unterricht zu organisieren, so aus:

Rapid Prototyping mit WordPress: Konzeptanalyse

Abfragen der Datenbank und Vorbereiten von Nachrichten.

Die endgültige Version des Diagramms mag etwas eng sein, aber wir sehen uns letztendlich so etwas an:

Rapid Prototyping mit WordPress: Konzeptanalyse

Die endgültige Organisation für unsere Klassen.

Zur Erklärung:

  • Der Post-Retriever fragt die Datenbank nach den letzten drei neusten Posts ab.
  • Der Postbote bestimmt, welche Nachricht in die Anzeige einzuspeisen ist.
  • Das Display zeigt die eingestellte Nachricht an.
  • Die Meta-Box rendert ihre Anzeige für den Webbrowser.

Also haben wir im Wesentlichen ein paar Funktionen genommen, die in WordPress eingebunden waren, und sie in Komponenten zerlegt, die miteinander kommunizieren können, von denen jede relativ einfach zu handhaben ist und nicht mehr als einen einzigen Job erledigt.

Konvertieren in Code

Nachdem wir nun eine Vorstellung davon haben, wie wir das vorherige Konzept in Code umwandeln können, werden wir uns in den nächsten Artikeln ansehen, wie das geht.

Beachten Sie, dass die Art und Weise, wie Sie sich entscheiden, Ihren Code zu implementieren oder Ihre Klassen zu entwerfen, möglicherweise etwas anders ist als das, was ich oben habe, und Sie möglicherweise Vorschläge haben, wie Sie das oben Gesagte besser organisieren können. Wenn das der Fall ist, hinterlassen Sie einen Kommentar.

Im nächsten Beitrag werden wir uns ansehen, wie wir dies in funktionalen Code umwandeln, und danach werden wir uns damit befassen, dies in richtige Namespaces und eine richtige Dateiorganisation zu organisieren.

Serienbeiträge

  1. Rapid Prototyping mit WordPress: Vom Konzept zum Plugin
  2. Rapid Prototyping mit WordPress: Konzeptanalyse
  3. Rapid Prototyping: Vom Prototyp zum Code, Teil 1
  4. Rapid Prototyping: Vom Prototyp zum Code, Teil 2
  5. Rapid Prototyping: Einführung in das automatische Laden

Aufnahmequelle: tommcfarlin.com

Diese Website verwendet Cookies, um Ihre Erfahrung zu verbessern. Wir gehen davon aus, dass Sie damit einverstanden sind, Sie können sich jedoch abmelden, wenn Sie möchten. Annehmen Weiterlesen