Ruby et Ruby on Rails

a marqué ce sujet comme résolu.

Salut tous le monde !

Ayant été contacté sur Twitter par benyhex à propos de ZdS et après y avoir passé un peu de temps à lire 2-3 tutos, je me propose d'écrire un tuto sur Ruby et RoR.

Je possède déjà un petit blog sur lequel j'ai écrit quelques tutos. Je souhaiterais écrire un gros tuto couvrant la création d'une app avec Rails de la création du projet à son déploiement, mais pour cela j'ai besoin de votre avis.

  • Dois-je faire deux tutos séparés (un sur Ruby et un autre sur Rails ) ?
  • Je me doute que je ne peux pas faire de copier/coller de mon blog, mais lisez au moins le 1er article. Le style est adapté au site ?
  • Je dois partir réellement de 0 ou je peux assumer que mon lectorat aura un minimum de bases en algo et logique ?

J'attends vos retours avant de faire un premier tuto test ;-)

EDIT : Lien vers le tuto en bêta

+0 -0

Pour le choix d'un ou deux tutos je pense que c'est une approche différente.

Un tuto pour chaque permettrait d'aller plus profondément dans les choses. Peut être faire seulement une introduction à Rails dans la partie Ruby ?

Et bien pour le copier/coller disons que le zds (il me semble, à confirmer par un membre du staff) n'est pas contre l'importation de tuto déjà existant (c'est le cas pour plusieurs tuto venant du sdz) il suffit de mettre les liens canonique pour le référencement. Je pense que si tu reprends tes articles pour démarrer ton tuto ça ne posera pas de problème surtout que ce ne sera qu'une petite partie du tuto (je pense) et donc qu'il y aura quand même une grosse création de contenu.

Pour le 3e point c'est ton choix, tu peux très bien partir sur du tuto avancé mais c'est vrai que partir pour un débutant pur et dur peut être sympa. Cela pourrait toucher plus de monde.

+0 -0

Oui

Oui (comme l'a expliqué le voisin du dessus) :)

et moui (ça serait mieux, mais pas indispensable, à mon avis l'approche "Learn X in Y minutes" serait suffisante)

J'ai démarré le développement web avec Ruby on Rails (la version 1 à l'époque, ça me rajeunit pas, et j'en garde d'excellents souvenirs). Ruby est un langage plaisant même si je ne l'ai malheureusement jamais utilisé depuis. Le framework Rails dans son approche MVC + ORM puissant a posé les bases pour beaucoup de frameworks par la suite. C'est un framework très élégant et très puissant et j'adorerai que ZdS propose un tutoriel de qualité sur le sujet.

Mes choix de carrière ont fait que je me suis tourné vers Java EE avec Spring et Hibernate, la connaissance de GORM m'a beaucoup beaucoup aidé pour manipuler Hibernate :)

Par conséquent aujourd'hui j'utilise Groovy&Grails. Le pendant "Java-ish" de RoR, maintenu par SpringSource. J'ai lu qu'aujourd'hui RoR utilise Spring comme conteneur léger, finalement tout se recoupe et c'est assez plaisant à voir.

Je t'encourage vraiment à écrire un cours complet sur ces technologies et te souhaite bon courage dans la rédaction. Un cours de qualité sur une techno de qualité ne peut qu'être apprécié.

A bientôt :)

+0 -0

En ce qui me concerne je ne trouverais pas gênant qu'il y ait plusieurs tutos Ruby. En fait, à moins que vous n'échangiez vos vues sur ce que devrait être un bon tuto Ruby et que vous ne vous rendiez compte que vous avez la même approche, écrire deux tutos complémentaires ne serait pas déconnant.

Pourquoi pas essayer de collaborer ?

+0 -0

Je suis en train de le lire et j'avoue que c'est très plaisant.

C'est bien écrit, le style est vraiment dans l'esprit de feu sdz et les explications sont plutôt bonne.

Je n'ai pas encore tout fini mais ça ne laisse présager que du bon.

+0 -0

Salut,

J'ai commencé à lire le tutoriel et je trouve le ton très plaisant.

J'ai une ou deux questions (pas vraiment remarques ou reproches, mais de vraies questions).

Il y a des situations techniques exposées pas évidentes pour le débutant : "admettons que vous récupériez le commit git d'un de vos collègues". Là le débutant au mieux pose une question en commentaires, au médian glisse sans comprendre, au pire se barre en disant qu'il comprend rien. J'imagine que c'est un choix assumé mais est-ce-qu'il ne serait pas plus simple de trouver un exemple plus abordable ? (sans que ça ne change rien au contenu). J'ai pris cet exemple mais il y en a d'autres et c'est une remarque générale, je trouve qu'il y a une ambiguité parfois sur le niveau de lecture demandé, par exemple : "votre boss vous demande de créer le nouveau Facebook", le mec qui se tourne vers Rails en connaissant déjà le développement web sait dans quoi il met les pieds, cette phrase n'a d'intérêt que pour le pur novice. Et d'un autre côté attaquer d'emblée par la création de domain classes en disant qu'elles sont associées à la BDD, en disant que l'explication sur le MVC viendra plus tard ça me paraît ambigu. J'ai peur que le débutant soit largué, tandis que le dev expérimenté s'en cogne des explications sur le MVC.

C'est un sujet ultra complexe, et lorsque je m'étais interrogé sur comment je ferais pour écrire un cours sur Grails je me posais exactement les mêmes questions.

Entendons-nous bien, en l'état c'est très acceptable hein, c'est même franchement bien, mais je me demande s'il est possible de faire mieux. Je suppose que tu t'es déjà posé ces questions, qu'est-ce-que tu en penses ?

Ensuite, je me pose toujours la questions de montrer les domain classes as controllers si tôt. En fait y'a deux écoles. La première qui se base vraiment sur le CRUD en mettant le modèle au centre du cours comme tu l'as fait et part d'emblée sur le scaffolding, la seconde qui aborde les contrôleurs en premier, te fait faire des "hello world" à grands coups de render "lala" va aborder le scope, les flash messages etc. pour que tu joues tranquillement en attendant de t'émerveiller devant la puissance du scaffolding.

En gros "ok c'est comme ça qu'on écrit un contrôleur, une vue" => "ouaaaaaaaaaah ça se génère tout seul à partir du modèle mais oui !! c'est une super idée".

De mémoire, c'était l'approche utilisée par le bouquin de Eric Sarrion (2006, ça date…) et j'avais trouvé ça plus sympa que les tutos sur le net qui partaient dans l'autre sens.

La même approche que toi est utilisée dans Grails in Action mais qui s'oriente peut-être plus à des développeurs Java expérimentés.

L'impression que j'ai c'est que pour un débutant complet, introduire le domaine en premier est difficile d'accès. Tandis que pour un développeur web un peu aguerri, c'est vraiment naturel. En gros : Le mec qui a passé 10 ans de sa vie à écrire des formulaires et les mapper sur une BDD est sous le charme direct, le mec qui n'a jamais trop touché au développement web est un peu perdu.

Je ne sais pas si c'est possible de ménager le chèvre et le choux, et sincèrement je me suis déjà posé cette question sans avoir réellement de réponse, qu'en penses-tu ?

+2 -0

Salut

Un tuto très sympa, j'ai beaucoup aimé le ton et ça m'a donné envie d'apprendre Rails ce qui est un bon point pour un tuto je trouve :p

J'ai déjà développé avec l'architecture MVC donc pour moi le fait que on arrive vite au traitement avec la BDD et l'affichage d'infos dans les vues ne me dérange pas mais pour un débutant je pense qu'il serait pas mal de montrer la logique MVC avec Rails avant sans pour autant s'étendre pendant x chapitres.

Dans le TP on peut voir :

1
<td><%= link_to 'Destroy', departement, method: :delete, data: { confirm: 'Are you sure?' } %></td>

A mon avis il faudrait détailler un peu le link_to parce que le débutant va juste copier/coller et pas savoir à quoi ça correspond.

Pour finir il y a des parties en Anglais "New Employe", "Are you sure" (cf ci-dessus) et des parties en français "Salaire, "Prénom" je pense qu'il faudrait uniformiser tout ça pour avoir l'Anglais ou le Français.

En somme le TP est bon mais pour moi pas assez détaillé :)

