Frameworks (allgemeine Fragen)

 


Rusty
Veteran

22.11.08
16:45 Uhr
Hallo Entwicklungshelfer,

seit einiger Zeit sind sogenannte Frameworks offenbar nicht mehr aus der Webentwicklung wegzudenken. Die Kategorie lässt vermuten, dass es in erster Linie um die allgegenwärtigen JavaScript-Frameworks geht, aber auch zu Cake und Yaml würden mich Meinungen interessieren. Ich hab mich bislang nie an sowas rangetraut, weil ich erstens lieber eigenen Code bastle und zweitens der Meinung bin, dass man damit viel zu schwere Geschütze auffährt, so für den Hausgebrauch.

Wie dem auch sei: welche Frameworks nutzt Ihr? Wie sehr erleichtern sie Euren Workflow und wieviel Zeit und Mühen hat es gekostet, Euch einzuarbeiten?

Ist unter jQuery, script.aculo.us, mooTools und Prototype irgendeines irgendeinem anderen vorzuziehen?


Fragen über Fragen … Antworten bitte unten anfügen.

Herzlichen Dank
Link zu diesem Beitrag in die Zwischenablage kopieren
kasn
Gast

22.11.08
17:12 Uhr
Editiert: 22.11.08, 17:19 Uhr
Ich fuer meinen Teil möchte nicht mehr auf ein Framework verzichten, weder fuer PHP noch fuer Javascript..

Nach einer gewissen Einarbeitungszeit in die Eigenheiten der Frameworks ist eine deutliche Produktivitätssteigerung zu sehen, und vor allem werden die Anwendungen robuster da nicht jeder Entwickler wieder das Rad neu erfindet sondern bereits getestete und bewährte Funktionen verwenden. Egal welche noch so komplexe Dojo Funktion ich verwende ich kann sicher gehen, dass es auf den Major Browsern funktioniert. Das ist ein Arbeits- und vor allem Qualitätssicherungsaufwand den man als Entwickler/Firma nahe nicht stemmen kann.

Wirkliche „Schwere Geschütze“ fährt man aber auch nicht auf, jquery und co werden komprimiert angeboten und fallen was die Groesse angeht in modernen Webseiten kaum noch ins Gewicht. Bei Dojo laedt man eh nur nach was man braucht. Dadurch, dass alle Frameworks inzwischen von google oder AOL ueber deren CDNs vertrieben werden und das immer haeufiger genutzt wird haben viele User auch die entsprechenden Bibliotheken schon im lokalen Cache.

Aber zur eigentlichen Frage:

Ich habe mit Prototype angefangen, weil irgendein ein Script das ich damals verwenden wollte dieses vorausgesetzt hat. Dann hab ich ein wenig in der Doku gelesen und angefangen immer mehr und mehr von den Funktionen zu verwenden. Es gab keinen Punkt an dem ich sagte, „so, ab jetzt arbeite ich mich Prototype“. Über meinen damaligen Arbeitgeber kam ich dann in den Genuss Dojo zu lernen. Hier ist durchaus eine Einstiegshürde vorhanden, da sich Dojo doch schon anders programmiert als „normales“ Javascript. War eine ziemlich anstrengende Zeit bis Dojo und ich Freunde wurden, inzwischen sind wir aber echt dicke. Allerdings hat Dojo nicht ganz umsonst den Ruf fuer viele Dinge vollkommen oversized zu sein. Die Tatsache, dass es sehr modular ist relativiert das aber wieder.

Um ein wenig Dynamik in eine Webanwendung zu bringen würde ich aber weiterhin zu Prototype greifen oder mir jQuery aneignen, da Prototype den Ruf hat langsam zu sein und es irgendwie nicht mehr weiterentwickelt wird.

Den Workflow erleichtern Frameworks dadurch, dass ich mich nicht um „Infrastruktur“ kuemmern muss, sondern direkt an meinen Aufgaben arbeiten kann.

