Une introduction à Ruby

a marqué ce sujet comme résolu.

J’ai remarqué que les codes utilisent majoritairement des noms de variable et de fonction en français sans diacritique, mais en quelques occasions, elles en portent. Est-ce que Ruby autorise les noms de variable en UTF-8 ? Si c’est le cas, il faut reprendre les zones de code, et rajouter les diacritiques nécessaires, sinon, il faut les enlever dans les quelques endroits où il y en a (dans le premier cas, je peux m’en occuper, pour être sûr que vous n’en n’oubliiez pas).

Oui, Ruby autorise les noms de variables en UTF-8. Ce serait vraiment parfait si tu pouvais te charger des modifications. :)

Section « Contrôler l’exécution d’une boucle » : est-il normal que vous n’abordiez pas retry ?

Ce sera abordé dans le chapitre sur les exceptions puisque la plupart du temps il est utilisé avec rescue.

Section « Des tableaux associatifs » et suivantes : 2015, ça fait sacrément vieux, comme âge. ^^

Oui, oui, certaines espèces vivent vraiment très longtemps. Il paraît même qu’il y a des loups immortels. :-°

Chapitre « Les hashs » : la troisième phrase de la première correction n’a pas de fin, et je ne parviens pas à deviner ce qui aurait dû s’y trouver.

Oups, je modifie ça dès que possible.

Section « Les variables globales » : le chapitre finit de manière très abrupte, je ne suis pas sûr de comprendre ce que la dernière phrase veut dire. En outre, arrivé au bout de la section, tu n’as toujours pas expliqué comment faire pour modifier une variable de la fonction d’origine proprement (donc sans variable globale).

Il faut rajouter une fin digne de ce nom alors. Dans cette fin, il faudrait juste dire que pour le moment, le meilleur moyen est de faire les fonctions renvoyer des valeurs et d’expliquer que plus tard ce ne sera plus un problème quand on utilisera des objets.

Voilà. Encore merci pour ton aide. :)

+1 -0

Bonjour les agrumes !

La bêta de votre tutoriel « Une introduction à Ruby » a été mise à jour et coule sa pulpe à l'adresse suivante :

Merci d'avance pour vos commentaires.

Alors au programme, nous avons :

  • toutes les corrections de Dominus Canrufex ;
  • le rajout d’une section « Modifier nos variables dans des fonctions » dans le chapitre « Retour sur les variables ;
  • la correction d’une phrase de… la correction de la première partie de l’exercice proposé dans le chapitre sur les hachages ;
  • le rajout de deux phrases à la fin de l’extrait sur les symboles dans le dernier chapitre.

Et à venir : un chapitre sur le module Enumerable.

+0 -0

Voilà, les parties supplémentaires / modifiées sont corrigées elles aussi. Tu penses avoir encore besoin de moi dans un proche avenir ? :)

Dominus Carnufex

Pour le moment, je pense qu’on n’a plus besoin de correction (à part peut-être pour l’annexe), mais ce serait bien si tu pouvais nous aider dans la correction du chapitre sur Enumerable qu’on finira d’écrire dans quelques temps. :)

+0 -0

J’ai corrigé les modifications que tu as faites dans la première partie, ainsi que l’annexe. Concernant celui-ci, j’aurais deux remarques.

L’image accessible à cette adresse contient du code dont j’ai corrigé la typographie, donc il faudrait la changer, sinon ça fait tâche. ^^

De manière plus générale, le style de ce chapitre est assez nettement différent de celui de la première partie : on dirait qu’elle n’a pas été relue, et l’ensemble a un côté un peu brouillon et « pâteux ». Il nécessiterait certainement une réécriture au moins partielle (c’est surtout la dernière section qui m’a donné ce sentiment).

En particulier, il y a un manque de cohérence entre la partie sur l’installation de gedit où l’utilisateur est censé savoir installer un logiciel en ligne de commande sans aide extérieure et où le programme est lancé au moyen de la commande ruby, et la partie sur les erreurs possibles où l’utilisateur ne maîtrise même pas cd et où on explique comme une nouveauté le fait d’utiliser ruby machin.rb plutôt que de l’exécuter directement.

Concernant le chapitre sur Enumerable, vous comptez le mettre dans la première partie ? Parce que, comme tu as dit que la deuxième était encore susceptible de pas mal changer, je n’y ai pas touché. :)

+2 -0

L’image accessible à cette adresse contient du code dont j’ai corrigé la typographie, donc il faudrait la changer, sinon ça fait tâche. ^^

OK, je vais changer toutes les images qui ont ce problème.

De manière plus générale, le style de ce chapitre est assez nettement différent de celui de la première partie : on dirait qu’elle n’a pas été relue, et l’ensemble a un côté un peu brouillon et « pâteux ». Il nécessiterait certainement une réécriture au moins partielle (c’est surtout la dernière section qui m’a donné ce sentiment).

