SlideShare ist ein Scribd-Unternehmen logo
1 von 13
Downloaden Sie, um offline zu lesen
Ruby on Rails
                           Eine kurze Einführung


                             Thomas R. Koll
                              http://ananasblau.com
                              3. OCWD Juli 2009




Montag, 13. Juli 2009
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
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
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
Die ersten Schritte

                        •   rails my_app

                        •   ./script/server

                        •   ./script/console

                        •   ./script/generate

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




Montag, 13. Juli 2009
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
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
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
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
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
Montag, 13. Juli 2009
Für Fortgeschrittene
                        •   Rack

                        •   REST

                        •   Generatoren

                        •   Plugins und Gems

                        •   Meta-Programming

                        •   Engines




Montag, 13. Juli 2009
Tools für‘s deployment


                        •   git+ssh (siehe github.com)

                        •   apache mit passenger (mod_rails)

                        •   capistrano




Montag, 13. Juli 2009

Weitere ähnliche Inhalte

Ähnlich wie Ruby on Rails - Eine kurze Einführung

Performanter, hochskalierbarer Web 2.0-Dienst in Ruby
Performanter, hochskalierbarer Web 2.0-Dienst in RubyPerformanter, hochskalierbarer Web 2.0-Dienst in Ruby
Performanter, hochskalierbarer Web 2.0-Dienst in Rubyvesparun
 
Ajax in domino web-anwendungen - der nächste schritt
Ajax in domino web-anwendungen - der nächste schrittAjax in domino web-anwendungen - der nächste schritt
Ajax in domino web-anwendungen - der nächste schrittdominion
 
Drupal - Webmontag Bremen, 01.07.2013
Drupal - Webmontag Bremen, 01.07.2013Drupal - Webmontag Bremen, 01.07.2013
Drupal - Webmontag Bremen, 01.07.2013Steffen Rühlmann
 
Joomla! in der Profiliga - eine Bestpractice-Sammlung
Joomla! in der Profiliga - eine Bestpractice-SammlungJoomla! in der Profiliga - eine Bestpractice-Sammlung
Joomla! in der Profiliga - eine Bestpractice-SammlungDavid Jardin
 
Atom Publishing Protocol
Atom Publishing ProtocolAtom Publishing Protocol
Atom Publishing ProtocolDirk Haun
 
10 Tricks für Entwickler
10 Tricks für Entwickler10 Tricks für Entwickler
10 Tricks für EntwicklerDavid Jardin
 
Rails i18n - Railskonferenz 2007
Rails i18n - Railskonferenz 2007Rails i18n - Railskonferenz 2007
Rails i18n - Railskonferenz 2007jan_mindmatters
 
Grails im Überblick und in der Praxis
Grails im Überblick und in der PraxisGrails im Überblick und in der Praxis
Grails im Überblick und in der PraxisTobias Kraft
 
Never Code Alone: Von Symfony Forms zu einer SPA auf APIs
Never Code Alone: Von Symfony Forms zu einer SPA auf APIsNever Code Alone: Von Symfony Forms zu einer SPA auf APIs
Never Code Alone: Von Symfony Forms zu einer SPA auf APIsStefan Adolf
 
ColdFusion im Enterprise Umfeld - Deep Dive
ColdFusion im Enterprise Umfeld - Deep DiveColdFusion im Enterprise Umfeld - Deep Dive
ColdFusion im Enterprise Umfeld - Deep DiveBokowsky + Laymann GmbH
 
Agile Softwareentwicklung mit Rails
Agile Softwareentwicklung mit RailsAgile Softwareentwicklung mit Rails
Agile Softwareentwicklung mit RailsHussein Morsy
 
Elastische Skalierbarkeit für Web-Anwendungen
Elastische Skalierbarkeit für Web-AnwendungenElastische Skalierbarkeit für Web-Anwendungen
Elastische Skalierbarkeit für Web-AnwendungenAxel Irriger
 
HTML5-Performance: So rennt Ihre App und nicht Ihre Anwender (weg)
HTML5-Performance: So rennt Ihre App und nicht Ihre Anwender (weg)HTML5-Performance: So rennt Ihre App und nicht Ihre Anwender (weg)
HTML5-Performance: So rennt Ihre App und nicht Ihre Anwender (weg)André Krämer
 
FMK2015: The Power of JavaScript by Marcel Moré
FMK2015: The Power of JavaScript by Marcel MoréFMK2015: The Power of JavaScript by Marcel Moré
FMK2015: The Power of JavaScript by Marcel MoréVerein FM Konferenz
 

Ähnlich wie Ruby on Rails - Eine kurze Einführung (20)