Ja. Hab ich irgendwas vergessen? brain
Link zu diesem Beitrag in die Zwischenablage kopieren
Dominic
Moderator

22.11.08
17:37 Uhr
Editiert: 22.11.08, 17:50 Uhr
Rusty schrieb am 22.11.08, 16:45 Uhr:

Ich hab mich bislang nie an sowas rangetraut, weil ich erstens lieber eigenen Code bastle und zweitens der Meinung bin, dass man damit viel zu schwere Geschütze auffährt, so für den Hausgebrauch.

diese herangehensweise ist meiner meinung nach im grunde eine aktive zeitverschwendung.
wenn du nicht was irre abgefahrenes machen willst, ist die wahrscheinlichkeit einfach mal sehr groß, dass jemand anderes dein vorhaben schonmal, und wenn du nicht der supercoder bist, auch deutlich besser (übersichtlicher, performanter, sicherer) gemacht und ggf. das ergebnis auch veröffentlicht hat.

ich würde heute keine website mehr ohne ein framework anfangen (symfony ist für mich die wahl als php-framework). es gibt im grunde kaum eine seite, die zu klein wäre, als dass mir ein framework da keinen zeitgewinn bringen würde (von der anfänglichen einarbeitung und 1-seiten-statisch-baustellen-seiten-homepage mal abgesehen) und je größer die seite, desto mehr bringt ein framework natürlich im vergleich zum handgestrickten.
framework heißt ja auch garnicht, dass man nichts mehr zu tun hat. es vereinheitlicht, vereinfacht nur bestimmt ständig wiederkehrende arbeitsschritte. user-verwaltung, benutzerrechte, login, password-recovery, sessionverwaltung, cookie-verwaltung, file-upload, emails, caching, emails versenden sind im grunde totlangweilige sachen, bei denen es einfach keinen sinn macht, das jedes mal aufs neue zu erfinden.

mit symfony bau ich dir in 15 minuten ein funktionierendes blog (kein demo-scheiß) mit pagination, kommentaren, administrationsbereich und... was schafft man denn in reinem php in 15 minuten?

bezieht sich jetzt alles mehr auf php-frameworks, da du z.b. cake angesprochen hast...
Link zu diesem Beitrag in die Zwischenablage kopieren
polarity
Gast

22.11.08
17:37 Uhr
Hey, bin über Twitter reingestolpert.

Ich benutze für PHP „CodeIgniter“ und für Javascript „jQuery“. Von CSS und HTML Frameworks bin ich kein wirklicher Freund. Für den Einsatz sollte man viele Dinge wie Sicherheit, Arbeitsaufwand, Erweiterbarkeit, Performance usw berücksichtigen. Das kommt natürlich auch auf die größe des Projekts an.

jQuery () finde ich Ideal für die meisten Aufgaben. Größere Webanwendungen würde ich aber glaube ich nicht damit programmieren. Es ist leicht verständlich und man hat nach paar Stunden eigentlich den Dreh raus und die Funktionen sind überschaubar und sehr nützlich. Formulare checke, Bilder vergrößern, Texte ein und ausblenden, Tabs usw. für alles gibts ein Plugin oder ist schnell selbst gecoded.

CodeIgniter verwende ich meist für PHP Anwendungen die mind. eines User Managements bedürfen. Gästebücher oder Sachen in dieser Größenordnung programmier ich weiterhin zu Fuß. PHP ist eigentlich so konzipiert worden das es kleine Aufgaben zwischen HTML Fragmenten übernimmt. Die Anforderungen sind natürlich mit der Zeit gestiegen und OOP hat Einzug gehalten, das bringt natürlich auch Geschwindigkeitseinbußen mit sich.

