Boy: Was haltet ihr vom Zend Framework? Ich: Anti-Framework-Mensch

Hallo.

Man möge mich bitte von Zend-Framework überzeugen.
Meine Glaskugel alias Heise.de-Newsfeeds haben mir heute die Veröffentlichung von Version 1.9 mit vollständiger PHP 5.3 Unterstützung erzählt.

Warum ich gegen Frame-Works bin:

  • Es ist wie eine neue Sprache zu lernen

  • Ich inklude 1000 Zeilen die ich garnicht benötige, trotz eines schönen MVC-Patterns (in den meisten Frameworks -> PHP) - Traffic steigt an (was wahrsch. dank GZIP-Komprimierung nicht sooo viel ausmacht aber trotzdem)

  • Es ist nicht so performancereich wie selbsgestricktes(gutes)

  • Bei einem Bug oder eines Ausfalls bei einer plötzlichen Hochlast hast du ein riesen großes Problem. Es ist nicht dein Code - manipulier ein Framework und du hast wenn du Pech hast noch mehr Probleme als vorher.

jute tach noch, der boy

  1. Hi,

    Warum ich gegen Frame-Works bin:

    • Es ist wie eine neue Sprache zu lernen
    • Ich inklude 1000 Zeilen die ich garnicht benötige, trotz eines schönen MVC-Patterns (in den meisten Frameworks -> PHP) - Traffic steigt an (was wahrsch. dank GZIP-Komprimierung nicht sooo viel ausmacht aber trotzdem)
    • Es ist nicht so performancereich wie selbsgestricktes(gutes)
    • Bei einem Bug oder eines Ausfalls bei einer plötzlichen Hochlast hast du ein riesen großes Problem. Es ist nicht dein Code - manipulier ein Framework und du hast wenn du Pech hast noch mehr Probleme als vorher.

    du sprichst mir aus der Seele. Ob es nun um Webseiten oder um "richtige" Software geht: Umfangreiche Bibliotheken und/oder Frameworks setze ich auch nur ein, wenn ich auch einen nennenswerten Teil ihrer Funktionen nutze - also sehr selten. Mir geht es da wie dir: Meist braucht man nur einen winzigen Teilaspekt und hat mit der Installation und Konfiguration des Frameworks mehr Aufwand, als wenn man die zwei, drei Funktionen schnell selbst schreibt. Und dann kenne ich den Code auch genau und weiß, wie er funktioniert, was er genau kann oder auch nicht kann, und wo ich ggf. bei einer Erweiterung ansetzen muss.

    Ciao,
     Martin

    --
    F: Wer ist der Herrscher über Wasser, Wind und Wellen?
    A: Der Friseur.
    1. Hi!

      Umfangreiche Bibliotheken und/oder Frameworks setze ich auch nur ein, wenn ich auch einen nennenswerten Teil ihrer Funktionen nutze - also sehr selten. Mir geht es da wie dir: Meist braucht man nur einen winzigen Teilaspekt

      (Wieso "man"?)

      Dann bist du sicher nicht die Zielgruppe des Frameworks (besonders bei "winzig"). Die Vorteile ergeben sich meist erst dann richtig, wenn man es dessen Philosophie gemäß verwendet.

      und hat mit der Installation und Konfiguration des Frameworks mehr Aufwand, als wenn man die zwei, drei Funktionen schnell selbst schreibt.

      Sich einen Teilaspekt rauszupicken mag bei einigen lose gekoppelten Frameworks sinnvoll möglich sein. Dann sollte man es aber auch in Einzelteilen installieren können. Und es ist in dem Fall wohl eher kein Framework mehr sondern eine Art Einzelteile-Sammlung à la PEAR.

      Und dann kenne ich den Code auch genau und weiß, wie er funktioniert, was er genau kann oder auch nicht kann, und wo ich ggf. bei einer Erweiterung ansetzen muss.

      Oder du hast ihn mit nicht genügend Erfahrung und Weitsicht geschrieben und bist nun in einer Sackgasse angelangt. In einem Framework steckt aufgrund der Entwickler-Manpower nicht selten mehr Erfahrung und Wissen als man selbst hat.

      Boy: Solche Diskussionen sind (hier) nicht neu. Schon mal im Archiv geschaut?

      Lo!

  2. Hi!

    Man möge mich bitte von Zend-Framework überzeugen.

    Das muss du schon selbst tun. Erfahrung kann dir niemand abnehmen. Wissen und Vorurteile reichen nicht unbedingt immer.

    Warum ich gegen Frame-Works bin:

    • Es ist wie eine neue Sprache zu lernen

    Du kannst natürlich mit dem weiter machen was du schon kennst. Aber je weiter die Entwicklung fortschreitet, desto größer wird der Aufholaufwand. (Damit möchte ich jedoch nicht implizieren, dass man in Zukunft nur noch mit Frameworks arbeitet.)

    • Ich inklude 1000 Zeilen die ich garnicht benötige,

    Machst du nicht. Es gibt __autoload().

    trotz eines schönen MVC-Patterns (in den meisten Frameworks -> PHP) - Traffic steigt an (was wahrsch. dank GZIP-Komprimierung nicht sooo viel ausmacht aber trotzdem)

    Der Traffic hat nichts mit der Art der Codeerzeugung zu tun. Höchstens der Rechenaufwand.

    • Es ist nicht so performancereich wie selbsgestricktes(gutes)

    Kommt darauf an. Der Aufwand der Anwendungserstellung kann teurer sein als der Performanceverlust.

    • Bei einem Bug oder eines Ausfalls bei einer plötzlichen Hochlast hast du ein riesen großes Problem. Es ist nicht dein Code - manipulier ein Framework und du hast wenn du Pech hast noch mehr Probleme als vorher.

    Das kann dir bei deinem eigenen Framework / deiner eigenen Funktionsbibliothek auch passieren. Alles eine Frage, wie gut man sich auskennt.

    Lo!

  3. Hallo,

    Man möge mich bitte von Zend-Framework überzeugen.

    Kein Problem. Allein die Best-Practices sprechen schon für sich. Hol dir am besten das PDF-Manual, damit kommt man auch beim Suchen am besten zurecht. Registrierung vorausgesetzt

    Meine Glaskugel alias Heise.de-Newsfeeds haben mir heute die Veröffentlichung von Version 1.9 mit vollständiger PHP 5.3 Unterstützung erzählt.

    Warum ich gegen Frame-Works bin:

    • Es ist wie eine neue Sprache zu lernen

    Nein, es zeigt dir, was man mit PHP alles machen kann und wie man PHP voll aussschöpft. Ich würde soweit gehen zu sagen: wers Zend Framework nicht kapiert hat, beherrscht PHP nicht komplett.

    • Ich inklude 1000 Zeilen die ich garnicht benötige, trotz eines schönen MVC-Patterns (in den meisten Frameworks -> PHP) - Traffic steigt an (was wahrsch. dank GZIP-Komprimierung nicht sooo viel ausmacht aber trotzdem)

    • Es ist nicht so performancereich wie selbsgestricktes(gutes)

    Naja, wenn du meinst. Ich wäre mir nicht so sicher. Die Jungs da machen schon ziemlich gutes. Vier Leute glaub ich, von Zend dafür abgestellt, seit zwei Jahren, im Kontakt mit einer stark wachsenden Community, alle Vorbilder im Blick: Ruby on Rails, Django, cake, symfony

    • Bei einem Bug oder eines Ausfalls bei einer plötzlichen Hochlast hast du ein riesen großes Problem. Es ist nicht dein Code - manipulier ein Framework und du hast wenn du Pech hast noch mehr Probleme als vorher.

    Nun, sieh es von Auftraggeberseite: Ich kriege mit dem FW 1000 Seiten fast perfekter Dokumentation geliefert sowie einen festen Rahmen, nach welchen Konventionen die Dinge gehändelt werden sollten. ZF ist zudem frei, an allen Ecken und Enden selbst zu konfigurieren, wenn man das möchte.

    Gruß

    jobo

    1. Hallo,

      "Rückblickend haben wir durch den konsequenten Einsatz des Zend Frameworks und die damit verbundenen durchgehend objektorientierte Entwicklung, gerade bei der Arbeit im Team eine deutliche Verbesserung in der Geschwindigkeit und der Qualität der Entwicklung zu spüren bekommen. Bereits nach kurzer Eingewöhnungszeit in das Zend Framework kommt man zu sehr ansehnlichen Ergebnissen. Im weiteren Verlauf der Arbeit tritt dann unweigerlich der Punkt ein, an dem man es nicht mehr missen möchte. Zum Start mit dem Framework und dem Verständnis des Aufbaus der Model-, View-, Controller-Struktur, sei nochmals auf die Mini-Applikation auf der Heft-CD verwiesen. Sie kann aber auch von unserer Website [3] heruntergeladen werden.

      Hat man ersten Gehversuche hinter sich, kann man sich getrost auf die eigentliche Arbeit, die Entwicklung der Applikation, konzentrieren
      und sich ansonsten aus dem reichhaltigen Fundus des Frameworks bedienen. Den Umstieg auf die PostgreSQL können wir im Nachhinein nur empfehlen. Hierin findet man ein ausgezeichnetes, stabiles und überraschend einfach zu bedienendes Datenbanksystem."

      http://www.e-unique.com/fileadmin/downloads/eUNIQUE_Zend_Framework.pdf

      Gruß

      jobo

    2. Hallo,

      Kein Problem. Allein die Best-Practices sprechen schon für sich.

      http://framework.zend.com/manual/en/coding-standard.html

      Gruß

      jobo

  4. Hallo,
    Ich denke, ein (guter) Entwickler sollte sich nicht zum 100.000sten Mal damit befassen müssen, wie er/sie eine Datenbank-Verbindung aufbaut oder einen Caching-Mechanismus bastelt (um nur Beispiele zu nennen).

    Es gibt wichtigere Themen - kreative Anwendungen, Performance, Usability, effiziente Algorithmen, flexible und wartbare Datenmodelle,sinnvolle Sicherheitskonzepte....DA gehört das Know-How hin!

    -> Insofern begrüße ich prinzipiell jedes Tool/Framework, welches mir die lästigen Jobs abnimmt sodass ich den Kopf frei habe für die wirklich kreativen Aufgbaben (das sind nämlich auch die, die am meisten Spass machen :)).

    Allerdings gebe ich Dir auch teilweise recht:
    Je höher entwickelt Programmnierkonzepte (Programmiersprachen/Frameworks/Tools/...) sind, desto mehr lässt man sich dazu verleiten, sich nicht mehr mit dem "dahiner" zu beschäftigen und damit zu ignorieren, dass auch Framework-Programmierer mit Wasser kochen müssen.
    "Das Framework wirds schon richten", "das ist ohnehin so performant" usw.

    Das kann fatale Folgen haben, wenn man nicht begreift, was das Framework im Hintergrund EIGENTLICH tut. (Eine Aussage, die ich tatsächlich mal an den Kopf geworfen bekommen habe: "Von dem Code-Block KANN der Performance-Verlust gar nicht kommen, weil der ist ja nur zwei Zeilen lang")

    Darüber hinaus entdecken oft insbesondere Anfänger in einem Framework ein schickes Feature und halten dann automatische das ganze Ding für die geilste Erfindung seit geschnitten Brot, bloß weil sie andere/vergleichbare und ggf. sogar bessere Techniken nie kennengelernt haben - und wenn dann das Lieblings-Framework plötzlich nicht (mehr) einsetzbar ist (weil der Kunde es nicht will/der Server es nicht hergibt/die Software einen gravierenden Bug hat/...) ist das Geheule groß.

    => Meine Meinung also:
    1.) PHP (oder jede andere Programmiersprache) lernen/verstehen/begreifen heisst, sich auch mit den "Low-Level"-Aufgaben auseinander zusetzen
    2.) Wenn man diese erst einmal bewältigen kann, kann man sich getrost ein Framework suchen, welches diesen Kram von selbst erledigt....
    3.) ... so lange man Prinzipiell im Blick behält, WAS da eigentlich passiert.

    1. Hallo,

      3.) ... so lange man Prinzipiell im Blick behält, WAS da eigentlich passiert.

      Ganz prima das "WAS", da hab ich bisher am meisten gelernt, und bin immer noch nicht fertig mit ZF.

      Gruß

      jobo

    2. Hi,

      -> Insofern begrüße ich prinzipiell jedes Tool/Framework, welches mir die lästigen Jobs abnimmt sodass ich den Kopf frei habe für die wirklich kreativen Aufgbaben (das sind nämlich auch die, die am meisten Spass machen :)).

      das ist natürlich Geschmackssache. Mir macht vor allem der Fitzelkram im Kleinen Spaß - eben das, was die meisten anderen lieber fix und fertig einsetzen, ohne noch darüber nachdenken zu müssen. Für mich ist eher das Gesamtkonzept der Applikation ein lästiges Übel, was halt auch erledigt werden muss.

      1.) PHP (oder jede andere Programmiersprache) lernen/verstehen/begreifen heisst, sich auch mit den "Low-Level"-Aufgaben auseinander zusetzen

      Unbedingt. Man sollte auch diese Dinge mal gemacht, mal verstanden haben, auch wenn man sie dann nicht mehr regelmäßig selbst macht.

      Ciao,
       Martin

      --
      Die letzten Worte der Challenger-Crew:
      Lasst doch mal die Frau ans Steuer!