Frameworks
-
Shade Of Mine schrieb:
das angesprochene "mikromanagement" was genau ist das?
Ich brauche mich nicht um Dinge zu kümmern, die für meine Anwendungen eigentlich völlig unwichtig sind. Rails weiß, wie meine Datenbank-Tabellen zusammenpassen, bzw. lässt mich das im Bedarfsfall mit einem einfachen has_many oä formulieren. Mit Rails kann ich bequem und sauber mit Templates und Layouts arbeiten, mit Rails brauche ich nicht erstmal einen Rattenschwanz an selbstgebastelten Helper-Funktionen zusammensuchen, um mit der eigentlichen Arbeit loslegen zu können. ... Kurz: Rails lässt mich das Rad nicht neu erfinden.
ist das der controller/router der die requests auf die einzelnen controller verteilt? oder dass das caching automatisiert werden kann?
Beides nett, aber nur ein Teil des Ganzen.
schnelle entwicklung ist klar, das ist der schluessel - nur _warum_ bist du mit rails schneller als zB ich mit symfony? mal abgesehen davon dass ruby cooler ist als php :p
Gute Frage. Vermutlich primär deswegen, weil mein Code wartbar, extrem kompakt und lesbar bleibt, auch der automatisch generierte. Und weil automatisierte Tests so verdammt bequem und simpel sind. (Und natürlich, weil Ruby _besser_ - nicht nur "cooler" - als PHP ist.
)
Vergleiche einfach mal die typischen Abläufe beim Programmieren mit Symfony mit denen beim Programmieren mit Rails. (Alleine wenn ich an die Abläufe rund um schema.xml denke, wird mir bereits übel.) Rails ist schlicht und ergreifend weniger umständlich und eleganter. Mit Eleganz kann man übermäßiger Komplexität sehr gut begegnen.
Schau Dir am besten einfach mal das hier an, falls Du es noch nicht gesehen hast:
http://media.rubyonrails.org/video/rails_take2_with_sound.mov
wie empfindet ihr dieses starke durchsetzen des MVC pattern? Also dass man wirklich views und controller vollkommen trennt. ich meine, klar MvC ist nett, keine frage, aber es ist ja nicht die einzige moeglichkeit "view" und "controller" zu trennen... damit meine ich uA dass die interne klassenhierachie ja durch die URL nach aussen dringt...
Bis jetzt war das immer sehr hilfreich. Und die interne Klassenhierarchie lässt Du eben nur soweit nach außen dringen, wie Du möchtest, das stellt in der Praxis kaum ein Problem dar.
-
Hi
Ist ja genial einfach.
Das einzige was mich da stört ist das ein INT bei MySQL mit der Länge 11 angegeben wird.
Max ist aber 10 (wenn es ein 32 BIT System ist) auch wenn es keinen Fehler gibt.Gibt esw auch Entwicklungsumgebungen für Ruby?
-
Unix-Tom schrieb:
Hi
Ist ja genial einfach.
Das einzige was mich da stört ist das ein INT bei MySQL mit der Länge 11 angegeben wird.
Max ist aber 10 (wenn es ein 32 BIT System ist) auch wenn es keinen Fehler gibt.Gibt esw auch Entwicklungsumgebungen für Ruby?
-
Unix-Tom schrieb:
Das einzige was mich da stört ist das ein INT bei MySQL mit der Länge 11 angegeben wird. Max ist aber 10 (wenn es ein 32 BIT System ist) auch wenn es keinen Fehler gibt.
Hm, das läuft auf einem Mac, ist also vermutlich kein 32-Bitter sondern eher ein 64-Bit-System.
Gibt esw auch Entwicklungsumgebungen für Ruby?
Ja, mittlerweile en masse, sowohl freie, als auch kommerzielle. Ich habe aber keinen guten Überblick darüber, da ich keine davon verwende.
-
Hallo,
ich benutze seit einiger Zeit auch Rails. Die Gründe möchte ich nicht nochmal aufzählen, das hat nman schon sehr gut gemacht, dem kann ich nur zustimmen.
Ich kann noch ergänzen, warum Ruby so cool ist:
Ich habe die Erfahrung gemacht, dass die 90% aller Webanwendungen nur ein simples CRUD mit existierenden Daten machen. Also Daten raus aus der DB, aufbereiten und anzeigen + editieren und neue Daten erstellen.
Solche simplen Sachen kann man mit Rails sehr schnell und sicher machen. Sicher, weil man sich fast nie um irgendwelche Injections kümmern muss und keine komplexen Datenstrukturen zum arbeiten verwenden muss. Schnell weil der Syntax sehr kompakt ist und leicht von der Hand geht, da sehr intuitiv und elegant.Auch toll ist, dass ich per Gems viele Features (Plugins) hinzufügen kann. Vom Logingenerator, Tablewidget bis zum verbesserten Codegenerator is alles dabei - und im Gegensatz zu PHP sind die Erweiterungen dokumentiert, funktionieren(!) und haben manchmal sogar Unittests.
Es gibt auch sehr viel kompetente Hilfe im Internet zu Rails. Geschriebene Doku ist zwar noch was mau, aber die Community darum ist sehr nett.
Ganz gut ist auch die Einfachheit, mit der man Web 2.0 Anwendungen erstellen kann. Da hilft zwar die Prototypelibrary mit, aber die Integration ist gut gemacht.
Noch eine FreeRide ist Freeride, die gibt's bei Rubyforge.org
Wenn du ein eigenes Framework bauen möchtest (@Shade Of Mine) kannst du folgendes besser machen als Rails:
- Mehr Dokumentation bereitstellen
- Framework, egal auf welcher Sprache basierend, soll auch nen guten Windowssupport haben. Da hapert es bei Ruby im Moment leider
- Dito Unicode und Internationalisierung
- (Ne Mega IDE mitliefern)
- Widgets à la JSF oder ASP .NET direkt mitanbieten
- Besseren AJAX Support (->get rid of Javascript)
- Cut the crap -> Standardzeugs soll mich nicht nerven
- Ansätze für XP/Agile Programming bietenEdit: IDE Namen korrigiert
-
Headhunter schrieb:
Wenn du ein eigenes Framework bauen möchtest (@Shade Of Mine) kannst du folgendes besser machen als Rails:
wir werden es probieren
rails ist nämlich harte konkurrenz die wir schlagen wollen...
- Dito Unicode und Internationalisierung
hierbei suche ich nich gute ansätze...
da hast du nicht zufällig irgendwelche ideen oder libs wie man das schön lösen kann wo ich etwas ideen klau betreiben kann?ich meine dabei irgendwelche eleganteren lösungen als einfach per lang_id die jeweiligen texte aus der db lesen (oder ähnliches).
- (Ne Mega IDE mitliefern
)
Zend Studio :p
aber ja, so ne coole rad ide wäre mal geil... wir hatten mal überlegt das über eclipse zu machen... aber das steht alles in den sternen- Ansätze für XP/Agile Programming bieten
was schwebt dir da vor?
was zB im moment integriert ist sind eine form von assertions und ein unittest framework ist in planung. aber das ist ansich ja nix besonderes.
xp/agile das ist ja mehr wie n buzzword - also was stellst du dir da konkret vor?
-
Hallo,
hier die Antworten zu deinen Fragen:
- Unicode und Internationalisierung, wie geht das am Besten?
Das kommt ganz auf die einzusetzende Programmiersprache an, kommt drauf an, was die dir für Möglichkeiten bieten. Ich finde die Idee von QT aber z.B. ganz gut.. du schreibst um alle Stringkonstanten einen Makroaufruf "tr", der dann zur Compilezeit in "QObject::translate(QString)" umgewandelt wird. Über einen QT Präprozessor kann ich mir dann alle Strings herauslesen und dann extern internationalisieren. Sowas ist schon Klasse.
Unicode ist immer ein leckeres Thema. Vorschlag: Konvertiere intern alle Strings nach Unicode, so als gäbe es nix anderesSchau dir, auch da, mal an wie QT das macht. Hast du schonmal ne QT Anwendung mit kaputten Sonderzeichen gesehen? Ich nicht
Klasse wäre es auch, wenn das Framework mich warnt, wenn die Quelldateien nicht in Unicode vorliegen.- Ansätze für XP/Agile Programming bieten
Tolle Buzzwords, nicht wahr
Unittests sind schonmal ne Klasse Sache, wenn ich dann noch (halb)automatische Deployments machen kann bin ich noch glücklicher. Stichwort Capistralo (Swichtower und Ruby Migrations).
Allgemein fände ich es prima, wenn das Framework das Schreiben von eleganten Code vereinfacht. Ruby macht das ganz toll. PHP total nicht, weil ich muss da selber denken und jede Menge hässlichen Mikrokrams schreiben den keine Sau interessiert.Noch ein Hinweis:
Versuche bei dem neuen Framework die größte Schwäche von PHP, Rails oder sonstwas auszugleichen: Fehlende Steuerelemente.
Wenn ich mir bei jeder opensourcebasierten Weblösung *mal wieder* ein neues Tabellen-, Tree- oder XXXwidget zusammensuchen muss verliere ich den Produktivitätsvorteil gg. ASP .NET oder JSF sehr schnell. Deshalb: Viele fertige und umfangreiche out-of-the-box funktionierende Controls mitgeben
-
Headhunter schrieb:
Das kommt ganz auf die einzusetzende Programmiersprache an, kommt drauf an, was die dir für Möglichkeiten bieten. Ich finde die Idee von QT aber z.B. ganz gut.. du schreibst um alle Stringkonstanten einen Makroaufruf "tr", der dann zur Compilezeit in "QObject::translate(QString)" umgewandelt wird. Über einen QT Präprozessor kann ich mir dann alle Strings herauslesen und dann extern internationalisieren. Sowas ist schon Klasse.
Naja, praeprozessor ist vorhanden, sowas waere also kein problem.
Die Frage ist, ist das wirklich die beste moeglichkeit? Also _eine_ moeglichkeit ist es schonmal. Aber wenn ich jetzt zB von einer webseite ausgehe, wo ich viel text habe, ob es da sinnvoll ist, es so zu machen... vorallem weil ich ja formatierung innerhalb des textes habe... und wenn ich diese formatierung aendern will, dann ists uU doof.
aber aufjedenfall ein ansatz der implementiert werden wird.
Versuche bei dem neuen Framework die größte Schwäche von PHP, Rails oder sonstwas auszugleichen: Fehlende Steuerelemente.
Wenn ich mir bei jeder opensourcebasierten Weblösung *mal wieder* ein neues Tabellen-, Tree- oder XXXwidget zusammensuchen muss verliere ich den Produktivitätsvorteil gg. ASP .NET oder JSF sehr schnell. Deshalb: Viele fertige und umfangreiche out-of-the-box funktionierende Controls mitgebenexakt. darauf fokusieren wir uns
-
Shade Of Mine schrieb:
Headhunter schrieb:
Versuche bei dem neuen Framework die größte Schwäche von PHP, Rails oder sonstwas auszugleichen: Fehlende Steuerelemente.
Wenn ich mir bei jeder opensourcebasierten Weblösung *mal wieder* ein neues Tabellen-, Tree- oder XXXwidget zusammensuchen muss verliere ich den Produktivitätsvorteil gg. ASP .NET oder JSF sehr schnell. Deshalb: Viele fertige und umfangreiche out-of-the-box funktionierende Controls mitgebenexakt. darauf fokusieren wir uns
Was stellt ihr denn euch unter Widgets vor?
Viel mehr als das was HTML einem anbietet gibt's doch eh nicht.
-
hehejo schrieb:
Was stellt ihr denn euch unter Widgets vor?
Viel mehr als das was HTML einem anbietet gibt's doch eh nicht.komplexe html/java applet/etc strukturen koennen ein widget ergeben.
beispielsweise:
<registerset> <register caption="Hallo"> Halloele </register> <register caption="huhu"> Buhuhuhu </register> </registerset>
wuerde auf einer html seite 2 reiter erstellen und mit draufklicken kannst du dann zwischen "Halloele" und "Buhuhuhuu" als inhalt der seite waehlen. ob das per ajax oder per seiten reload implementiert ist, laesst sich dann ueber attribute von <registerset> bestimmen.
oder eben tabellen wo man einzelne spalten sortieren kann und die daten aus der db gelesen werden,...
so stell ich mir gute widgets vor
-
Shade Of Mine schrieb:
[..]
Naja, praeprozessor ist vorhanden, sowas waere also kein problem.Die Frage ist, ist das wirklich die beste moeglichkeit? Also _eine_ moeglichkeit ist es schonmal. Aber wenn ich jetzt zB von einer webseite ausgehe, wo ich viel text habe, ob es da sinnvoll ist, es so zu machen... vorallem weil ich ja formatierung innerhalb des textes habe... und wenn ich diese formatierung aendern will, dann ists uU doof.
Wenn ein Präpro vorhanden ist, dann nutze ihn auch
Nichts ist schlimmer als ein neues tolles Feature, was sich nur halbherzig in ein Framework integriert.
Ich glaube zwar dass die Speicherung von Text mit Formatierungen eher Aufgabe eines CMS sein sollte, aber ne Idee um Text ohne Formatierung zu internationalisieren wäre folgendes:
Jeder Text, der später mal in einer anderen Sprache erscheinen können soll, muss in '{' und '}' gefasst werden. Der Präpro liest dann diese Werte automatisch heraus und schreibt sie in eine DB/XML/YAML Datei.
Dann müsste man beim verfassen von formatiertem Text nur aufpassen, dass keine Formatierungstags in die Übersetzung mit reinflutschen.<ot>Ne Sprache mit Präprozessor.. ich hoffe Ihr macht kein Framework das auf C++/C basiert
? </ot>
-
Headhunter schrieb:
<ot>Ne Sprache mit Präprozessor.. ich hoffe Ihr macht kein Framework das auf C++/C basiert
? </ot>
PHP
aber n bisschen aehnlich dem Qt ansatz mit dem metacompiler
denn PHP bietet einfach nicht genug als sprache. und alternativen gibt es nicht, denn welcher hoster hat denn schon ruby installiert? oder jsp, oder asp? ok, ne alternative waere perl gewesen, dass gibts auch noch oft, aber dann doch lieber php :p
-
Hallo,
PHP ist zwar sicher nicht die Goldrandsprache, aber da es überall läuft denke ich schon, dass es OK ist.
Ein neues PHP Framework muss sich aber wahrscheinlich an dem "Zend Framework" (http://framework.zend.com/) messen.. besser als CakePHP (https://trac.cakephp.org/) zu sein ist auch nötig.
Ansonsten: Daumen hoch und viel Glück