Ihre Vorteile spielen PHP Frameworks erst bei größeren Projekten aus, da hier meist auf MVC und OOP gesetzt wird. Die meisten Tasks sind durch funktionen abgedeckt. Man brauch ja nicht das Rad neu erfinden. Sicherheit ist hier auch ein großes Thema. Meist sind von einer Community geprüfte Funktionen sicherer als selbst programmiert und getestetes. Ich hab mich für Code Igniter entschieden, weil es MVC unterstützt, sauber und gut dokumentiert ist, es nützliche Plugins gibt (user verwaltung) und von einem PHP Guru aufgrund der Performance empfohlen wurde. Hier auch n Test.
CodeIgniter. Just as expected PHP-frameworks have appeared the slowest. But CodeIgniter is to recommend those who wish to program only on PHP, and also to have handy system.

Symfony has got last place. It is very complicated and slow framework. A difference with Django is up to 35 (!!!) times.


CSS Frameworks mag ich nicht, weil man meist das komplette Framework laden muß und CSS eigentlich wirklich sehr simpel ist und man den meisten Fehlern mit einer „reset.css“ und getrennten sheets für IE vorbeugen kann. Und der IE macht doch IMMER Probleme. ;)
Link zu diesem Beitrag in die Zwischenablage kopieren
Jonis
Veteran

22.11.08
17:41 Uhr
Editiert: 22.11.08, 17:51 Uhr
Gute Frage, ich habe mich am Anfang auch relative schwer getan, ist aber auch wirklich nicht einfach das richtige Framework für die eigenen Ansprüche zu finden.

Bei JavaScript greife ich - im Gegensatz zu PHP - gerne zu eben jenem Framework, mich hat früher die Inkompatibilität der Browser zueinander (oder eher die fehlende Unterstützung der Standards) dazu gebracht.

Ich denke man kann gerade die Frameworks in 2 Gruppen einteilen:

Schwerpunkt Effekte z.B.


Schwerpunkt Daten z.B.
  • JQuery () (außergewöhnlichere Grafikeffekte in Verbindung mit JQuery UI und Plugins)
  • Dojo
  • YUI (The Yahoo! User Interface Library)


Es gibt sicher noch einige mehr (und die Einteilung würde bei anderen vielleicht auch anders aussehen).

Ich persönlich habe mit Prototype und Script.aculo.us angefangen, würde aber für den Einstieg eher JQuery empfehlen. Der Syntax ist einfacher und es wird einem einiges Abgenommen. Achja, der für mich wichtigste Punkt und absolut für JQuery sprechende Fakt: durch den Aufbau des Framworks ist es sehr einfach zugängliche Seiten zu bauen (Stichwort „Accessibility“ JavaScript Fallback). Bei Frameworks wie Dojo oder YUI sind für 90% der Fälle oversized (würde ich mal ganz kühn behaupten).

Soviel erstmal von meiner Seite dazu )
Link zu diesem Beitrag in die Zwischenablage kopieren
Rusty
Veteran

22.11.08
17:49 Uhr
Danke, das war alles schon mal sehr aufschlussreich. Grundsätzlich wär also jQuery einbinden und nach und nach drauf zugreifen eine gute Methode um warm zu werden?

Wie kann ich mir PHP-Frameworks vorstellen? Muss man sich da eine ganz neue Syntax aneignen oder werden nur einige Klassen/Funktionen bereitgestellt?

Ich sollte vielleicht mal erwähnen, dass ich so ein typischer Sonntagscoder bin, was PHP anbelangt krieg ich alles hin, geh dabei aber sicher nicht immer die effizientesten oder performantesten Wege, was natürlich zu 100 Prozent für ein Framework spricht.
Link zu diesem Beitrag in die Zwischenablage kopieren
Dominic
Moderator

22.11.08
18:13 Uhr
Rusty schrieb am 22.11.08, 17:49 Uhr:

Muss man sich da eine ganz neue Syntax aneignen oder werden nur einige Klassen/Funktionen bereitgestellt?

