1 / 28

Ruby

Ruby. Einfach programmieren. Agenda des Vortrags. Historie Stamm der Sprache Facts Download Syntax Kontrollstrukturen Datenstrukturen Objektorientierung Anwendungsbereich Tools. Ruby – Historie. Wurzeln in Japan 1993 von Yukihiro Matsumoto entwickelt 1995 veröffentlicht

koto
Télécharger la présentation

Ruby

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Ruby Einfach programmieren

  2. Agenda des Vortrags • Historie • Stamm der Sprache • Facts • Download • Syntax • Kontrollstrukturen • Datenstrukturen • Objektorientierung • Anwendungsbereich • Tools Simon Tiffert

  3. Ruby – Historie • Wurzeln in Japan • 1993 von Yukihiro Matsumoto entwickelt • 1995 veröffentlicht • fortlaufende Entwicklung in Japan • lange Zeit nur japanische Dokumentation • Übersetzung der Dokumentation ins Englische erst zur Jahrtausendwende • in Japan schon verbreiteter als Perl und Python Simon Tiffert

  4. Ruby – Stamm der Sprache • Bisherige Skriptsprachen nicht objektorientiert genug • Smalltalk, Perl, Eiffel, Scheme, CLU, Sather und Lisp • Ruby > (Perl + Smalltalk) / 2 Perl • Reguläre Ausdrücke • Anweisungsmodifier • sehr schnell erlernbar Smalltalk • Alles ist ein Objekt • Closures (Blöcke) • Iteratoren • Late Bindings Simon Tiffert

  5. Ruby - Facts • konsequente Objektorientierung • Menschenorientierung • dynamische Sprache • reguläre Ausdrücke • Operatorenüberladung • Exception-Handling • Garbage Collector • Iteratoren Simon Tiffert

  6. Ruby - Download • Ruby • Linux • Sourcen http://www.ruby-lang.org • Windows • am einfachsten über den Ruby Installer (http://rubyforge.org/projects/rubyinstaller/) • Editoren / IDE • Emacs Plugin • RubyEclipse (http://rubyeclipse.sourceforge.net/) • FreeRIDE … Simon Tiffert

  7. Ruby – Syntax • Kommentarzeichen # • Variablen sind typenlos • kein Semikolon am Zeilenende erforderlich • Blockstruktur durch Schlüsselwörter • Funktionsaufruf ohne Klammern möglich • kein expliziter Rückgabewert Simon Tiffert

  8. Ruby - Variablenscopes • Geltungsbereich der Variabeln wird durch Prefix bestimmt • kein Prefix → lokale Variable (bis Blockende) • $ → globale Variable (Bsp.: $_) • @ → Membervariablen • @@ → Klassenvariablen • Konstanten beginnen mit einem Großbuchstaben Simon Tiffert

  9. Ruby - Kontrollstrukturen • if-Anweisung • case-Anweisung • ähnlich dem switch in anderen Sprachen • mehrere Werte und Wertebereiche erlaubt • Reguläre Ausdrücke erlaubt • kein "fall through" (break nicht nötig) • loop-Endlosschleife • while-Schleife • for-Schleife Simon Tiffert

  10. Ruby - Exceptions • Fehler- und Ausnahmebehandlung • ähnlich dem Mechanismus in Java (try-catch-finally) • in Ruby (begin-rescue-ensure-end) • Fehlerklassen können abgefangen werden und eine gezielte Fehlerbehandlung kann stattfinden • ensure-Teil, der immer durchlaufen wird, z.B. um Dateien bei Lesefehlern zu schließen Simon Tiffert

  11. Ruby – Reguläre Ausdrücke • spezifiert Muster auf Zeichen eines Strings • bekannt aus Perl • Syntax an Perl orientiert • Mächtiges Werkzeug zur Textsuche bzw. Textmanipulation • in Ruby objektorientiert, somit einfacher Zugriff auf die Elemente des Ergebnisses • Klassen RegExp und MatchData Simon Tiffert

  12. Ruby - Arrays • Datenstruktur, die nur Werte speichert • über Index zugänglich • Vielfältige Bearbeitungsmöglichkeiten • über Operatoren auch interessante Möglichkeiten • Mengenoperationen • Operatorenüberladung • Iteratoren ideal zum Durchlaufen von Arrays Simon Tiffert

  13. Ruby - Hashes • Zuordnung von Schlüssel und Wert • über Index oder Schlüssel zugänglich • Schlüssel und Index sind dabei Objekte • Verschiedene Operationen möglich • Durchlaufen mit Iteratoren Simon Tiffert

  14. Ruby - Dateien • Alle normalen Dateioperationen möglich • öffnen • lesen • schreiben • schließen • Auch Operationen auf dem Dateisystem möglich • Verzeichnisse erstellen, löschen, ausgeben Simon Tiffert

  15. Ruby - Objektorientierung • Klassendeklaration und Instantiierung • Deklaration • Attribute • Methoden • Initialisierung • Konstruktor • Zugriffsschutz • public • protected • private Simon Tiffert

  16. Ruby - Objektorientierung • Einfache Vererbung und Mix-Ins • Vererbung ähnlich wie in Java • Mix-Ins • Methoden mit Implementierung • Überladung • Methodenüberladung • Operatorüberladung • Introspection Simon Tiffert

  17. Ruby – Müllentsorgung • Garbage Collector zum Löschen nicht mehr benötigter Objekte • wirkt auf alle Objekte • "Mark and Sweep" - Algorithmus • keine Destruktoren notwendig Simon Tiffert

  18. Ruby - Codeblöcke • Closures (anonyme Blöcke) • anonymer Block besteht aus • Kennwort yield mindestens einmal innerhalb der Funktion • Aufruf der Funktion mit Übergabe eines Blocks • yield innerhalb der Funktion wird dann durch den Block ersetzt Simon Tiffert

  19. Ruby – Tiefere Techniken • Marshalling • Serialisierung in Java • umwandeln eines Objects in einen Bytestream • wichtig, wenn Daten übertragen oder abgespeichert werden sollen • Klasse Marshal (dump, load) • Threads • parallele Ausführung von Codeteilen • Threads.new Simon Tiffert

  20. Ruby - dynamisch im Web • CGI • dynamische Webseiten mittels CGI • Klasse cgi.rb • einfache Auswertung von Formularen • player=Miles • cgi['player'] • fertige Codeblöcke • cgi.textarea • Cookies • Sessions Simon Tiffert

  21. Ruby in HTML • bisher HTML in Ruby • jetzt Ruby in HTML • eruby • Vergleichbar mit JSP oder ASP • spezielle Tags, in denen Code steht • wenig Overhead an Code • ideal für HTML Dokumente mit wenig Code Simon Tiffert

  22. Ruby und C • Ruby durch C erweitern • Warum? • Laufzeitgewinn • Bibliotheken, die schon existieren, werden eingebunden • SWIG • Simplified Wrapper and Interface Generator • erstellt Schnittstelle von C und C++ zu anderen Programmiersprachen Simon Tiffert

  23. Ruby - Anwendungsbereich • Prototyping • einfache Syntax • leicht erlernbar • Textverarbeitung • Reguläre Ausdrücke • Einfache Stringverarbeitung durch Objekte • Cross-Plattform-Programmierung • Für viele Plattformen verfügbar Simon Tiffert

  24. Don't Ruby • Echtzeitanwendungen • keine Echtzeitgarantie • Hochleistungsanwendungen • aufgrund des Interpreters geringere Geschwindigkeit • Sicherheitsanwendungen • nicht zu gebrauchen für z.B. Flugzeugsteuerung oder ähnliche Systeme, da unter anderem keine Typsicherheit Simon Tiffert

  25. RubyDoc • Dokumentationsgenerator ähnlich JavaDoc • liest Informationen aus Quellcode und speziellen Kommentaren, um daraus eine Dokumentation zu generieren • Schlüsselwörter • @author Name • @version Nummer • @param Parameter • @return Rückgabewert Simon Tiffert

  26. RubyDoc - Codebeispiel ## # Diese Datei wurde am … erstellt. # # @author Simon Tiffert # @version 1.0 ## # Eine Klasse, die zur Zeit leer ist # class Klasse ## # A constructor. def initialize ... Simon Tiffert

  27. RubyUnit • Rahmenwerk zum Testen von Funktionen • gleiche Funktionsweise wie JUnit • Zusammenfassung von Suiten • assert Kommandos zum Überprüfen von Anweisungen • Beeinflussung von bestehendem Code kann bei Änderungen überprüft werden • Effizientes Programmieren möglich Simon Tiffert

  28. Vortragsende Fragen? Simon Tiffert

More Related