Upload
sara-armes
View
106
Download
0
Embed Size (px)
Citation preview
Ruby on Rails im Überblick
Was ist Ruby on Rails? RoR ist ein Framework zur einfacheren
Entwicklung, Nutzung und Wartung von Web Applikationen
Besteht seit 2005 und wurde vorrangig für sogenannte Web 2.0 Applikationen entwickelt
Rails ist in der objektorientierten Skriptsprache Ruby geschrieben
Rails beinhaltet Testunterstützung Rails Applikationen sind in der Model-View-
Controller Architektur implementiert Ziel von Rails: keine Wiederholungen (Don‘t
repeat yourself)2
Models, Views, Controllers (MVC) Architektur von Rails Applikationen Model: Die zugrunde liegende Datenstruktur-
üblicherweise eine relationale Datenbank View: Das User Interface
Sicht auf Daten des zugrunde liegenden Models Bietet die Schnittstelle zu User Interaktionen KEINE Verarbeitung der Daten
Controller: Steuert die Applikation Schnittstelle zwischen Webbrowser, View und Model Interagiert mit dem Model Gibt die entsprechende View an den User aus
3
MVC Architektur
4
Hört sich gut an, ABER... ... Wie sieht das in der Entwicklungsumgebung
aus?
5
Objektorientierung vs. Datenbanken Vereinung von objektorientierter
Programmierung und relationale Datenbanken schwierig Objekte Daten und Operationen Datenbanken Sets von Daten bzw. Werten
2 Lösungsansätze Datenbankzentriertes Programmieren
(Datenbanklogik als der Applikationslogik – zB in PHP üblich) Bsp: select * from User where name is
‘supertopcheckerbunny‘; Object-Relational Mapping (Mapping zwischen
Datenbank Tabellen und Klassen)
6
Object-Relational Mapping (ORM) Tabellen auf Klassen (zB Tabelle User auf Klasse
User) Tabellenzeilen auf Objekte einer Klasse (zB ein
Usereintrag) Tabellenspalten auf Attribute des Objekts (zB
Username)
Klassenmethoden, um Operationen in der Tabelle durchzuführen (zB Hinzufügen eines Users)
Instanzmethoden, um Operationen in einer Tabellenzeile durchzuführen (zB Ändern des Passworts eines Users)
7
ORM in Rails Rails benutzt Active Record als ORM Layer Minimiert den Konfigurationsaufwand für
Entwickler Übernimmt die Handhabung der darunter
liegenden Datenbank Validiert Datenmodell und übernimmt die
Fehlerhandhabung ...
Bsp User.find_by_name ‘supertopcheckerbunny‘
8
Rails ist agil Individuals and interactions over processes and
tools Working software over comprehensive
documentation Customer collaboration over contract negotiation Responding to change over following a plan
Das Ziel ist, schnell eine Version funktionierender Software zu haben und diese dann stetig anzupassen bis sie schließlich den Anforderungen/Wünschen entspricht
9
Klingt wieder gut, ABER ... ... Wie setzt man das um?
zB mit Scaffolding „Gerüst“, das ein schnelles Erstellen kompletter
Komponenten ermöglicht, die funktionieren Inkl. Model , Views, Controller Eignet sich gut für ein erstes Prototyping Prototyp wird dann inkrementell erweitert
10
Scaffolding Beispiel Einfache Bücherverwaltung (Titel, Autor,
Beschreibung) Hinzufügen Editieren Löschen Bücherliste anzeigen Buchdetails anzeigen In Datenbank verwaltet Unit und funktionale Tests
In weniger als 5 Minuten?
11
Rails Vorteile Mehr an Menschen als an Maschinen orientiert
– führt die sehr gute Lesbarkeit von Ruby fort Rails-basierte Web-Anwendungen nehmen den
Entwicklern Routine-Arbeit ab Rails verspricht 10-mal schnellere Ergebnisse
als vergleichbare Java-Frameworks Rails ist auf verschiedenen Webservern
einsetzbar Rails unterstützt agile Entwicklung – schnelles
Erstellen funktionierender Prototypen Einfache Wartbarkeit
12
Rails Nachteile Völlige Abhängigkeit vom Framework Je spezieller die Webanwendung, desto
weniger nutzbar sind die Entwicklungshilfen Applikations- und Datenbankentwicklung in
Unternehmen meist getrennt kann zu Problemen führen
Hosting – Verbreitung noch nicht so hoch
13
Weiterführende Literatur http://rubyonrails.org Thomas, Dave/ Hansson, David H. et al: Agile
Web Development with Rails. Thomas, Dave et al: Programming Ruby 1.9.
The Pragmatic Programmers‘ Guide.
14