Je pense le réécrire quasiment entièrement alors. C’est un chapitre ancien auquel j’ai rarement touché depuis la refonte du tutoriel.

Concernant le chapitre sur Enumerable, vous comptez le mettre dans la première partie ? Parce que, comme tu as dit que la deuxième était encore susceptible de pas mal changer, je n’y ai pas touché. :)

Oui, la seconde partie est susceptible de beaucoup changer, mais on préfère ce concentrer sur la première partie pour pouvoir l’envoyer en validation. Le chapitre sur Enumerable sera en effet dans la première partie.

+0 -0

Petite coquille ici :

Voici une nouvelle notation tout à fait sympathique. Il faut savoir que les objets peuvent être créés en utilisant la méthode new de leur classe (à l'exception de quelques classes comme Fixnum, TrueClass, NilClass…).

tutoriel ruby

Ici également :

collect et map : exécute un bloc de code pour chaque élément du tableau et crée un tableau avec le résultat de chaque exécution

tutoriel ruby

+1 -0

@Wizix : merci pour ce retour. Cependant, la seconde partie du tutoriel n’est pas encore fixée, donc nous attendons surtout les fautes dans la première partie. Ce serait également cool si tu pouvais faire remonter les points qui ne paraissent pas clairs ou sont mal expliqués (là encore surtout dans la première partie). :)

+0 -0

Bonjour les agrumes !

La bêta a été mise à jour et décante sa pulpe à l'adresse suivante :

Merci d'avance pour vos commentaires.

Voici les modifications :

  • ajout du chapitre sur le module Enumerable (la section « Exercices » n’est pas encore bien rédigé) ;
  • ajout de résumés sous forme de liste à la fin de chaque chapitre ;
  • modification de certains codes pour respecter les pratiques préconisées par le document donné en conclusion (notamment modification de certains blocs, des guillemets et des espacements).
  • remplacement du mot « fonction » par le mot « méthode ».

Quelques paragraphes ont également été ajoutés.

Chapitre 1

  • Ajout de paragraphe sur la possibilité d’utiliser le symbole E pour écrire un nombre en utilisant les puissances.
  • Ajout d’un paragraphe sur la possibilité d’écrire les nombres en binaire, en octal et en hexadécimal.

Chapitre 2

  • Ajout d’un paragraphe sur les percents literals. D’ailleurs, quelqu’un connaîtrait une expression française pour les désigner ?
  • Ajout d’un paragraphe sur le choix des guillemets et le choix des percents literals (bonnes pratiques).

Chapitre 3

  • Ajout de plusieurs petits paragraphes sur les pratiques répandues en Ruby (ternaires appréciées, condition négative peu utilisée, condition sur une ligne très utilisée, …).

Chapitre 4

  • Ajout d’une section sur les itérateurs.

Chapitre 5

  • Ajout d’un paragraphe sur l’utilisation des percents literals pour écrire des tableaux de chaînes de caractère.
  • Présentation de la méthode each_with_index.
  • Présentation de la méthode each_line pour les chaînes de caractère.

Chapitre 7

  • Présentation de each_with_index

Chapitre 8

  • Utilisation des percents literals pour déclarer des tableaux de symboles.

D’autres modifications et reformulations sont également présentes.


Ces modifications permettent surtout d’avoir de bonnes habitudes dès le départ (par exemple, une utilisation immédiate des itérateurs).

Mais la grande nouveauté reste le chapitre sur Enumerable.

+0 -0

Bonjour les agrumes !

La bêta a été mise à jour et décante sa pulpe à l'adresse suivante :

Merci d'avance pour vos commentaires.

+0 -0

Bonjour les agrumes !

La bêta a été mise à jour et décante sa pulpe à l'adresse suivante :

Merci d'avance pour vos commentaires.

+0 -0

Hey salut, j'ai noté quelques trucs lors de la lecture du cours :

  • dans le tableau des variables réservées, il y a les variables __FILE__ et __LINE__ pour lesquelles il y a une typo : il y a des backslashes précédant les underscores ;
  • dans la section sur les énumérables, au début, vous dites que le nom de l'énumérable commence par une majuscule et est en CamelCase, or il est écrit « ExempleDeModule plutôt que exemple_DeModule » où le second ne serait de toute façon pas un nom valable ;
  • au même endroit, il y a la phrase « Finalement, pour écrire une méthode dans un module, nous écrirons def nom_du_module.nom_de_la_méthode », pourquoi avoir écrit le nom du module en snake_case ? (Même remarque à plusieurs reprises après le titre « Utiliser un module ».)

Sinon le tuto est très chouette à lire, j'aime assez bien le ton décontracté tout en restant sérieux et suffisamment rigoureux pour des débutants.

