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

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...

debian 6 vserver - a new installation due to centOS update problem - my steps

My centOS vserver broke down after a "yum update" and even the centOS community forum could not give an answer within 24h. In my books that is poor for the almighty and stable centOS. Bare in mind that I am just a normal user of linux, no professional and definitely no expert when it comes to server, but I can read, try and share my findings: debian 6 installation steps via ssh secure your server: adduser foobar for security purposes  change /etc/sshd/sshd_conf to PermitRootLogin no now you can login as foobar and change to root via su - visudo for sudo command permissions and put this at the bottom: foobar   ALL=(ALL) ALL change hostname change hostname in /etc/hostname and in /etc/hosts reboot login via rsa key rather than password locally do ssh-keygen ssh-copy-id -i foobar@hostname... ssh now works without passwords but with keys (for easy deployment) install ruby and rails via rvm login as root always good to have: sudo apt-get install...