im grunde geben solche frameworks bedingt durch ihre ordnerstruktur und implementierung des mvc-pattern ein bisschen struktur vor, die einen etwas lenkt und grob sagt, wo welcher code hingehört und versuchen mehr oder weniger durch bereitgestellte klassen/module bestimmte aufgaben zu vereinfachen / einem etwas abzunehmen.

was sich da am stil ändert, kommt drauf an, wie du vorher gecodet hast, die syntax ist aber ganz normales php, halt mit zusätzlichen variablen und funktionen...

symfony z.b. ist extrem objektorientiert, und benutzt viele design-patterns und best practices (mvc, orm). wenn man da manches schon von woanders her kennt, ist die einarbeitung garnicht so schwer, aber ich würde es schon als ein bisschen anspruchsvoller, vielleicht nicht für jeden hobby-coder geeignet, einordnen.

cake im vergleich ist für meine wünsche viel zu wenig objektorientiert. aber es gibt doch viele leute, die es zufrieden benutzen.
du hast im grunde ein paar klassen, die dein model (siehe mvc) bilden, aber davon werden keine objekte instanziiert, sondern alles wird über arrays von arrays gemacht.
das ist für meinen geschmack zu wenig php5/oo/modernes framework, als sehr ähnlich zu dem selbstgestrickten zeug, das ich vor vielleicht 5 jahren noch gemacht habe, weswegen ich mit reinem php aber irgendwann sehr unzufrieden wurde.

ich hatte da mal einen thread speziell als fragestellung zu cake vs symfony gestartet, den werde ich demnächst mal aktualisieren, da ich in letzter zeit auch viel mit cake zu tun hatte.

aber wie angedeutet, ich hab da glaube teils sehr genaue vorstellungen und ansprüche, da ich mit einem framework teils monatelang an einer applikation arbeiten will, und möglichst wenig drüber aufregen ) ... und schon garnicht den anspruch eine allgemeingültige antwort oder empfehlung zu geben.
Link zu diesem Beitrag in die Zwischenablage kopieren
polarity
Gast

22.11.08
18:16 Uhr
Wie kann ich mir PHP-Frameworks vorstellen? Muss man sich da eine ganz neue Syntax aneignen oder werden nur einige Klassen/Funktionen bereitgestellt?

Die meisten (oder viele neue) PHP Frameworks setzen auf das MVC Design Pattern (Model, View, Controller). Objektorientiert werden hier die einzelnen Schichten als Klassen abstrahiert. Das is sicherlich nicht das was Du bisher gemacht hast, aber der große vorteil liegt hier in der erweiterbarkeit der Anwendung. Hier wird strikt in Ausgabe, Verarbeitung und Daten getrennt.

Mit anderen Worten bekommst Du mit dem Framework nicht nur Klassen und Funktionen sondern auch eine Art Struktur für deine Anwendung bereitgestellt. Schluss mit Querbeet programmieren.

Die Model Klasse stellt alle Funktionen Daten aus der Datenbank zu holen und zu schreiben zur Verfügung. Der Controller verarbeitet nur Daten und die View Klasse ist eine Art Template System die nur Die Ausgabe als Aufgabe hat. Am besten mal Video ankieken.
Link zu diesem Beitrag in die Zwischenablage kopieren
stese
Moderator

22.11.08
18:55 Uhr
Wie kann ich mir PHP-Frameworks vorstellen? Muss man sich da eine ganz neue Syntax aneignen oder werden nur einige Klassen/Funktionen bereitgestellt?

