Warum sollte ich anfangen, objektorientierten Code in PHP zu schreiben?

8

Ich benutze seit einiger Zeit reguläres PHP. Mein formales Code-Training ist null. Was ich auch gelernt habe, habe ich hier auf der PHP-Dokumentationsseite, der MySQL-Dokumentation usw. gefunden.

Ich schreibe PHP von Grund auf. Ich benutze Funktionen für Aufgaben, die wieder auftreten, ich wende MVC an, um mehr wartbaren Code zu schreiben, und ich habe kürzlich eine nette kleine Bibliothek mit einigen meiner Funktionen geschrieben, damit ich in zukünftigen Projekten Zeit sparen kann. Lange Rede, kurzer Sinn, ohne irgendeine Art von Guru zu sein, habe ich eine anständige Beziehung mit PHP, und bis jetzt scheint es Dinge für mich zu erledigen.

Meine Fragen sind folgende: Warum sollte ich anfangen, objektorientierten Code in PHP zu schreiben? Wie wird es mein Programmleben besser machen und warum ist es besser als die traditionelle Art, Dinge zu tun?

    
ppp 26.02.2012, 09:40
quelle

5 Antworten

7

OOP wurde entwickelt, um Programmiersprachen dem realen Leben ähnlicher zu machen.

Was heißt das?

Wir leben in einer Welt von Objekten. Du bist ein Objekt ( Person ), du lebst in einem Objekt House , das House Objekt (wie jedes andere House Objekt) hat eine House::$address und House::$number , dein Haus enthält wahrscheinlich andere Objekte wie LivingRoom und Kitchen . Der Kitchen kann Oven und Stove und Refrigerator enthalten, die alle Erweiterungen des KitchenAppliance -Objekts sind.

Die OOP-Programmierung nimmt diesen Ansatz und integriert ihn in die Programmierwelt.

Wie hilft es mir?

Nun, es gibt mehrere Dinge:

  • Es macht Ihren Code wartbarer. Anstatt Ihr Programm in Aufgaben (Funktionen) zu unterteilen, unterteilen Sie es in Objekte , wenn Sie eine Datenbankverbindung als Objekt betrachten (dh es können mehrere Datenbankverbindungen bestehen) , sie teilen Methoden und Eigenschaften , aber jeder ist auf einer anderen Instanz vorgefertigt), es macht es einfacher zu verstehen und zu pflegen.
  • Es macht Ihren Code lesbarer. Sie definieren ein Objekt mit der Deklaration class und rufen es dann mit dem Schlüsselwort new ClassName() auf.
  • Es ermöglicht Erweiterbarkeit und Flexibilität. Genau wie KitchenAppliance in Oven oder Stove erweitert werden kann, können auch Ihre Objekte und Klassen.

Zusammenfassung

OOP-Programmierung bietet viele Vorteile. Es erfordert eine etwas andere Art zu denken, aber letztendlich lohnt es sich.

    
Madara Uchiha 26.02.2012, 09:50
quelle
3

Sie haben viele umfassende Antworten erhalten, deshalb werde ich ein Argument verwenden: Designmuster. ( Ссылка ).

Sie können Töne von Lösungen für allgemeine Probleme finden, die Ihre Zeit sparen und die Qualität Ihres Codes verbessern können.

Einige Musterbeispiele:

  • Strategie-Muster ( Ссылка ) - für die Verwendung verschiedener Algorithmen / Lösungen in der Klasse, ohne sie zu ändern
  • Beobachtermuster ( Ссылка ) - Sie können verschiedene Aktionen aufrufen (und sie während der Ausführung registrieren) - wenn der Status des Objekts ist Änderungen.
  • Decorator-Muster ( Ссылка ) - Sie können Ihr Objekt dynamisch erweitern und neue Objekte auf die gleiche Weise wie bisher verwenden.

Franky gesprochen, wenn Sie OOP besser verstehen wollen, müssen Sie:

  1. Lernen oder verstehen Sie gängige Entwurfsmuster.
  2. Beginnen Sie mit Komponententests, Sie werden feststellen, dass Mangel an Abhängigkeitsinjektion echte Schmerzen in schlechter Architektur sein kann.
  3. lerne und verstehe OOP-Prinzipien, wie SOLID Ссылка .

