Quelques jours, je donne une conversation sur un projet de rails à l'université et je tiens à introduire le public à Ruby. P>
Je veux leur montrer un ou deux très bons exemples de code pour démontrer à quel point Ruby est génial. P>
connaissez-vous un bon exemple? P>
meilleures salutations p>
10 Réponses :
Vous devriez totalement lui montrer la matrice de Dwemthy, c'est tellement très racontant le pouvoir qui réside dans la méta-programmation dans Ruby. p>
Cet exemple est trop complexe. Il devrait être composé de max. 4-5 lignes.
J'aime comment, en gros, chaque tutoriel de rubis sans exception, vous pouvez presque sentir les vrilles de la folie tendre la main pour tirer le lecteur dans la cauchemar schizophrène de l'auteur.
@Julet: Il est clair que vous ne lisez que des tutoriels écrits ou inspirons par _Pourquoi.
irb(main):007:0> 2**2048 => 32317006071311007300714876688669951960444102669715484032130345427524655138867 89089319720141152291346368871796092189801949411955915049092109508815238644828312 06308773673009960917501977503896521067960576383840675682767922186426197561618380 94338476170470581645852036305042887575891541065808607552399123930385521914333389 66834242068497478656456949485617603532632205807780565933102619270846031415025859 28641771167259436037184618573575983511523016459044036976132332872312271256847108 20209725157101726931323469678542580656697935045997268352998638215525166389437335 543602135433229604645318478604952148193555853611059596230656 try 2 ** 20000 or any other ridiculous large number.
Montrez-leur comment vous transformez de 50 lignes laides de code sale dans 3 Nettoyer les penchants de code très facile à comprendre. (Étant la première ligne d'un commentaire) p>
Ne montre pas à quel point tu es cool avec Ruby. Mais à quel point ils seront cools s'ils utilisent Ruby :) P>
Bonne idée! En fait, je voulais leur montrer, à quel point ils pourraient être cool ;-)
Certains des projets de whandy, comme des chaussures ou des bloopsaphones, sont assez géniaux. En outre, vous pouvez trouver une vidéo de certaines de ses présentations en ligne, qui sont assez inspirées.
Cela compte-t-il toujours si vous pouviez convertir 50 lignes laides de langage C # en 3 lignes propres de langue c # (c'est-à-dire THEDailyWTF.com/articles/a-little-more-Simplified.aspx ). En d'autres termes, assurez-vous que vos 50 lignes de code laids sont représentatives et idiomatique dans la langue que vous cible (c'est-à-dire voir comment 218 lignes de C # se transforment en 65 lignes de F #: Stackoverflow.com/questions/694651/ ... ).
Je suis impressionné par ce qui peut être fait avec Tweetstream. Il est si facile de surveiller les sujets de tendance.
Installez avec: p> Voici le code de démonstration: p> remarque comment Ruby lit cette configuration en seulement 4 lignes (y compris la YAML requis.) p> Vous l'exécutez comme ceci: p> (rappelez-vous que vous devez échapper # sur Mac / Linux, par exemple:
à partir d'un tel extrait simple, vous pouvez faire des choses comme compter combien de fois chaque individu contribue, capturer des segments de Tweetstream à un fichier. . Toutes sortes de choses de ce point de départ ... p> p> tweetmon.rb \ #dedids code>) p>
C'est en fait une bibliothèque vraiment cool i>. Il n'y a rien qui crie vraiment - "Ruby Rocks!".
Si vous connaissez Java, créez une liste de chaînes, triez-la avec votre propre comparateur personnalisé (longueur de chaîne) et imprimez la liste. Faites la même chose dans Ruby ... P>
Je suggérerais fortement quelque chose avec ou p> ou p> .uite code>, .Iject ou / ou .Collect code>. Par exemple:
Correction du sort de Norvig à Ruby:
http://norvig.com/spell-correct.html
http: // lojic .com / blog / 2008/09/04 / How-ecrivant-orthographe-orthographe-in-ruby / p>
AMB à Ruby:
http://www.randomhacks.net/articles/2005/10/ 11 / amb-opérateur p>
Ruby m'appelle-moi parce que cela me permet souvent de faire ce que je veux faire, plutôt que de passer une grande quantité de temps "Configuration" de la solution. Donc, quelques exemples:
Somme les nombres non négatifs dans le tableau [-1, 3, -10, 0, 5, 8, 16, -3,14159] strong> p> xxx pré> comparé à un formulaire commun à d'autres langues: p> manipulation d'exception simple forte> p> class Array
def sum_of_squares
map { |x| x * x }.inject { |acc, x| acc + x }
end
end
[1, 3, 5, 9].sum_of_squares
Voici quelques exemples de rubis cool que j'ai compilés au fil des ans: P>
Je montrerais à quel point il est simple de créer de belles DSL - méthodal_missing en particulier est vraiment simple à saisir mais très puissant et vous permet de faire des trucs vraiment cool. P>