240 likes | 388 Views
Praktische Informatik Prof. Dr. Lutz Wegner. Seminar Internet- Technologie ( Skriptsprachen ) Thema : Ruby (on Rails) Mohamed El Bahri ( Sommersemester 2009). Inhalt. Geschichte, Eigenschaften
E N D
PraktischeInformatikProf. Dr. Lutz Wegner Seminar Internet-Technologie (Skriptsprachen) Thema: Ruby (on Rails) Mohamed El Bahri (Sommersemester 2009)
Inhalt • Geschichte, Eigenschaften • Anwendungsbereiche, Plattformen • Sprachgrundlagen • Vorteile und Nachteile • Ruby on Rails • Versionen und Philosophie • Das Modell-View-Controller(MVC) • E-Mail-Validierung
Was ist Ruby ? • Ruby ist eine sehr mächtige objektorientierte Skriptsprachemit einer einfachen Syntax. • Die Sprache ist sehr vielseitig einsetzbar: von einfachen Skripten zum Filtern von Textdateien bis zum objektorientierten Programme, von grafischen bis zu Webanwendungen. • Ruby Programme werden nicht (wie z.B. in Java) in ein Binärformat übersetzt, sondern direkt von einem Interpreter verarbeitet. • Ruby-Programme werden in Dateien mit der Endung .rbgespeichert.
Geschichte • Der Japanische Programmierer Yukihiro Matsumoto hat die Sprache entwickelt und wurde im Jahr 1995 veröffentlicht. • Sie steht unter der GNU General Public License (GPL). • Als das erste englischsprachige Buch im Jahr 2000 erschienen, wurde die Sprache international verbreitet. • Erst in den zwei letzten Jahren wurde die Sprache populär, da das Framework Ruby on Rails die schnelle Entwicklung robuster und sicherer Webanwendungen ermöglicht. • Ruby wird immer weiterentwickelt. Eine Gruppe, die über die ganze Welt verteilt, arbeitet an Erweiterungen und an der Dokumentation. • Die aktuelle Version ist 1.9.1
Eigenschaften von Ruby Ruby besitzt die folgenden Eigenschaften: • Konsequent: Eine kleine Menge von Regeln sollten die ganze Sprache definieren. • Kompakt:Es gibt keine überflüssigen Sprachelemente. • Flexibel:Eine Sprache sollte genug Spielraum bieten, so dass man alles mit ihr machen kann. • Anpassungsfähig:Programmiersprachen sollen Menschen helfen, sich auf das Problem zu konzentrieren und nicht mit der Sprache zu kämpfen.
Anwendungsbereiche Ruby wird in vielen Bereichen gesetzt: • Prototyping • Webanwendungen (Online-Systeme, Wikis, Foren) • auch grafische Systeme (z. B. mit Tk, GTK, Fox) • Datenverarbeitung/-Analyse • Client-Server-Systeme
Plattformen Im Unix-Bereich werden folgende Betriebssysteme unterstützt: • Linux(alle Distributionen und viele liefern sogar eine Version mit) • Mac OS X(enthält Ruby ebenfalls ab Werk) • FreeBSD, OpenBSD und NetBSD • Sun Solaris und viele andere Unix-Varianten Ruby ist für folgende Nicht-Unix-Plattformen verfügbar: • Alle Windows-Versionen ab Windows 95 und NT 4.0 • MS-DOS, und damit auch die klassischen Windows-Versionen bis 3.11 • Klassisches Mac OS bis Version 9 • IBM OS/2
Beispiel (Hello) puts "Hallo Welt!" jetzt = Time.new puts "Es ist jetzt #{jetzt}." puts "wie heissen Sie?" name = gets name.chomp! puts "Hallo #{name}!"
Sprachgrundlagen • Kommentare: wenn eine Zeile mit (#) beginnen, gilt diese als Kommentar und wird von Ruby-Interpreter ignoriert. Wenn längere Erklärungspassagen eingefügt werden soll, die ebenfalls vom Interpreter ignoriert werden sollen, können diese zwischen =begin und =end platzieren. • Variablen: In Ruby wird eine Variable ganz einfach erzeugt, indem der Variable einen Anfangswert zugewiesen wird. Bsp. A = 1 oder zahl = 7 * 3. Soll eine Variable unabhängig von allen Gültigkeitsbereichen im gesamten Skript gelten, wird vor dem Namen ein Dollarzeichen ($) gesetzt. • Konstanten: wenn ein Bezeichner aus Großbuchstaben (und Ziffern) besteht, wird keine Variable definiert, sondern eine Konstante. Bsp. DM = 1,95583 • Arrays: Ein Array enthält beliebig viele Werte beliebiger Typen, die über den Variablennamen angesprochen wird.
Sprachgrundlagen • Reguläre Ausdrücke. • Arithmetische Operationen: + , - , * , / , % • Vergleichsoperationen: == , != , < , > , <= , >= • Logische Operationen: ││ , && , ! • Methoden: können vordefinierte Methoden sein als auch selbst geschriebenen. • Kontrollstrukturen: • if…else • case-when • while • until • loop do • for-Schleife
Vorteile und Nachteile Ruby hat die folgende Vorteile im Vergleich mit den anderen Skriptsprachen: • vergleichsweise einfach und schnell zu erlernen • gut lesbarer, verständlicher Code und Plattform-unabhängig • großer Funktionsumfang: Threads, reguläreAusdrücke, Design Patterns, ... • große Bibliothek: XML, HTTP, GTK, OpenSSL, Datenbanken, ... • gute, umfangreiche Dokumentation , hilfsbereite Community • Wird bis heute an der Sprache weiterentwickelt Ruby hat die folgende Nachteile: • als interpretierte Sprache natürlich etwas langsamer • Fehler (ohne Testen) erst zur Ausführungszeit erkennbar
Ruby on Rails • Ruby on Rails, kurz Rails, früher auch oft kurz RoR. • David Heinemeier Hansson hat die Sprache entwickelt. Es wurde im Juli 2004 zum ersten Mal der Öffentlichkeit vorgestellt. • Rails ist ein in der Programmiersprache Ruby geschriebenes Framework, das die Entwicklung, Verbreitung und Wartung von Web-Anwendungen vereinfacht. • Ruby on Rails setzt das Model-View-Controller (MVC) für das Web um. • Rails-Anwendungen werden in Ruby geschrieben.
Versionen • Version 1.0 Ursprünglich wurde Rails für eine Webapplikation namens Basecamp entwickelt. Im Juli 2004 wurde zum ersten Mal der Öffentlichkeit vorgestellt. Die Version 1.0 wurde am 13. Dezember 2005 fertiggestellt. • Version 1.1 Schon am 28. März 2006 folgte die Version 1.1. Neu war: • RJS (Ruby on Rails JavaScript Templates) ermöglicht Tamplates für JavaScript zu erstellen. • Die Performance wurde verbessert. • Version 1.2 Am 19. Januar 2007 erschien die Version 1.2. • Routing nach MIME-Type und ein Interface zur sicheren Behandlung von UTF-8-Strings.
Versionen • Version 2.0 Am 7. Dezember 2007 erschien die Version 2.0. • Version 2.1 Am 1. Juni 2008 erschien die Version 2.1. • Version 2.2 Die Version 2.2 erschien am 21. November 2008. Rails ist ab dieser Version kompatibel zu Ruby 1.9 und Jruby. • Version 2.3 Die Version 2.3 erschien am 15. März 2009. • Planung für Version 3 Am 23. Dezember 2008 kündigte David Heinemeier Hansson an, dass für die Version 3.0 geplant sei.
Rails-Philosophie Als Grundprinzipien von Rails gelten „Don’trepeatyourself“ (Wiederhole dich nicht) und „Conventionoverconfiguration“ (Konvention über Konfiguration). • Wiederhole dich nicht: Jede Information sollte nur ein einziges Mal vorhanden sein. So reicht es in Rails beispielsweise dank ActiveRecord, die Spalten einer Tabelle in der Datenbank festzulegen. Anstatt diese Informationen noch ein zweites mal im Quellcode oder einer Konfigurationsdatei kodiert zu verlangen, liest ActiveRecord diese Informationen direkt aus der Datenbank. • Konvention über Konfiguration: Ein klarer Satz von Konventionen bestimmt die meisten Beziehungen zwischen Modell, View und Controller.
Das Modell-View-Controller(MVC) • Die MVC-Idee wurde ursprünglich im Zusammenhang mit Smalltalk für lokale Anwendungen mit graphischer Oberfläche geprägt. • Die Anwendungen werden nach dem Modell in die folgenden drei Komponenten auf: • Das Model • Die View • Der Controller
Das Model • Das Model (auf Deutsch Modell) enthält die Datenstrukturen. Es sind nicht nur ein Paar Strings, Zahlen oder Arrays, sondern die Softwaretechnische Abbildung der Daten für Geschäftsabläufe und andere Transaktionen. • Da die konkreten Daten einer Instanz jedoch nur so lange existieren, wie ein Programm läuft, müssen sie irgendwo dauerhaft gespeichert werden. • Ruby on Rails verwendet daher einen cleveren Trick: Die Klassenstruktur wird vollautomatisch mit passenden Datenbanktabellen verknüpft. • Wenn beispielsweise ein Rabatt nicht auf Bestellungen mit einem Wert unter 20 Euro angewendet werden soll, dann sorgt das Modell für die Einhaltung dieser Einschränkung.
Die View und der Controller • Die View (Ansicht, Präsentation) bildet die Benutzeroberfläche der Anwendung. • Sie präsentiert die Daten des Modells in frei wählbarer Form und stellt die Steuerelemente zum Hinzufügen, Ändern oder Entfernen bereit. • Rails muss in der Regel HTML-basierte Views mit Variablen Daten erzeugen und verwendet e-Ruby-Vorlagedateien (.rhtml) als Templates. • Der Controller (Steuerung) bildet die programmierte Verbindung zwischen Modell und View. Er enthält beispielsweise Methoden zum Durchsuchen und zur Filterung der Daten aus dem Model. • Er nimmt auch Befehle aus den Steuerelementen der Benutzeroberfläche entgegen und setzt sie als Änderungen im Datenbestand des Modells um.
Verzeichnisstruktur app controllers helpers models views components config environments public images javascripts stylesheets script performance process test fixtures function integration mocks development test unit
Verzeichnisstruktur • app : enthält die Komponenten der Eigentlichen Anwendung. Unterteilt sich in models, views und controllers. • config: enthält Konfigurationsdateien • script: enthält einige vorgefertigte Hilfsskripten, die bei der Entwicklung helfen sollen. • public: enthält eine CGI-Konfiguration. Mit ihrer Hilfe kann die Ruby on Rails-Anwendungen praktisch von jedem CGI-fähigen Webserver bereitgestellt werden. • test: ein beliebtes Mittel zum automatisierten testen objektorientierter Programme.
Ressourcen • www.rubyonrails.com Auf dieser offiziellen Rails-Webseite finden Sie Erfahrungsberichte, Dokumentation, community-Seiten. Für Anfänger sind auch Filme, in denen die Programmierung von Rails-Anwendungen vorgeführt wird. • www.ruby-lang.org/en/ Die Ruby-Homepage. Hier wird die neuste Version zum Download angeboten. • www.rubyforen.de/ umfangreiches deutschsprachiges Diskussionsforum zu den verschiedensten Ruby-Themen.
Quellen • Praxiswissen Ruby, von Sascha Kersken • Webanwendungen mit Ruby on Rails, von Ramon Wartala und Jan Krutisch • Agile Webentwicklung mit Rails, von Dave Thomas und David Heinemeier Hansson • http://www.approximity.com/rubybuch2/ • http://de.wikipedia.org/wiki/Ruby_(Programmiersprache) • http://de.wikipedia.org/wiki/Ruby_on_Rails
Danke für eure Aufmerksamkeit Fragen???