Ohne dies werden Sie Funktionen verwenden, die in Klassen eingekapselt sind, wie im Namespace, nicht in OOP.

    
Slawek 26.02.2012 11:11
quelle
3

Sie können Ihren Code ohne OOP schreiben und versuchen, Designs / Patterns wie MVC zu implementieren, ohne nur zu verwenden ein einzelnes Objekt.

Ich möchte nicht antworten warum in OOP programmieren. Dies können Sie z.B. zu dieser Stack Overflow-Frage .

Ich denke, Sie möchten wissen, wann und warum Sie mit Ihrem Codierungsverhalten scheitern würden:

  • Das wäre in dem Moment, in dem du versuchst mit einer anderen Person zusammen zu arbeiten . Der andere Programmierer würde Ihren Code niemals lesbar finden . Er wird lange brauchen, bis er versteht, wie Ihre Software funktioniert.
  • Ich denke, es ist schwierig, Aufgaben in Ihrem Code für Teamarbeit zu trennen. Wie sind Ihre Dateien getrennt und wie ist die Namenskonvention? Sie müssen dies selbst lösen und nicht jedes bekannte Muster wiederverwenden.
  • Was machst du mit Sachen von Drittanbietern? Wie integrierst du sie? Ich kenne keine verwendbare Bibliothek, ohne ein OOP-Schema zu verwenden ...

Es gibt viele weitere Probleme, die sicherlich gelöst werden können, aber jedes Mal, wenn Sie die Möglichkeit verlieren, dass andere Ihren Code verstehen und ihn in anderen Programmen wiederverwenden können ...

    
Neysor 26.02.2012 10:06
quelle
2

Ein Wort: Zusammenhalt .

Wenn Sie mit der Entwicklung von Software mit Objekten beginnen (besonders wenn diese Objekte Dependency Injection verwenden ), finden Sie, dass die allgemeine Funktionalität in ihre eigenen spezialisierten Klassen hineingezogen wird, die wiederverwendet werden. Dies macht die Wartung und Verbesserung der Software VIEL einfacher und führt zu qualitativ hochwertigerer Software.

Beispiel:

Viele Anwendungen verwenden Sessions zum Speichern aller möglichen Dinge. Wenn alle Sitzungsdaten von einer spezialisierten Sitzungsmanagerklasse verwaltet werden, wird der gesamte Code, der für die Sitzung zuständig ist, an einer Stelle gespeichert. Wenn Sie die Art ändern möchten, in der Ihre Anwendung Sitzungsdaten verwendet (vielleicht, um sie sicherer oder effizienter zu machen), müssen Sie den Code nur an einer Stelle ändern.

Ich habe vor drei Monaten den Sprung zu OOP PHP gemacht und es ist eines der besten Dinge, die ich gemacht habe.

Ich begann mit PHP Objektorientierte Lösungen und haben gerade Reale Lösungen für die Entwicklung von qualitativ hochwertigen PHP-Frameworks und Anwendungen . Beide Bücher haben mir sehr geholfen und ich empfehle sie sehr.

Die Lernkurve ist ziemlich hoch. Aber ich garantiere Ihnen, Sie werden froh sein, dass Sie sich an OOP gewandt haben.

    
Lewis Bassett 26.02.2012 10:06
quelle
0

Mit OO können Sie Anwendungen viel schneller und sauberer entwickeln. Sie könnten Ihre vorhandenen Klassen problemlos wiederverwenden, indem Sie sie erweitern (indem Sie Ihre Codebasis reduzieren).

Mit OO-Design müssen Sie nur mit kleinen Stücken von Codes zu jeder Zeit umgehen, nicht eine Reihe von Funktionen in einer Datei mit mehr als 3000 Zeilen Code. Sie sollten sich auch um die SOLID-Richtlinien .

    
Peter Kiss 26.02.2012 09:49
quelle

Tags und Links