Ruby on Rails
Erweitern
Ramon Wartala - Jan Krutisch
9. Juli 2007 - Lehmanns Fachbuchhandlung, Hamburg
Wer wir sind
• Jan Krutisch und Ramon Wartala
• Ehemalige Kollegen
• Gründer der deutschen Rails-UG
• Autoren von quot;Webanwendungen
mit Ruby on Railsquot;, Addison-Wesley
Wer wir sind
• Jan Krutisch und Ramon Wartala
• Ehemalige Kollegen
• Gründer der deutschen Rails-UG
• Autoren von quot;Webanwendungen
mit Ruby on Railsquot;, Addison-Wesley
Ramon Wartala
• Dipl.-Inform.
• IT-Leiter bei Orangemedia GmbH
• Einer der führenden Online-Vermarkter
• Autor zahlreicher Artikel und
Tagungsbeiträge rund um
Softwareentwicklung
Jan Krutisch
• Dipl.-Ing. (FH) Umwelttechnik
• Entwicklungsleiter für Rails-Projekte bei
mindmatters (www.mindmatters.de)
• artdoxa.com / familylounge.de
• Jahrelange Erfahrung als Programmierer im
Webbereich insbesondere in Java und PHP
Ruby on Rails Historie
• Juli 2004, David Heinemeier Hansson
veröffentlicht Ruby on Rails als quelloffenes
Framework für dir Erstellung von Web
Applikationen mit Ruby
• Version 1.0 im Dezember 2005
• Version 1.2 im Januar 2007
• Moderne Skriptsprache
• Anleihen aus Perl, Python, Smalltalk, ...
• Alles ist ein Objekt: 5.days.from_now
• Starke Introspektion (aka Reflection)
• Schwache Typisierung
• Closures, Blocks, Iteratoren, etc.
• ModelViewController-Architektur
• Convention over Configuration
• Don't Repeat Yourself
• Unterstützt die Testgetriebene Entwicklung
• Unterstützt agile Methoden
• Unterstützt Web2.0-Techniken (Ajax etc.)
Das Versprechen von Rails
• Sehr viel schnellere Entwicklung durch:
• Sehr viel weniger quot;Glue codequot;
• Konzentrierung auf Geschäftslogik
• Mehr Spaß am Entwickeln
• Höhere Produktivität
Nachteile von Rails
• Ruby ist nicht sehr performant
• Rails ist nicht sehr performant
• Kein „Allgemeinwissen“
• (Noch) keine quot;sichere Wahlquot; für Entscheider
Eigene Generatoren
• Rails Generatoren in
librails_generatorgenerators
components
• Eigene Generatorn in lib
generators
Eigene Generatoren
• Generatoren sind in Rails an vielen Stellen
• Eigener Scaffolder Generator wii_scaffolder
• Rails scaffolder als Ausgangspunkt
Generator-Anatomie
• Jeder Generator erbt von
Rails::Generator::Base bzw.
Rails::Generator::NamedBase
• Regeln zur Erstellung / Anpassung von
Dateien / Templates
• Implementierung der Methode manifest
wii_scaffold anwenden
• ruby script/generate wii_scaffolder Book
books list
• „Erzeuge mir mit Hilfe des wii_scaffold-
Generators ein Modell Book mit einem
Controller books und einer Action list“
Erweiterung verteilen
• Code und zusätzliche Dateien verteilen
• RubyGems als standardisiertes
Distributionswerkzeug
• Plugins auch direkt über SVN installierbar
ruby script/plugin install
http://svn.meinsubversion.com/mein/plugin