Ruby on Rails - mein erstes mal | 03. August 2006 um 21:46 Uhr / Programming
Seit einigen Monaten kenne ich ja schon Ruby und habe auch das eine oder andere kleine Script veröffentlicht. Auch ein Micro-CMS habe ich damit schon damit hinbekommen, so weit so gut.
Jetzt aber kam eine größere Aufgabe auf mich zu. Es geht um eine ziemlich große Erweiterung einer Software, von der ich bisher schon zwei Versionen in PHP geschrieben habe. Doch jetzt sollen viele Funktionen hinzukommen, die es dem Endkunden erlauben auf das Aussehen und Verhalten der Webseite einfluss zu nehmen, außerdem kommen noch einige Exportfilter hinzu. Das bedeutet von der Implementationsseite aus sehr viele GUIs zu bauen, um vieles von den Usern beeinflussen zu lassen, und auch den Administratoren die Möglichkeit zu geben auf nahezu alles Einfluss über das Administrationscenter zu nehmen.
Es wurden also aus aus mikrigen 5 Tabellen in der Datenbank gleich mal um die 20, die ziemlich normalisiert sind und dadurch zum Teil verzwickt miteinander verflochten wurden. Das ganze Datenkonstrukt möchte nun also eine GUI für die Verwaltung haben, die intuitiv und schnell zu erfassen ist.
Normalerweise heißt das viel Implementierarbeit um die richtigen Daten aus der richigen Tabelle im richtigen Verhältnis zu anderen Tabellen in eine einzige HTML Seite zu Bringen, und dann beim speichern alles natürlich wieder in die richtigen Teballen zu schreiben. Auch die Anzeige muss penibel genau schauen wo sie ihre Daten herbekommt, etc.
Nun war natürlich die erste Frage die ich mir stellte: "Möchte ich mir da wirklich wieder PHP antun?"
Die Antwort war ein entschiedenes NEIN. PHP ist mir dafür zu … sagen wir mal … kompliziert. Da ich mit Phyton noch nicht so richtig viel Erfahrung habe fiel die Wahl auf meine derzeitige Lieblingssprache Ruby.
Die Zweite Frage war dann: Wie mache ich mir das endlose Bauen der HTML/CSS/JavaScript GUIs so einfach wie möglich?
Nun, ich habe schon ein bischen mit Rails herumgespielt, hatte damals aber nicht wirklich die Zeit mich da tiefer einzulesen. Ich wusste aber aus der kurzen erfahrung schon, dass mir dieses Framework hier sehr gut helfen wird. Ich entwarf also als erstes mit Hilfe von PHPMyAdmin eine komplett neue Datenbankstruktur und band eben diese Datenbank in Rails ein.
Nun was soll ich sagen, Ruby on Rails ist absolut geil! Ich arbeite jetzt gerade mal 2,5 Tage damit und habe schon einen erheblichen Teil meines Administrationscenters hinbekommen. Ein Beispiel gefällig?
select "user", "group_id", Group.find_all.collect { |g| [g.name, g.id] } , { :include_blank => true }
erzeugt:
<select id="user_group_id" name="user[group_id]">
<option></option>
<option value="1">foo</option>
<option value="2" selected="selected">bar</option>
<option value="3">baz</option>
<option value="4">hoo</option>
</select>
Man muss dazu sagen, dass User eine Tabelle mit allen Userdaten ist, und Groups eine Tabelle mit den Gruppennamen, zu denen ein User gehören kann. Mehr ist da an code nicht, was man schreiben müsste und es wird das neu erstellen, editieren und speichern damit erledigt. Keine Datenbankanbindung, keine HTML-Erzeugung, einfach eine unglaubliche Arbeitserleichterung. Mit solchen Methoden ist eine GUI in Minutenschnelle erzeugt und man kann sich der wirklich Programmierarbeit widmen.
Ein Wehrmutstropfen ist, dass ich immer wieder auf geschützte Wörter stoße, die ich nicht für irgendwelche Namen verwenden darf. Aber das ist wohl der Preis der Entwicklungsgeschwindigkeit und man kann sich relativ schnell einen neuen sinnvollen Namen ausdenken.
Um mit Rails anzufangen sollte man aber zumindest Grundkentnisse in Ruby besitzen, dann tut man sich viel leichter auch mal eine außergewöhnlichere Aufgabenstellung schnell zu meistern. Mir macht Ruby on Rails wirklich Spaß vielleicht möchte das auch jemand von euch ausprobieren?
Kommentare
Die Kommentare sind für diesen Eintrag geschlossen.




abonnieren.
Daniel Malone schrieb am 04.08.2006
Ich habe RoR auch nur testweise ausprobiert, kann aber sagen das ich es liebe. Das MVC Konzept, die Datenbankanbindung und die sehr einfache art HTML Code auszuspucken ist einfach genial.
Wenn ich wiedermal mehr Zeit finde werde ich mal mehr mit arbeiten.
fwolf aus Karlsruhe, Germania schrieb am 05.08.2006
Bekomme Ruby momentan immer nur aus Hörensagen mit. Bei nächster Gelegenheit - vermutlich in 2-3 Wochen - mach ich da auch mal dran.
Nebenbei erwähnt scheinen inzwischen viele Grupp(ierung)en von Entwicklern das On Rails-Prinzip nachahmen zu wollen - so gibt es für Java die Implementierung Groovy on Grails und für PHP cakePHP (s.a. Eintrag dazu beim RSS Blogger). ;)
Für PHP selbst kann ich persönlich auch noch bitweaver empfehlen - sehr fesches Framework, allerdings 'a bit chunky': 16 MB entpackt :D
cu, w0lf.
Jeena Paradies aus Varberg schrieb am 05.08.2006
Zur Java Implementation kann ich jetzt nicht wirklich was sagen, da ich Java an sich nicht kenne, aber die ganzen PHP sachen kann man wohl getrost vergessen. PHP fehlen einfach grundsätzliche Dinge um so etwas komfortabel umzusetzen. Es ist kein Zufall, dass gerade ein framework welches in Ruby geschrieben wurde solch große Erfolge feiert. Ruby an sich hat eben die richtigen Zutaten, die andere Sprachen so nicht haben.
Zu erwähnen wäre noch Django, das wohl auch ähnlich arbeitet und von Phytons Eigenschaften gut gebrauch macht, wobei ich gerade auf die etwas seltsame Templatesprache aufmerksam gemacht wurde. Die scheint mir doch auch recht gewöhnungsbedürftig im vergleich zu eruby.
Michel Balzer aus Mülheim/Deutschland schrieb am 07.08.2006
Irgendwie klingt das alles ganz toll und ich würds am liebsten sofort ausprobieren. Mein Wissen um Programmier- und ähnliche Sprachen sollte ich eh mal aufstocken.
Julian Schrader aus Würzburg < Deutschland schrieb am 20.08.2006
Ich komme auch aus dem PHP-Bereich und bin momentan am experimentieren mit RoR, möchte auch einige Projekte damit entwickeln. Mein Problem momentan ist nur, dass ich keine Ahnung von Ruby habe ? so muss ich momentan immer ein bisschen herumbasteln, bis der Code das macht, was ich will ;-)
Diese Beiden Bücher helfen mir dabei ganz gut:
Agile Webdevelopment with Rails
Rails Recipes
Anja Minkenberg aus Wuppertal schrieb am 14.02.2007
Also ich komme sehr gut mit Ruby zurecht. Ich denke das ich in nächster Zeit nur noch damit arbeiten werde. Ich kann nichts nachteiliges sagen. :-)