Ant im Detail
Ant im DetailAnt im Detail
Ant im Detail
 
Performanter, hochskalierbarer Web 2.0-Dienst in Ruby
Performanter, hochskalierbarer Web 2.0-Dienst in RubyPerformanter, hochskalierbarer Web 2.0-Dienst in Ruby
Performanter, hochskalierbarer Web 2.0-Dienst in Ruby
 
Ajax in domino web-anwendungen - der nächste schritt
Ajax in domino web-anwendungen - der nächste schrittAjax in domino web-anwendungen - der nächste schritt
Ajax in domino web-anwendungen - der nächste schritt
 
Ant Maven
Ant MavenAnt Maven
Ant Maven
 
Ruby on Rails
Ruby on RailsRuby on Rails
Ruby on Rails
 
Drupal - Webmontag Bremen, 01.07.2013
Drupal - Webmontag Bremen, 01.07.2013Drupal - Webmontag Bremen, 01.07.2013
Drupal - Webmontag Bremen, 01.07.2013
 
Joomla! in der Profiliga - eine Bestpractice-Sammlung
Joomla! in der Profiliga - eine Bestpractice-SammlungJoomla! in der Profiliga - eine Bestpractice-Sammlung
Joomla! in der Profiliga - eine Bestpractice-Sammlung
 
node.js Einführung
node.js Einführungnode.js Einführung
node.js Einführung
 
Ruby on Rails SS09 02
Ruby on Rails SS09 02Ruby on Rails SS09 02
Ruby on Rails SS09 02
 
Atom Publishing Protocol
Atom Publishing ProtocolAtom Publishing Protocol
Atom Publishing Protocol
 
10 Tricks für Entwickler
10 Tricks für Entwickler10 Tricks für Entwickler
10 Tricks für Entwickler
 
Rails i18n - Railskonferenz 2007
Rails i18n - Railskonferenz 2007Rails i18n - Railskonferenz 2007
Rails i18n - Railskonferenz 2007
 
Grails im Überblick und in der Praxis
Grails im Überblick und in der PraxisGrails im Überblick und in der Praxis
Grails im Überblick und in der Praxis
 
Infra coders meetup
Infra coders meetupInfra coders meetup
Infra coders meetup
 
Never Code Alone: Von Symfony Forms zu einer SPA auf APIs
Never Code Alone: Von Symfony Forms zu einer SPA auf APIsNever Code Alone: Von Symfony Forms zu einer SPA auf APIs
Never Code Alone: Von Symfony Forms zu einer SPA auf APIs
 
ColdFusion im Enterprise Umfeld - Deep Dive
ColdFusion im Enterprise Umfeld - Deep DiveColdFusion im Enterprise Umfeld - Deep Dive
ColdFusion im Enterprise Umfeld - Deep Dive
 
Agile Softwareentwicklung mit Rails
Agile Softwareentwicklung mit RailsAgile Softwareentwicklung mit Rails
Agile Softwareentwicklung mit Rails
 
Elastische Skalierbarkeit für Web-Anwendungen
Elastische Skalierbarkeit für Web-AnwendungenElastische Skalierbarkeit für Web-Anwendungen
Elastische Skalierbarkeit für Web-Anwendungen
 
HTML5-Performance: So rennt Ihre App und nicht Ihre Anwender (weg)
HTML5-Performance: So rennt Ihre App und nicht Ihre Anwender (weg)HTML5-Performance: So rennt Ihre App und nicht Ihre Anwender (weg)
HTML5-Performance: So rennt Ihre App und nicht Ihre Anwender (weg)
 
FMK2015: The Power of JavaScript by Marcel Moré
FMK2015: The Power of JavaScript by Marcel MoréFMK2015: The Power of JavaScript by Marcel Moré
FMK2015: The Power of JavaScript by Marcel Moré
 

Ruby on Rails - Eine kurze Einführung

  • 1. Ruby on Rails Eine kurze Einführung Thomas R. Koll http://ananasblau.com 3. OCWD Juli 2009 Montag, 13. Juli 2009
  • 2. 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
  • 3. 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
  • 4. 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
  • 5. Die ersten Schritte • rails my_app • ./script/server • ./script/console • ./script/generate • rake (rake -T für mehr Optionen) Montag, 13. Juli 2009
  • 6. 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
  • 7. 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
  • 8. 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
  • 9. 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
  • 10. 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
  • 12. Für Fortgeschrittene • Rack • REST • Generatoren • Plugins und Gems • Meta-Programming • Engines Montag, 13. Juli 2009
  • 13. Tools für‘s deployment • git+ssh (siehe github.com) • apache mit passenger (mod_rails) • capistrano Montag, 13. Juli 2009