Ankündigung

Einklappen
Keine Ankündigung bisher.

OOP-Standard ?

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • OOP-Standard ?

    ich hab ja hier schon einige Diskussionen zu OOP interessiert verfolgt.

    Wo es bei prozeduraler Programmierung einen Quasi-Standard gibt wie man es "richtig" macht
    (EVA-Prinzip, zentral über eine index, include nach GET-/POST-Paramtern) scheint es das bei OOP nicht zu geben.

    Jeder Profi/Experte hat ne andere Meinung was OOP ist, was gut und was schlecht, was sinnvoll oder unsinnig ist.

    Ganz zu schweigen von den Dikussionen die ausbrechen wenn es um die konkrete Umsetzung von Projekten geht.

    Da wird dann weitergestritten was denn nun eigentlich MVC ist, ob man dies oder jenes in den Controller oder in das Model packt.

    Oder ob MVC überhaupt das richtige Design ist, ob man nicht lieber "Agenten" oder sonst irgendwas verwendet.

    Es werden dann schon mal echos in Methoden gepackt und das EVA-Prinzip über Bord geworfen.

    Und dann immer wieder die Argumentation "Bei Java ist das aber ..."

    Ja, um Himmels Willen: gibt es denn keine klare Linie ?

    Kein Land in Sicht ?

    Ich hab den Thread eröffnet wegen diesen Beiträgen:
    http://www.php.de/software-design/66...ion-wie-2.html
    Eine if-else-Abfrage nimmt, ordentlich geschrieben eine Menge Platz weg. Platzsparend geht es mit einem ternären Operator.


  • #2
    Hmm, OOP ist ja nun erstmal mehr eine Syntaxausprägung als ein Paradigma. Allerdings gibt es schon Ansätze, wie mit OOP sinnvoll zu arbeiten ist.
    - MVC hast Du ja schon genannt, wobei das mindestens genauso ein Paradigma für Anwendungsentwicklung an sich und OOP hier nur Mittel zum Zweck ist.
    - Lose Kopplung ist ein sehr sinnvoller Ansatz, zumal OOP mit seinen beständigen Datentypen hier durchaus gute Voraussetzungen bietet
    - Damit verbunden Pattern wie Observer, desweiteren allgemeiner Facade, Decorators, Factories ..
    - weiter ausgeholt dann domain-specific languages und Codegenerierung, ganz eng gefasst die Kapselung von Daten über getter/setter-Interfaces.
    - Ein allgemein sehr brauchbares Prinzip ist die Programmierung gegen Interfaces, optional unter Verwendung von Type Hinting in Methoden.

    Wie man sieht, kann man hier verschiedenste Ebenen beleuchten. EVA ist ein sehr sehr simples Prinzip, weshalb es wenig Spielraum für Interpretationen bietet. OOP wird dagegen oft für komplexe Applikationsentwicklung eingesetzt, wo oft viele Wege nach Rom führen und der Einsatz bestimmter Techniken eher Strategieentscheidungen als best practices nahekommmt.
    --

    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


    --

    Kommentar


    • #3
      Zitat von Koala Beitrag anzeigen
      Wo es bei prozeduraler Programmierung einen Quasi-Standard gibt wie man es "richtig" macht
      (EVA-Prinzip, zentral über eine index, include nach GET-/POST-Paramtern) scheint es das bei OOP nicht zu geben.
      Also ich denke auch, hier werden verschiedene Begrifflichkeiten vermischt.

      Wenn du von "wie man es richtig macht" schreibst, meinst du eigentlich ein Design-Pattern, also einem erprobten Architekturmuster in der Softwareentwicklung.

      In deinem Beispiel spricht man vom Front-Controller-Pattern, also einem zentralen Einstiegspunkt in die Webapplikation der auf entsprechende Logik routet.
      Im einfachsten Fall geschieht das prozedural durch simple PHP-File-Includes aufgrund der Request-Parameter. Im OOP-Ansatz wird der Request lediglich auf Klassenmethoden gemappt, insofern erkenne ich da jetzt nicht den großen Unterschied, abgesehen vom Programmierparadigma.

      Kommentar


      • #4
        wo oft viele Wege nach Rom führen und der Einsatz bestimmter Techniken eher Strategieentscheidungen als best practices nahekommmt
        Im OOP-Ansatz wird der Request lediglich auf Klassenmethoden gemappt, insofern erkenne ich da jetzt nicht den großen Unterschied, abgesehen vom Programmierparadigma.
        Schon klar - mir geht es darum daß es offensichtlich keine Vorgehensweise gibt die bei allen professionellen OOP-Programmierern als "richtiig" angesehen wird.
        Selbst MVC wird nicht von allen als Quasistandard akzeptiert.

        Es sieht so aus wie wenn jeder unter OOP was anderes versteht und auch MVC unterschiedlich auslegt
        wenn er es denn überhaupt anwendet.

        Schau Dir mal verschiedene PHP/OOP-Projekte an wie das ZendFramework, CakePHP oder das CMS TypoLight oder
        Magento.

        Jeder kocht sein eigenes Süppchen und bringt seine eigene Philosophie mit und rümpft über das Design der anderen Projekte die Nase.

        Na ja - hat vielleicht auch einen Vorteil:
        wenn es jeder machen kann wie er will, dann kann man auch nichts falsch machen.
        Eine if-else-Abfrage nimmt, ordentlich geschrieben eine Menge Platz weg. Platzsparend geht es mit einem ternären Operator.

        Kommentar


        • #5
          Naja, OOP ist eben ein großes Thema mit vielen Möglichkeiten. Und grade in einer Sprache wie PHP wo man Performance etc erstmal hintenanstellt, kann es jeder Entwickler in bestimmten Grenzen machen wie ers am besten kennt. Ist wie in der Natur, ein Wurm hat wenig mit einem Adler gemein. Aber sie kommen beide ans Ziel

          Kommentar


          • #6
            Und grade in einer Sprache wie PHP wo man Performance etc erstmal hintenanstellt
            Ich kennn keinen Webmaster dem die Performance seiner Website egal ist, bzw. Sie erst mal hintenanstellt.
            Und nicht jeder will wegen ner kleinen Website einen Server mieten.
            Nicht umsonst gibt es zig Threads zum Thema PHP/OOP/Performance.

            Wo ist denn der Zusammenhang zwischen Performance und fehlendem OOP-Standard bei OOP ?

            Das eine hat doch nichts mit dem andern zu tun ?
            Eine if-else-Abfrage nimmt, ordentlich geschrieben eine Menge Platz weg. Platzsparend geht es mit einem ternären Operator.

            Kommentar


            • #7
              Ich meinte damit sowas wie die Spieleprogrammierung mit C++, da werden durchaus mal OOP Regeln/Grundsätze missachtet um die letzten paar % Performance rauszukitzeln. Das ist einem bei Webseiten meist egal, Otto Normalverbraucher interessiert es nicht ob die Website in 12 oder 13 ms da ist und ich bezweifle, dass riesen Webseiten wie Facebook Performance über alles stellen (und dann OOP Prinzipien ignorieren). Facebook ist sogar so weit gegangen PHP zu behalten wegen der leichten Einarbeitung und schnellen Entwicklung und das per HipHop zu beschleunigen.

              Was ich kurz sagen will: Wenn Performance nicht das allererste Problem ist (und die Tendenz hat PHP), dann ist es meist schnelle Entwicklung und einfaches anlernen neuer Leute (bzw selber einfach damit klarzukommen). Und dann kommen halt die persönlichen Meinungen der Entwickler vor der besten Art es der Maschine beizubringen -> viele unterschiedliche "Standards".

              Kommentar

              Lädt...
              X