Praktische Informatik Prof. Dr. Lutz Wegner Seminar Internet-Technologie (Skriptsprachen) Thema:...

24
Praktische Informatik Prof. Dr. Lutz Wegner Seminar Internet-Technologie (Skriptsprachen) Thema: Ruby (on Rails) Mohamed El Bahri (Sommersemester 2009) 1 22.06.22

Transcript of Praktische Informatik Prof. Dr. Lutz Wegner Seminar Internet-Technologie (Skriptsprachen) Thema:...

Page 1: Praktische Informatik Prof. Dr. Lutz Wegner Seminar Internet-Technologie (Skriptsprachen) Thema: Ruby (on Rails) Mohamed El Bahri (Sommersemester 2009)

Praktische Informatik Prof. Dr. Lutz Wegner

Seminar Internet-Technologie (Skriptsprachen)

Thema:

Ruby (on Rails)

Mohamed El Bahri (Sommersemester 2009)

111.04.23

Page 2: Praktische Informatik Prof. Dr. Lutz Wegner Seminar Internet-Technologie (Skriptsprachen) Thema: Ruby (on Rails) Mohamed El Bahri (Sommersemester 2009)

Inhalt

1. Geschichte, Eigenschaften

2. Anwendungsbereiche, Plattformen

3. Sprachgrundlagen

4. Vorteile und Nachteile

5. Ruby on Rails

6. Versionen und Philosophie

7. Das Modell-View-Controller(MVC)

8. E-Mail-Validierung

211.04.23

Page 3: Praktische Informatik Prof. Dr. Lutz Wegner Seminar Internet-Technologie (Skriptsprachen) Thema: Ruby (on Rails) Mohamed El Bahri (Sommersemester 2009)

Was ist Ruby ?

• Ruby ist eine sehr mächtige objektorientierte Skriptsprache mit 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 .rb gespeichert.

11.04.23 3

Page 4: Praktische Informatik Prof. Dr. Lutz Wegner Seminar Internet-Technologie (Skriptsprachen) Thema: Ruby (on Rails) Mohamed El Bahri (Sommersemester 2009)

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

411.04.23

Page 5: Praktische Informatik Prof. Dr. Lutz Wegner Seminar Internet-Technologie (Skriptsprachen) Thema: Ruby (on Rails) Mohamed El Bahri (Sommersemester 2009)

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.

511.04.23

Page 6: Praktische Informatik Prof. Dr. Lutz Wegner Seminar Internet-Technologie (Skriptsprachen) Thema: Ruby (on Rails) Mohamed El Bahri (Sommersemester 2009)

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

11.04.23 6

Page 7: Praktische Informatik Prof. Dr. Lutz Wegner Seminar Internet-Technologie (Skriptsprachen) Thema: Ruby (on Rails) Mohamed El Bahri (Sommersemester 2009)

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

11.04.23 7

Page 8: Praktische Informatik Prof. Dr. Lutz Wegner Seminar Internet-Technologie (Skriptsprachen) Thema: Ruby (on Rails) Mohamed El Bahri (Sommersemester 2009)

Beispiel (Hello)

puts "Hallo Welt!"

jetzt = Time.new

puts "Es ist jetzt #{jetzt}."

puts "wie heissen Sie?"

name = gets

name.chomp!

puts "Hallo #{name}!"

11.04.23 8

Page 9: Praktische Informatik Prof. Dr. Lutz Wegner Seminar Internet-Technologie (Skriptsprachen) Thema: Ruby (on Rails) Mohamed El Bahri (Sommersemester 2009)

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.

11.04.23 9

Page 10: Praktische Informatik Prof. Dr. Lutz Wegner Seminar Internet-Technologie (Skriptsprachen) Thema: Ruby (on Rails) Mohamed El Bahri (Sommersemester 2009)

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 whileuntil loop dofor-Schleife

11.04.23 10

