11. Jenseits dieses Tutorials

Also, wohin können wir jetzt gehen? Wenn Sie eine Frage haben, wen können Sie fragen? Was, wenn Sie möchten, dass Ihr Programm eine Webseite öffnet, eine E-Mail sendet oder die Größe eines digitalen Fotos ändert? Nun, es gibt viele, viele Orte, um Hilfe für Ruby zu finden. Leider ist diese Antwort nicht sehr nützlich, oder? :-)

Für mich gibt es wirklich nur drei Orte, an denen ich nach Hilfe für Ruby suche. Wenn es eine kleine Frage ist und ich denke, ich kann alleine experimentieren, um die Antwort zu finden, benutze ich irb. Wenn es eine größere Frage ist, schaue ich in meinem Pickaxe nach. Und wenn ich es einfach nicht bewältigen kann, dann bitte ich auf der ruby-talk Mailingliste um Hilfe.

IRB: Interaktives Ruby

Wenn Sie Ruby installiert haben, dann haben Sie irb installiert. Um es zu benutzen, gehen Sie einfach zu Ihrer Eingabeaufforderung und geben Sie irb ein. Wenn Sie in irb sind, können Sie jeden Ruby-Ausdruck eingeben, den Sie wollen, und er wird seinen Wert zurückgeben. Geben Sie 1 + 2 ein, und er wird 3 zurückgeben. (Beachten Sie, dass Sie puts nicht verwenden müssen). Es ist eine Art riesiger Ruby-Taschenrechner. Wenn Sie fertig sind, geben Sie einfach exit ein.

Es gibt viel mehr zu irb als das, aber Sie können alles darüber im Pickaxe lernen.

Der Pickaxe: "Programming Ruby"

Das Ruby-Buch, das Sie auf keinen Fall verpassen dürfen, ist "Programming Ruby, The Pragmatic Programmer's Guide", von Andrew Hunt und David Thomas (den Pragmatic Programmers). Obwohl ich die 2. Auflage dieses ausgezeichneten Buches, das alle neuesten Ruby-Funktionen abdeckt, wärmstens empfehle, können Sie auch eine etwas ältere (aber immer noch relevante) kostenlose Online-Version erhalten. (Tatsächlich, wenn Sie die Windows-Version von Ruby installiert haben, haben Sie sie bereits).

Sie können praktisch alles über Ruby, von grundlegend bis fortgeschritten, in diesem Buch finden. Es ist leicht zu lesen; es ist umfassend; es ist fast perfekt. Ich wünschte, jede Programmiersprache hätte ein Buch dieses Kalibers. Im hinteren Teil des Buches finden Sie einen riesigen Abschnitt, der jede Methode jeder Klasse detailliert beschreibt, erklärt und Beispiele gibt. Ich liebe dieses Buch einfach!

Es gibt unzählige Orte, an denen Sie es bekommen können (einschließlich der eigenen Website der Pragmatic Programmers), aber mein Lieblingsort ist ruby-doc.org. Diese Version hat einen schönen Index sowie einen Querverweis (ruby-doc.org hat viele andere großartige Dokumentationen, wie die Core API und die Standardbibliothek... Im Grunde dokumentiert es alles, was mit Ruby geliefert wird. Schauen Sie es sich an.).

Und warum heißt es "der Pickaxe" (Spitzhacke)? Nun, es gibt ein Bild einer Spitzhacke auf dem Cover des Buches. Es ist ein alberner Name, denke ich, aber er ist hängen geblieben.

Ruby-Talk: Eine Ruby-Mailingliste

Sogar mit irb und dem Pickaxe können Sie es manchmal vielleicht nicht alleine herausfinden. Oder vielleicht möchten Sie wissen, ob jemand bereits getan hat, was Sie tun, um zu sehen, ob Sie es verwenden können. In diesen Fällen ist der beste Ort ruby-talk, die Ruby-Mailingliste. Sie ist voll von freundlichen, klugen, hilfsbereiten Menschen. Um mehr darüber zu erfahren oder sich anzumelden, schauen Sie hier.

WARNUNG: Es gibt jeden Tag ein großes E-Mail-Aufkommen auf der Liste. Ich habe eine Regel in meinem E-Mail-Client erstellt, damit nicht alles im selben Ordner bleibt. Aber wenn Sie das nicht tun wollen, müssen Sie nicht! Die ruby-talk Mailingliste wird auf der comp.lang.ruby Newsgroup gespiegelt, sodass Sie die Nachrichten dort sehen können. Kurz gesagt, Sie werden dieselben Nachrichten sehen, aber auf eine etwas andere Weise.

Tim Toady

Ich habe versucht, Sie vor etwas zu schützen, auf das Sie bald stoßen werden, es ist das Konzept von TMTOWTDI (ausgesprochen "Tim Toady"): There's More Than One Way To Do It (Es gibt mehr als einen Weg, es zu tun).

Nun werden Ihnen einige sagen, dass TMTOWTDI eine wunderbare Sache ist, während andere ganz anders darüber denken. Ich habe im Allgemeinen keine starken Gefühle zu diesem Thema, aber ich denke, es ist eine schreckliche Art, jemandem das Programmieren beizubringen. (Als ob das Lernen eines Weges, etwas zu tun, nicht schon herausfordernd und verwirrend genug wäre!).

Da Sie nun jedoch über dieses Tutorial hinausgehen, werden Sie viel diversen Code sehen. Zum Beispiel fallen mir mindestens fünf andere Möglichkeiten ein, einen String zu erstellen (außer Text mit einfachen Anführungszeichen zu umschließen), und jede von ihnen funktioniert ein wenig anders. Ich habe Ihnen nur die einfachste der sechs gezeigt.

Und als wir über Verzweigungen sprachen, habe ich Ihnen if gezeigt, aber ich habe Ihnen unless nicht gezeigt. Ich lasse Sie das in irb herausfinden.

Eine weitere nette Abkürzung, die Sie mit if, unless, while verwenden können, ist die schicke einzeilige Version:

# Diese Wörter stammen aus einem Programm, das ich geschrieben habe, um
# englisches Kauderwelsch zu generieren. Cool, oder?
puts 'grobably combergearl kitatently thememberate' if 5 == 2**2 + 1**1
puts 'enlestrationshifter supposine follutify blace' unless 'Chris'.length == 5

Und schließlich gibt es noch eine andere Möglichkeit, Methoden zu schreiben, die Blöcke (keine Procs) annehmen. Wir haben das gesehen, wo wir den Block genommen und ihn mit dem &block-Trick in der Parameterliste bei der Definition der Funktion in eine Proc verwandelt haben. Dann verwenden Sie block.call, um den Block aufzurufen. Nun, es gibt einen kürzeren Weg (obwohl ich ihn persönlich verwirrender finde). Anstatt dies:

def machZweimal(&block)
  block.call
  block.call
end

machZweimal do
  puts 'murditivent flavitemphan siresent litics'
end

...machen Sie das:

def machZweimal
  yield
  yield
end

machZweimal do
  puts 'buritiate mustripe lablic acticise'
end

Ich weiß nicht... Was denken Sie? Vielleicht liegt es nur an mir, aber... yield?! Wenn es so etwas wie call_the_hidden_block oder so ähnlich wäre, würde es für mich viel mehr Sinn machen. Viele Leute sagen, dass yield für sie Sinn macht. Aber ich schätze, das ist der Zweck von TMTOWTDI: Sie machen es auf ihre Weise, und ich mache es auf meine.

DAS ENDE

Nutzen Sie es für das Gute und nicht für das Böse. :-) Und wenn Sie dieses Tutorial hilfreich fanden (oder verwirrend, oder wenn Sie einen Fehler gefunden haben), lassen Sie es mich wissen!