+0 -0
  • dans le tableau des variables réservées, il y a les variables __FILE__ et __LINE__ pour lesquelles il y a une typo : il y a des backslashes précédant les underscores ;

Je corrige ça. Je sais même pas ce que ça fait là. o_O

  • dans la section sur les énumérables, au début, vous dites que le nom de l'énumérable commence par une majuscule et est en CamelCase, or il est écrit « ExempleDeModule plutôt que exemple_DeModule » où le second ne serait de toute façon pas un nom valable ;

On est en train de dire qu’on écrire ExempleDeModule et pas exemple_DeModule, ce qui signifie bien qu’on utilise du CamelCase donc je ne comprends pas ton commentaire.

  • au même endroit, il y a la phrase « Finalement, pour écrire une méthode dans un module, nous écrirons def nom_du_module.nom_de_la_méthode », pourquoi avoir écrit le nom du module en snake_case ? (Même remarque à plusieurs reprises après le titre « Utiliser un module ».)

C’est vrai que c’est pas très malin. Je corrige tout ça.

Sinon le tuto est très chouette à lire, j'aime assez bien le ton décontracté tout en restant sérieux et suffisamment rigoureux pour des débutants.

Merci. :)

+0 -0

On est en train de dire qu’on écrire ExempleDeModule et pas exemple_DeModule, ce qui signifie bien qu’on utilise du CamelCase donc je ne comprends pas ton commentaire.

Je disais qu'il serait plus logique (selon ma compréhension de la remarque) de dire que l'on n'écrit pas Exemple_De_Module mais ExempleDeModule car ainsi on voit bien qu'il n'est pas question de snake_case. La manière de l'écrire exemple_DeModule est un mélange de snake_case et de CamelCase, ce qui est bizarre je trouve. De plus, on a pour convention d'écrire en CamelCase, mais la majuscule est obligatoire. Donc la notation exemple_DeModule ne serait tout simplement pas valable, indépendamment de la convention.

+1 -0

Ah, je comprends mieux ce que tu veux dire. Effectivement, ce serait plus pertinent de faire comme tu dis.

+0 -0

Bonjour les agrumes !

La bêta a été mise à jour et décante sa pulpe à l'adresse suivante :

Merci d'avance pour vos commentaires.

+0 -0

Bonjour les agrumes !

La bêta a été mise à jour et décante sa pulpe à l’adresse suivante :

Merci d’avance pour vos commentaires.

EDIT : début de la partie II avec l’approche du livre The Well-Grounded Rubyist : créer des objets avant même de parler de classes. Donc ici, on a cet ordre.

  • Création d’objets (Object.new) et définition de méthodes.
  • Analyse d’objets (inspect, respond_to?, public_send et les différentes comparaisons).
  • Variables d’instances, accesseurs, mutateurs, opérateurs, méthodes bang.
  • Création de classes, initialisation.
  • Méthodes et variables de classes.

Et ce qui va venir.

  • Modules
  • Exceptions
  • Héritage et duck-typing
  • composition et Mixin (comparaison héritage, composition, mixin)
  • Blocs, Proc,lambda, etc.

Puis des outils et la bibliothèque standard (dans le désordre)

  • Lire la documentation (rdoc et ri).
  • Module Enumerable (déplacé ici) et Enumerator.
  • Les objets énumérables (découverte de Set).
  • Expressions régulières.
  • Gestion des fichiers.
  • Nombres, symboles et chaînes de caractères.
  • Outils de Ruby et autres Classes/Modules utiles (mathématiques, date et temps, gem, tests unitaites, retour sur la commande ruby, etc.).
+0 -0

Bonjour les agrumes !

La bêta a été mise à jour et décante sa pulpe à l’adresse suivante :

Merci d’avance pour vos commentaires.

EDIT : Les chapitres « Les objets » et « Les classes » sont quasiment finis (il manque surtout les exercices). D’ailleurs vous pensez que ce serait mieux d’écrire une classe sur les fractions ou une classe sur les durées ?

+0 -0

Bonjour les agrumes !

La bêta a été mise à jour et décante sa pulpe à l’adresse suivante :

Merci d’avance pour vos commentaires.

+0 -0

Bonjour les agrumes !

La bêta a été mise à jour et décante sa pulpe à l’adresse suivante :

Merci d’avance pour vos commentaires.

+1 -0

Bonjour les agrumes !

La bêta a été mise à jour et décante sa pulpe à l’adresse suivante :

Merci d’avance pour vos commentaires.

Donc, dans la partie 2, les chapitres sur les objets et les classes sont totalement écrits, il manque juste quelques mots sur le SRP. Et le chapitre sur les blocs est quasiment fini, il manque les différences entre Proc et lambda et la première section qui explique la notion de fermeture.

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte