Download - Ruby on Rails - Eine kurze Einführung

Transcript
Page 1: Ruby on Rails - Eine kurze Einführung

Ruby on Rails

Thomas R. Kollhttp://ananasblau.com3. OCWD Juli 2009

Eine kurze Einführung

Montag, 13. Juli 2009

Page 2: Ruby on Rails - Eine kurze Einführung

Facts

• Gestartet 2004 von David Heinemeier Hansson (DHH)

• Web-Framework um schnell Applikationen zu erstellen

• Konventionen vor Konfiguration

• Don‘t Repeat yourself (DRI)

• MVC und andere Patterns

• Starker Hang zu Domain Specific Languages

Montag, 13. Juli 2009

Page 3: Ruby on Rails - Eine kurze Einführung

Hauptbestandteile

• Rack

• ActiveRecord

• ActionView, ERB, HAML, liquid

• ActionController

• I18n, named scopes, rails templates

• RSpec, Cucumber, Test::Unit

• URLHelper, Routing, Generatoren, Plugins

Montag, 13. Juli 2009

Page 4: Ruby on Rails - Eine kurze Einführung

Setup

• One-click Installer for Ruby für Windows

• Mac OSX 10.5 hat schon ruby

• apt-get install ruby libruby irb ri sqlite3 rubygems

• sudo gem update --system

• sudo gem install rails rack rake

Montag, 13. Juli 2009

Page 5: Ruby on Rails - Eine kurze Einführung

Die ersten Schritte

• rails my_app

• ./script/server

• ./script/console

• ./script/generate

• rake (rake -T für mehr Optionen)

Montag, 13. Juli 2009

Page 6: Ruby on Rails - Eine kurze Einführung

Scaffolding

• Erstellt einfache Views, teils auch mit JS

• Erlaubt schnelles Prototyping

• aber besser HAML, ein paar Helper und alles selber schreiben für mehr Freiheit.

• Moderner Ansatz im Webdevelopment:Zuerst ein Design mit dem alle Seiten einverstanden sind.

Montag, 13. Juli 2009

Page 7: Ruby on Rails - Eine kurze Einführung

Tests

• Unit-Tests für Models

• Functional Tests für Controller

• Integration Tests für‘s Zusammenspiel

• Zusätzlich Cucumber oder RSpec:

• Stories aus Sicht des Stakeholders

• Einfacher zu verstehen

Montag, 13. Juli 2009

Page 8: Ruby on Rails - Eine kurze Einführung

Model• Verbindung zur Datenbank, REST-API oder ähnliches

• Automatische get, set und ? Methoden

• new, create, save, find, update, count, exist?, destroy

• dynamische finder und auch find_or_create_by...

• named scopes, callbacks, counter_cache

Montag, 13. Juli 2009

Page 9: Ruby on Rails - Eine kurze Einführung

Controller• Empfängt die Requests vom Webserver/Rack

• before/after Filter, REST

• Holt Daten und gibt diese an die View weiter

Montag, 13. Juli 2009

Page 10: Ruby on Rails - Eine kurze Einführung

Views

• Endformate: HTML, XML, iPhone, iCal, ics, rss, pdf, …

• Viele Layout-Engines: ERB, HAML, liquid, …

• Mehrere Layouts möglich (per Controller)

• Partials die wiederverwendet werden können

• Viele Helper z.b. für JavaScript

• content_for und yield

Montag, 13. Juli 2009

Page 11: Ruby on Rails - Eine kurze Einführung

Montag, 13. Juli 2009

Page 12: Ruby on Rails - Eine kurze Einführung

Für Fortgeschrittene

• Rack

• REST

• Generatoren

• Plugins und Gems

• Meta-Programming

• Engines

Montag, 13. Juli 2009

Page 13: Ruby on Rails - Eine kurze Einführung

Tools für‘s deployment

• git+ssh (siehe github.com)

• apache mit passenger (mod_rails)

• capistrano

Montag, 13. Juli 2009