da hier ja schon viel gsagt wurde ist vll. anzumerken dass z.B. das Zend Framework durchaus auch als reine Klassensammlung verwendet werden kann, du bei bedarf aber auch auf die mächtigen mvc patterns zurückgreifen kannst. für mich hat zend eher so nen stellenwert wie das PEAR paket. bei symphony z.b. arbeitest du immer in einem mvc pattern - sprich die initialimplementation gibt dir sehr viele werkzeuge zur hand, die es recht schnell machen funktonierende websites aufzusetzen - es werden halt viele oft gebrauchte sachen einfach schon mitgeliefert. durchaus schön, aber miunter oversized - ich setze (weil auch schon seit den ersten alpha versionen sehr angetan) auf das zend framework, was extrem mächtig ist (und vor allem gut dokumentiert im vergleich zu anderen sachen, siehe dojo hehe), wenn man es einzusetzen weiss
Link zu diesem Beitrag in die Zwischenablage kopieren
JanB
Veteran

22.11.08
21:06 Uhr
welche Frameworks nutzt Ihr?
CSS Blueprint, YAML und jQuery
Wie sehr erleichtern sie Euren Workflow
zu den ersten beiden: sie ermöglichen nichts, was ich nicht auch von Hand machen könnte, aber dafür tun sie das was alle Frameworks tun sollen: Zeit sparen. Mit YAML kann ich ein 3-Spalten-Layout in wenigen Minuten zusammen klicken und mit Blueprint hab ich schon komplette Websites ohne Vorbereitung spontan zusammengebaut. Ein weiterer Vorteil ist die Kompatibilität die bei den meisten Frameworks gegeben ist, Stichwort IE6. Ich find es häufig deprimierend den Großteil der Arbeit mit Bugfixing zu verbringen und dabei nicht vorwärts zu kommen. Übrigens macht YAML für XTC XTC einigermaßen erträglich für diejenigen, die Webdesign im 3. Jahrtausend gelernt haben.
Zu jQuery: Ich hab keine Ahnung von Javascript und ich kann damit trotzdem schnell Effekte erzielen. Mit Effekt sind natürlich keine grafische Spielereien gemeint. Die jQuery Doku spricht da für sich.
wieviel Zeit und Mühen hat es gekostet, Euch einzuarbeiten?
Blueprint: 10-20 Minuten
YAML: Da bin ich heute noch am lernen, benutze es auch nicht sehr häufig, aber ich würde sagen ne Stunde, da es mitunter ne Menge Stylesheets hat die sich überschneiden. Speziell beim XTC YAML war das so.
jQuery: Als jemand der sich mit Javascript und den CSS-Kaskadensystem auskennt braucht man da vielleicht sogar gar keine Einarbeitung. Ich fummel mir da bis heute noch mein Zeug zusammen ;)

Ich hoffe das hilft dir ein bisschen weiter, auch, wenn ich deinem Text mal entnehme, dass dus mit Proggen mehr drauf hast wie ich ;)
Link zu diesem Beitrag in die Zwischenablage kopieren
Dominic
Moderator

23.11.08
00:57 Uhr
Editiert: 23.11.08, 15:01 Uhr
stese schrieb am 22.11.08, 18:55 Uhr:

bei symphony z.b. arbeitest du immer in einem mvc pattern - sprich die initialimplementation gibt dir sehr viele werkzeuge zur hand, ... durchaus schön, aber miunter oversized

joa. aber man kann eigentlich so gut wie alles, was man nicht braucht per config file abschalten – falls gewollt.

interessanterweise soll es in den nächsten versionen vom fullstack (auch) in richtung glue framework gehen, d.h. es wird möglich nur bestimmte teile zu nehmen. bei einem simplen kontaktformular ist or-mapping z.b. nicht unbedingt nötig, man kann aber die teile zum mailversand gebrauchen und das sehr(!) geniale forms framework benutzen, um ruck zuck »sich selbst« (da objekte) validierende formulare zu haben.
dass symfony tendenziell sowieso eher schwach gekoppelt ist, zeigt z.b. der relativ schmerzfreie wechsel des orm von propel auf doctrine.

aber zend muss ich mir in der tat auch mal genauer anschauen. das soll man sogar auch sehr gut in symfony integrieren können.... wenn ich mal zeit hab. gumbo
Link zu diesem Beitrag in die Zwischenablage kopieren
 
#