11. Au-delà de ce Tutoriel
Alors, où pouvons-nous aller maintenant ? Si vous avez une question, à qui pouvez-vous demander ? Et si vous voulez que votre programme ouvre une page Web, envoie un e-mail ou redimensionne une photo numérique ? Eh bien, il y a beaucoup, beaucoup d'endroits où trouver de l'aide pour Ruby. Malheureusement, cette réponse n'est pas très utile, n'est-ce pas ? :-)
Pour moi, il n'y a vraiment que trois endroits où je cherche de l'aide avec Ruby. Si c'est une petite question et que je pense pouvoir expérimenter par moi-même pour trouver la réponse, j'utilise irb. Si c'est une question plus importante, je cherche dans mon Pickaxe. Et si je n'y arrive tout simplement pas, alors je demande de l'aide sur la liste de diffusion ruby-talk.
IRB : Ruby Interactif
Si vous avez installé Ruby, alors vous avez installé irb. Pour l'utiliser, allez simplement à votre invite de commande et tapez irb. Lorsque vous êtes dans irb, vous pouvez taper n'importe quelle expression ruby que vous voulez, et elle renverra sa valeur. Tapez 1 + 2, et cela renverra 3. (Notez que vous n'avez pas besoin d'utiliser puts). C'est un peu comme une calculatrice Ruby géante. Lorsque vous avez terminé, tapez simplement exit.
Il y a beaucoup plus à propos de irb que cela, mais vous pouvez tout apprendre à ce sujet dans le Pickaxe.
Le Pickaxe : "Programming Ruby"
Le livre sur Ruby que vous ne pouvez absolument pas manquer est "Programming Ruby, The Pragmatic Programmer's Guide", par Andrew Hunt et David Thomas (les Programmeurs Pragmatiques). Bien que je recommande vivement la 2e édition de cet excellent livre, couvrant toutes les dernières fonctionnalités de Ruby, vous pouvez également obtenir une version en ligne gratuite un peu plus ancienne (mais toujours pertinente). (En fait, si vous avez installé la version Windows de Ruby, vous l'avez déjà).
Vous pouvez trouver pratiquement tout sur Ruby, du basique à l'avancé, dans ce livre. C'est facile à lire ; c'est complet ; c'est presque parfait. J'aimerais que chaque langage (de programmation) ait un livre de ce calibre. À la fin du livre, vous trouverez une énorme section détaillant chaque méthode de chaque classe, l'expliquant et donnant des exemples. J'adore simplement ce livre !
Il y a d'innombrables endroits où vous pouvez l'obtenir (y compris le site des Programmeurs Pragmatiques), mais mon endroit préféré est ruby-doc.org. Cette version a un bon index, ainsi qu'une référence croisée (ruby-doc.org a beaucoup d'autres excellentes documentations, telles que l'API Core et la Bibliothèque Standard... Fondamentalement, cela documente tout ce qui vient avec Ruby. Vérifiez-le.).
Et pourquoi s'appelle-t-il "le Pickaxe" (la pioche) ? Eh bien, il y a une image d'une pioche sur la couverture du livre. C'est un nom idiot, je suppose, mais c'est resté.
Ruby-Talk : Une Liste de Diffusion Ruby
Même avec irb et le Pickaxe, parfois vous ne pourrez peut-être pas trouver la solution par vous-même. Ou peut-être voulez-vous savoir si quelqu'un a déjà fait ce que vous faites, pour voir si vous pouvez l'utiliser. Dans ces cas, le meilleur endroit est ruby-talk, la liste de diffusion Ruby. C'est plein de gens amicaux, intelligents et serviables. Pour en savoir plus, ou pour vous abonner, regardez ici.
ATTENTION : Il y a un grand volume d'e-mails sur la liste chaque jour. J'ai créé une règle dans mon client de messagerie pour que tout ne reste pas dans le même dossier. Mais si vous ne voulez pas avoir à faire cela, vous n'êtes pas obligé ! La liste de diffusion ruby-talk a un miroir sur le groupe de discussion comp.lang.ruby, donc vous pouvez voir les messages là-bas. En bref, vous verrez les mêmes messages, mais d'une manière légèrement différente.
Tim Toady
J'ai essayé de vous protéger de quelque chose que vous rencontrerez bientôt, c'est le concept de TMTOWTDI (prononcé "Tim Toady") : There's More Than One Way To Do It (Il Y A Plus D'Une Façon De Le Faire).
Maintenant, certains vous diront que TMTOWTDI est une chose merveilleuse, tandis que d'autres ressentent les choses très différemment. Je n'ai pas vraiment de sentiments forts sur le sujet en général, mais je pense que c'est une terrible façon d'enseigner à quelqu'un comment programmer. (Comme si apprendre une façon de faire quelque chose n'était pas assez difficile et déroutant !).
Cependant, maintenant que vous allez au-delà de ce tutoriel, vous verrez beaucoup de code diversifié. Par exemple, je peux penser à au moins cinq autres façons de créer une chaîne (en plus d'entourer du texte avec des guillemets simples), et chacune d'elles fonctionne un peu différemment. Je ne vous ai montré que la plus simple des six.
Et quand nous avons parlé de branchement, je vous ai montré if, mais je ne vous ai pas montré unless. Je vais vous laisser comprendre cela dans irb.
Un autre raccourci agréable que vous pouvez utiliser avec if, unless, while, est la version astucieuse sur une seule ligne :
# Ces mots proviennent d'un programme que j'ai écrit pour générer
# du charabia en anglais. Cool, hein ?
puts 'grobably combergearl kitatently thememberate' if 5 == 2**2 + 1**1
puts 'enlestrationshifter supposine follutify blace' unless 'Chris'.length == 5
Et enfin, il y a une autre façon d'écrire des méthodes qui prennent des blocs (pas des procs). Nous avons vu cela où nous avons saisi le bloc et l'avons transformé en proc en utilisant l'astuce &block dans la liste des paramètres lors de la définition de la fonction. Ensuite, pour appeler le bloc, vous utilisez block.call. Eh bien, il y a un moyen plus court (bien que personnellement je le trouve plus déroutant). Au lieu de ceci :
def faireDeuxFois(&bloc)
bloc.call
bloc.call
end
faireDeuxFois do
puts 'murditivent flavitemphan siresent litics'
end
...vous faites ceci :
def faireDeuxFois
yield
yield
end
faireDeuxFois do
puts 'buritiate mustripe lablic acticise'
end
Je ne sais pas... Qu'en pensez-vous ? C'est peut-être juste moi, mais... yield ?! Si c'était quelque chose comme call_the_hidden_block ou quelque chose comme ça, cela aurait beaucoup plus de sens pour moi. Beaucoup de gens disent que yield a du sens pour eux. Mais je suppose que c'est le but de TMTOWTDI : ils le font à leur façon, et je le ferai à la mienne.
LA FIN
Utilisez-le pour le bien et non pour le mal. :-) Et si vous avez trouvé ce tutoriel utile (ou déroutant, ou si vous avez trouvé une erreur), faites-le moi savoir !