Ruby-Geekend: Unterschied zwischen den Versionen

Aus C3D2
Zur Navigation springen Zur Suche springen
(→‎Basics: Blöcke)
(Mehr)
Zeile 1: Zeile 1:
[[Benutzer:Astro|Astro]] und [[Benutzer:Sven|Sven]] wollen den [http://www.c3le.de/ C3LE] und andere von Ruby begeistern.
[[Benutzer:Astro|Astro]] und [[Benutzer:Sven|Sven]] wollen den [http://www.c3le.de/ C3LE] und andere von Ruby begeistern.
=Propaganda=
Angehen der Sprache mit ein paar Sachen im Hinterkopf:
*Im Gegensatz zu Perl eine angenehme Syntax mit wenigen Sonderzeichen
*Blöcke sind Argumente, ''obj.each { |e| ... }'' ist viel intuitiver als ''for e in obj''
*Alles ist ein Objekt, alles hat Methoden
*Selbst Klassenmethoden sind Instanzmethoden der Klasse (aber nicht des Objekts)


=Basics=
=Basics=
Zeile 6: Zeile 14:
*''irb'' vorführen (mit Readline-Support)
*''irb'' vorführen (mit Readline-Support)
*''ri'' zeigen
*''ri'' zeigen
*Alles ist ein Objekt, alles hat Methoden
*''printf-Debugging'' mit '''p'''
*Standardklassen: String, Array, Hash, Fixnum, TrueClass, FalseClass, NilClass, Class
*Standardklassen: String, Array, Hash, Fixnum, TrueClass, FalseClass, NilClass, Class
*Regexps sind auch Objekte
*Methoden, Klassen, Module
*Methoden, Klassen, Module
*Blöcke sind auch nur Parameter (''def myfunction(&block)'')
*Blöcke sind auch nur Parameter (''def myfunction(&block)'')
Zeile 19: Zeile 28:
  end
  end
*Exceptions
*Exceptions
**Auch Syntaxfehler sind Exceptions
**Wir fangen eine Exception und schicken die Details per Jabber
*Threads
*Threads


Zeile 25: Zeile 36:
*XML-Verarbeitung mit REXML
*XML-Verarbeitung mit REXML
*Serialisierung mit YAML
*Serialisierung mit YAML
*Verteilte Anwendungen mit Distributed Ruby
*Tests


=Kleinprojekte=
=Kleinprojekte=

Version vom 2. Januar 2006, 16:01 Uhr

Astro und Sven wollen den C3LE und andere von Ruby begeistern.

Propaganda

Angehen der Sprache mit ein paar Sachen im Hinterkopf:

  • Im Gegensatz zu Perl eine angenehme Syntax mit wenigen Sonderzeichen
  • Blöcke sind Argumente, obj.each { |e| ... } ist viel intuitiver als for e in obj
  • Alles ist ein Objekt, alles hat Methoden
  • Selbst Klassenmethoden sind Instanzmethoden der Klasse (aber nicht des Objekts)


Basics

Demonstration in VNC?

  • Ein bisschen nach Programming Ruby richten, mehr braucht man ja eigentlich nicht
  • irb vorführen (mit Readline-Support)
  • ri zeigen
  • printf-Debugging mit p
  • Standardklassen: String, Array, Hash, Fixnum, TrueClass, FalseClass, NilClass, Class
  • Regexps sind auch Objekte
  • Methoden, Klassen, Module
  • Blöcke sind auch nur Parameter (def myfunction(&block))
  • Rückgabewerte von Methoden müssen nicht mit return übergeben werden
  • Instanzmethoden, Klassenmethoden, Konstruktor
  • Methoden überschreiben, zum Beispiel:
class String
  def to_b
    self == "true"
  end
end
  • Exceptions
    • Auch Syntaxfehler sind Exceptions
    • Wir fangen eine Exception und schicken die Details per Jabber
  • Threads

Code-Walkthroughs

  • Ruby-MediaWiki als Beispiel für ein kleines, gut strukturiertes Projekt?
  • XML-Verarbeitung mit REXML
  • Serialisierung mit YAML
  • Verteilte Anwendungen mit Distributed Ruby
  • Tests

Kleinprojekte

Mal-schnell-was-coden ist mit Ruby möglich!

  • Mate-Bot für Jabber? (Astro)
  • Eine tolle Website mit Rails? (Sven)