Bonne continuation en tout cas j'ai hâte de lire la suite !

+1 -0

Merci pour vos remarques !

Je prend note et je vais faire quelques corrections pour supprimer les points un peu trop complexe pour un débutant.

La grosse difficulté d'écrire un cours comme ça est de justement savoir doser la difficulté, c'est parfois assez compliqué de se mettre à la place d'un débutant total.

Mon but dans le cours ne sera jamais de rester tout un chapitre sur de la théorie. Personnellement quand j'apprends un nouveau langage ou un framework, je préfère que l'on m'explique la base : installation, fonctions de bases et comment me débrouiller avec la doc plutôt que des explications théoriques qui n'en finissent pas.

Je pourrais faire une partie sur le MVC mais honnêtement il y a déjà tellement de gens qui l'expliquent bien mieux que moi que juste un lien suffira, non ?

Pour le premier chapitre c'est totalement volontaire qu'il soit présenté ainsi. Le but n'est pas qu'un débutant comprenne tout ce qu'il se passe, loin de là. Ce que je veux leur dire c'est : "Ok ça c'est Rails les gars. Regardez ce que vous avez fait en 15min sans rien comprendre. Maintenant imaginez ce que vous pourrez faire quand vous comprendrez comment ça marche.". Je pense que la fin manque d'explications. Partir directement sur des relations de tables en BDD est un peu hard c'est vrais, mais .... un site sans relations en BDD, sauf site statique, ça existe ?