Page 11: Praktische Informatik Prof. Dr. Lutz Wegner Seminar Internet-Technologie (Skriptsprachen) Thema: Ruby (on Rails) Mohamed El Bahri (Sommersemester 2009)

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äre Ausdrü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

11.04.23 11

Page 12: Praktische Informatik Prof. Dr. Lutz Wegner Seminar Internet-Technologie (Skriptsprachen) Thema: Ruby (on Rails) Mohamed El Bahri (Sommersemester 2009)

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.

11.04.23 12

Page 13: Praktische Informatik Prof. Dr. Lutz Wegner Seminar Internet-Technologie (Skriptsprachen) Thema: Ruby (on Rails) Mohamed El Bahri (Sommersemester 2009)

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.

11.04.23 13

Page 14: Praktische Informatik Prof. Dr. Lutz Wegner Seminar Internet-Technologie (Skriptsprachen) Thema: Ruby (on Rails) Mohamed El Bahri (Sommersemester 2009)

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.

11.04.23 14

Page 15: Praktische Informatik Prof. Dr. Lutz Wegner Seminar Internet-Technologie (Skriptsprachen) Thema: Ruby (on Rails) Mohamed El Bahri (Sommersemester 2009)

Rails-Philosophie

Als Grundprinzipien von Rails gelten „Don’t repeat yourself“ (Wiederhole dich nicht) und „Convention over configuration“ (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.

11.04.23 15

Page 16: Praktische Informatik Prof. Dr. Lutz Wegner Seminar Internet-Technologie (Skriptsprachen) Thema: Ruby (on Rails) Mohamed El Bahri (Sommersemester 2009)

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

11.04.23 16

Page 17: Praktische Informatik Prof. Dr. Lutz Wegner Seminar Internet-Technologie (Skriptsprachen) Thema: Ruby (on Rails) Mohamed El Bahri (Sommersemester 2009)

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.

11.04.23 17

Page 18: Praktische Informatik Prof. Dr. Lutz Wegner Seminar Internet-Technologie (Skriptsprachen) Thema: Ruby (on Rails) Mohamed El Bahri (Sommersemester 2009)

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.

11.04.23 18

Page 19: Praktische Informatik Prof. Dr. Lutz Wegner Seminar Internet-Technologie (Skriptsprachen) Thema: Ruby (on Rails) Mohamed El Bahri (Sommersemester 2009)

Verzeichnisstrukturapp

controllers

helpers

models

views

components

config

environments

public

images

javascripts

stylesheets

script

performance

process

test

fixtures

function

integration

mocks

development

test

unit

11.04.23 19

Page 20: Praktische Informatik Prof. Dr. Lutz Wegner Seminar Internet-Technologie (Skriptsprachen) Thema: Ruby (on Rails) Mohamed El Bahri (Sommersemester 2009)

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.

11.04.23 20

Page 21: Praktische Informatik Prof. Dr. Lutz Wegner Seminar Internet-Technologie (Skriptsprachen) Thema: Ruby (on Rails) Mohamed El Bahri (Sommersemester 2009)

11.04.23 21

E-Mail-Adresse Validierung

Page 22: Praktische Informatik Prof. Dr. Lutz Wegner Seminar Internet-Technologie (Skriptsprachen) Thema: Ruby (on Rails) Mohamed El Bahri (Sommersemester 2009)

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.

11.04.23 22

Page 23: Praktische Informatik Prof. Dr. Lutz Wegner Seminar Internet-Technologie (Skriptsprachen) Thema: Ruby (on Rails) Mohamed El Bahri (Sommersemester 2009)

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

11.04.23 23

Page 24: Praktische Informatik Prof. Dr. Lutz Wegner Seminar Internet-Technologie (Skriptsprachen) Thema: Ruby (on Rails) Mohamed El Bahri (Sommersemester 2009)

Danke für eure Aufmerksamkeit

Fragen???

11.04.23 24