1. Daniel Dengler
web developer
Ruby on Rails
Workshop SS 2009
„Ruby on Rails“ and the Rails-Logo are registered trademarks of David Heinemeier Hansson – www.rubyonrails.org
2. PAPEO
Portable Assistant for
Personal Electronic Ordering
3.
4.
5.
6.
7. Versionsvergleich
PHP Version Ruby on Rails Version
• 7000 Zeilen PHP Code • 700 Zeilen Ruby Code
• MySQL Datenbank • PostgreSQL Datenbank
• Apache Webserver • Mongrel Applicationserver im
• Mängel bei der Barrierefreiheit Clusterbetrieb
• Schlechte Usability im Backend • Apache als Proxy Balancer
• Keine Tests • Verbesserte Barrierefreiheit
• Dateninkonsistenz möglich • Bessere Usability im Backend
• langsam dank AJAX
• Einige Tests
• Neue Features
• Transaktionssicherheit
• schneller
8. Zeitaufwand
Konzeption
PHP Version + Java Module
Ruby on Rails Version
Dokumentation
17. Ruby ≠ Ruby on Rails
Ruby:
• Objektorientierte Programmiersprache
• Interpretierte Sprache
• Angenehme, einfache Syntax
Ruby on Rails:
• Framework zur Webentwicklung
18. Framework
• Grundgerüst auf dem eine konkrete
Anwendung entwickelt werden kann
• Stellt Objekte / Funktionen zur Verfügung,
die vom Anwendungsentwickler
verwendet werden können
• Externe Module können
wiederverwendet werden (Plugins)
19.
20.
21.
22. Vorteile
• Immer wiederkehrende Probleme müssen
nicht neu gelöst werden
• Einheitliche Architektur erleichtert das
einlesen in neue Anwendungen
• Grundlegende Sicherheit bereits durch
das Framework vorgegeben (etwa das
Verhindern von SQL Injections)
23. Vorteile
• Abstraktion der Datenhaltung
(Austausch des DB-Systems ohne weiteres
denkbar)
• Trennung von Daten, Logik und
Darstellung (siehe MVC) -> getrennte
Erstellung durch jeweiliges Fachpersonal
möglich
26. Model View Controller
Vorteile
• Jede Komponente kann unabhängig von
Spezialisten gep egt werden
• Anwendung wird transparenter und exibler
Nachteil
• Bei sehr kleinen Anwendungen oft zu komplex
Erweiterung
• Routing bei Webapplikationen
27.
28.
29.
30. Datenmodell
Interaktion mit der Datenbank
create, read, update, delete (CRUD)
Beziehungen herstellen
(z.B. Projektobjekt hat viele Aufgabenobjekte)
Validierung von Eingabedaten
(z.B. Titel ist für ein Aufgabenobjekt erforderlich)
Datenlogik
(z.B. ein Projektobjekt gilt als abgeschlossen, wenn alle
zugeordneten Aufgabenobjekte als erledigt markiert
sind)
31. Ablau ogik
Interaktion mit den Datenmodellen
(z.B. lösche das Projekt mit der Nummer 27)
Bedingungen prüfen
(z.B. darf ein Benutzer ein Projekt löschen?)
Fehlerbehandlung
(z.B. konnte das Aufgabenobjekt gespeichert werden?)
Weiterleiten von Daten an die jeweilige Darstellung
(z.B. alle Projekte laden, die noch nicht abgeschlossen
sind. Danach generieren der Projektübersicht anstoßen)
32. Darstellung
Anzeige der vom Controller erhaltenen Daten
(z.B. übergebene Projekte als Tabelle ausgeben)
Verknüpfungen herstellen
(z.B. Links zum bearbeiten der Projekte)
Anzeigen von Fehlermeldungen
(z.B. warum konnte das Aufgabenobjekt nicht
gespeichert werden?)
Darstellen der Daten in einem bestimmten Format
(z.B. als HTML, XML oder PDF)