Mine de rien, juste en ayant lu le premier chapitre vous avez déjà vu une énorme partie de Rails. Même en n'y comprenant pas grand chose, en lisant la suite qui sera plus détaillée vous vous direz : "Ah mais oui j'ai déjà fait ça dans le premier chapitre !".

Je vais uniformiser la langue également en traduisant les messages anglais vers le français.

Mon but dans le cours est de partir de 0 et d'amener le lecteur à avoir assez de connaissances pour qu'il puisse déployer son site en production. Donc je pensais, par la suite, partir sur la création d'un CMS ou d'un Blog qui passera en revu tout ce qu'il est possible de faire avec Rails. En gros durant le processus de création j'expliquerai ce que je fais ainsi que la théorie et les autres choix qu'il est possible de faire. De cette manière je pense pouvoir toucher le noob puisqu'il aura sa dose d'explications sans barber le vrais développeur qui lui pourra zapper ces parties et aura directement les infos qu'il lui faut dans un exemple précis.

Je vais rédiger la suite et vous me direz ce que vous en pensez.

+1 -0

Je suis un peu partagé,

Certes c'est un cours pour débutant mais y'a quand même la nécessité d'avoir quelques notions de Ruby donc pas un grand débutant complet qui ne saura même pas ce qu'est une condition ou une bdd (j'imagine quand même qu'il y aura un chapitre parlant de la bdd dans le tuto ruby).

Donc oui c'est un peu rapide mais en même temps ce ne sont pas des noobs complets non plus.

Je suis aussi assez d'accord sur le fait de pratiquer, quitte à ne pas tout comprendre et d'expliquer par la suite et aussi pour permettre aux lecteurs de participer, bidouiller le code voir ce que ça change etc…

Pour le CMS ou le blog là je dis oui et re-oui ça peut être super intéressant.

+1 -0

Oui quand je parle de débutant je ne parle pas de débutant en programmation mais de débutant avec Rails. Le cours n'est vraiment pas fait pour les réels débutant en programmation.

J'ai commencé la rédaction de la suite en prenant la création d'un blog pour exemple. J'hésite par contre à introduire les tests (unitaire et fonctionnel) assez tôt dans le cours :/

Très bon début de tuto :)

Y a juste une erreur à la fin de l'Etape 3 : Définir notre opération de transfert. Tu demandes de rajouter :department_id dans les champs autorisés, mais en fait dans le code que t'as mis, il est déjà présent. Du coup, tu l'as deux fois.

+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