Direkt zum Hauptbereich

Ruby on Rails Magie

Seit einiger Zeit möchte ich ein Projekt realisieren, und stolperte von Joomla zu CakePHP zurück zu Joomla, um dann bei Ruby On Rails zu landen (kurz RoR oder einfach Rails).

Mittlerweile bin ich gefesselt von Rails. Aber vorweg zur Frage, was denn Rails überhaupt ist, denn darin liegt ein großer Teil der "Kraft".

Ich möchte eine Internetseite programmieren, aber nicht einfach nur EINE Seite, sondern dynamisch erstellter Inhalt, der auch noch Inhalte je nach Auswahl an den Nutzer liefert.

Eine typische Anwendung ist ein Online-Shop, bei welchem der Nutzer Produkte in den Warenkorb "legt", um sie dann zu bestellen bzw. gemeinsam auf einer Rechnung an den Betreiber zu schicken.

Natürlich kann man dies alles "zu Fuß" machen, aber die ganzen Datenbankenrelationen im Hintergrund (Produkte, Kunden, Aufträge, Warenkörbe usw.) sind alleine schon genug, um verrückt werden zu können.

Joomla ist ein bekanntes CMS und gerade in der neusten Version eine super Geschichte, mit der man viel erreichen kann (gerade auch, weil es mittlerweile ein Framework besitzt und das CMS eigentlich nur noch ein Addon ist). Damit kann ich einfach ein paar mal klicken und bekomme eine komplette Seite fertig erstellt, auch Online-Shop o.ä.

Genauso ist CakePHP ganz toll, weil man schnell über Skripte fertige Bausteine erstellen kann. Eine einfache CRUD-Anwendung (CreateReadUpdateDelete) erreicht man durch EINEN Befehl.

In Rails verhält es sich ähnlich, viele Aufgaben müssen nicht neu erfunden werden, sondern können generiert werden, um nur noch Anpassungen durchführen zu müssen.

Aber auch wenn ich nun die Dateien von Joomla oder CakePHP nutzen könnte, um meine Vorstellungen umzusetzen, es also als Framework nutze, scheiterte ich oft an PHP.

Diese Skriptsprache "hacke" ich schon seit meinen frühen Studentenjahren und obgleich ich dazu auch schon paar Bücher gelesen habe, bin ich nie so richtig an einem Punkt angelangt, wo mir Sachen leicht fallen.

Wenn ich aber den Code anderer als Framework nutzen möchte, sollte ich die Sprache einigermaßen "sprechen" können.

Nun kommt Ruby ins Spiel, worin alles ein Objekt ist und man fast immer die Punkt-Notation nutzen kann, wie z.B. 2.times {puts "hi"} erzeugt hi, hi.

Auch fallen diese ewig blöden Klammern weg, die man sonst fast überall beim Code anderer Sprachen nutzen muss.

Ruby ist leserlicher und intuitiver.



Somit landete ich bei der Auswahl des Frameworks bei Rails,
und stieß auch gleich auf die ersten Hürden.

In Rails heisst es z.B. convention over configuration (wie auch bei CakePHP, aber weil CakePHP Rails als Vorbild hat, kein Wunder):
somit MUSS man sich an gewisse Regeln halten, damit Magie passieren kann.

Hierbei ist die Idee des MVC-Frameworks ebenso tragend wie der REST-Aspekt.

MVC bedeutet, dass das mODEL die Daten hat, die vom cONTROLLER angefordert worden sind und per vIEW an den Nutzer gehen.
Es sind also immer diese drei im Hintergrund, wenn eine Internetseite aufgerufen wird.

Dabei findet Rails diese Tripel selbständig, warum es eben auch Konvetionen für Namen gibt; dies hält den Code schlank.

REST hat bei mir etwas länger gedauert bis ich den Einsatz verstanden hatte. Es meint ganz einfach, dass Daten nicht per speziell implementierter API transferiert werden, sondern per URL und den HTTP-Headern bzw. ob es ein GET, POST, DELETE o.ä. ist.



Abschliessend kann ich jedeRM raten sich Ruby on Rails mal anzusehen, denn obwohl es teils steif wirkt, passieren die wunderbarsten Dinge im Hintergrund, ohne dass man sie programmieren musste.

Und gerade weil die Konventionen so steif sind, erreicht man schnell Erfolge und wenn man die Logik erstmal verstanden hat, versteht man die Erfolgsgeschichte RubyOnRails auch.

Kommentare

Beliebte Posts aus diesem Blog

Pflanzsack aus Jute

Nachdem ich die Bücher vom Arche Noah Verein schon vorstellte, möchte ich hier eine Topfalternative zeigen, die obendrein noch dekorativ ist. Pflanzsäcke Oder "grow bags", wenn man etwas moderner daher komme möchte bzw. mehr Suchergenisse will. Dabei wollte ich wenig Geld ausgeben, und auch nicht ganz spartan bleiben und den Blumenerdesack dafür nutzen; und bestellte mir 50 kg Jutesäcke für ca. 1,20 EUR/Stück. Nimmt man den ganzen Sack, wird der Topf schon recht groß, auch wenn man etwas des Materials nach innen oder außen faltet. Also nahm ich mir die Freiheit und nähte aus einem großen vier kleine und verbrauchte den letzten Rest unserer Erde fürs Umtopfen der Habanero. Die machte nämlich nun Platz für die sibirische Hauschili und die restlichen von beiden Sorten mischte ich zusammen und stellte sie auf die Fensterbank. Der Vorteil dieser Art von Töpfen liegt auf der Hand: sie sind billig im Vergleich zum Volumen sie sind dekorativ - wirken rustikal biet...

rails + carrierwavve + plupload = multiple file upload

Right now I am very happy! I finished my work on creating a file upload method in rails for more than one file, altogether handled by rails sessions and as objects. First I had to learn a bit more about how rails works and I achieved that by reading a lot: books, screencasts and blogs. In this blog post I like to share what I accomplished, but without the hussle of putting code blocks in here, so watch out for bold formatted text as that is the code. My goal was to have one site with just the pure option of uploading files. All file handling would be done behind the scenes by myself logging onto my server. That said you are not going to see any fancy CRUD here. Lets start then! And dont forget to versioning your app BEFORE you try something new! [e.g. git] > rails g scaffold Photo title:string Now add carrierwave to you Gemfile and run > bundle install >rails g uploader Photo Alltogether you have model, controller, views and an uploader folder with the Ph...

LEGO Alternativen: Sluban und COBI

Ich habe vor kurzem wieder Feuer gefangen für LEGO. Und das kam durch die Dokumentation über die Errichtung des LEGO-Hauses in Billund. Also habe ich meine Steine gereinigt und die Kinder fangen gerade an, auch mal etwas zu bauen. Teilweise stammen meine Steine aus den 1970ern, 1980er und viel aus den 1990ern - alles passt noch wunderbar aufeinander. Viele Designs von LEGO gehen doch Wege, die ich selber nicht so toll finde. Ausserdem verstehe ich nicht, dass etliche Designs aufgegeben wurden. Letztere Sets findet man dann zu horrenden Preisen auf den einschlägigen Plattformen. Also sah ich mich um, denn das Patent für das Baustein-Prinzip ist abgelaufen und andere Firmen produzieren auch Stecksteine. Sluban ... ist Mist und wird von mir nie mehr gekauft. Die Firma stiehlt von LEGO, hat aber auch interessante Designs. Gerade bei militärischen Sachen findet der Fan einige gut aussehende Sets. Aber die Steine wirken nicht besonders toll, es gibt Macken, die Anleitung kön...