Bonjour à tous, bienvenue sur la 2e édition de Ruby Biscuit, vous êtes maintenant 58 abonnés 🥳
La semaine dernière j’ai participé à la formation See It Fail & Make It Pass de Coderative ! Nous étions la première promo #AdaLovelace c’était très chouette, je vous raconte tout ça aujourd’hui !
🤓 Ada Lovelace est une femme connue pour avoir réalisé le premier programme informatique lors de son travail sur la machine analytique de Charles Babbage dans les années 1840.
L’interview des fondateurs
Avant de nous lancer dans le vif du sujet, laissons les fondateurs nous donner un peu de contexte :
🎙️ Comment Coderative s'est créé ?
Nous nous sommes rencontrés chez Deligreens, une startup que Thibaut et Vincent ont co-fondée en 2014 et dans laquelle Igor a été recruté en 2017 pour former et encadrer l’équipe de 5 développeurs. L’aventure s’est achevée assez vite après l’arrivée d’Igor, mais ce fut suffisant pour réaliser que nous aimions beaucoup travailler ensemble. 3 ans plus tard, les planètes étant à nouveau alignées, nous avons décidé de monter Coderative, un collectif de développeurs, de designers et d’entrepreneurs qui développe trois modèles économiques :
Un studio pour co-créer des projets tech avec des PME.
Une offre pour les entreprises souhaitant recruter et former des développeurs.
Des formations destinées aux développeurs, avec l’ambition de fédérer une communauté de pratique.
🎙️ Comment vous avez eu l'idée de créer la formation ?
Avec Coderative nous proposons à nos clients PME une offre qui leur permet de recruter des développeurs avec peu d’expérience et de continuer à les former. C’est dans ce contexte, en accompagnant des développeurs chez nos clients, que la formation s’est progressivement formalisée. La pratique des tests est une porte d’entrée intéressante pour aborder tout un tas de sujets que les développeurs doivent maîtriser afin de progresser dans leur carrière. C’est en discutant de cet accompagnement autour de nous, avec d’autres développeurs, que nous avons trouvé pertinent d’ouvrir cet enseignement sous la forme d’une formation publique. See It Fail était née !
Mon retour d’expérience
Alors est ce que cette formation vaut le coup ? Est-ce qu’il y a des choses à apprendre ? Est-ce que l’ambiance était cool ?
Un grand oui ! Cette formation a abouti à plus d’un : ”Aaaaah mais ça fonctionne comme ça, je comprends enfiiiin”, gage de qualité et aussi peut-être un des meilleurs sentiments dans notre métier.
Revenons sur les grandes lignes du programme :
☀️ 1️⃣ Le premier jour, nous avons parlé de l’histoire d’Rspec, son fonctionnement, ses dépendances, et des notions de TDD et de BDD. Nous sommes ensuite partis d’un énoncé d’exercice pour écrire un petit test, en traduisant les méthodes d’Rspec en français, puis nous nous sommes laissés guidés par nos erreurs en console pour coder Rspec (aka MaSpec) en français, et implémenter notre exercice en parallèle. Nous avons réécrit toutes les méthodes de base, describe
, subject
, context
, it
, etc. Un excellent exercice pour démystifier le fonctionnement de la gem.
☀️ 2️⃣ Le deuxième jour nous avons installé Rspec sur une application Sinatra, nous avons passé au crible le fichier spec_helper
en décortiquant la configuration de la gem et les différentes options : affichage des tests, ordre de lancement, monkey patching, etc. Enfin plus de clarté sur ce fameux fichier qu’on croise plusieurs fois par jour et sur lequel on ne s’attarde pas trop… “Si c’est configuré comme ça, c’est sûrement la bonne manière de faire”. 🤔 Sur cette journée nous avons également appris la pratique de l’injection de dépendance, comment tester des calls API sans calls API, grâce aux doublures et aussi la notion de test d'acceptation.
☀️ 3️⃣ Enfin le troisième et dernier jour nous avons vu l’installation d’Rspec dans une app Rails, nous avons parlé des tests de requêtes et des tests système, puis nous avons découvert la méthode “example mapping”, pour introduire la gem Cucumber.
Que retenir de cette formation ?
Il y a quelques mois encore, les tests c’était un sujet flou, je copiais-collais des bouts de code existant, j’adaptais, et je faisais en sorte que ça passe au vert 🚥. J’utilisais Rspec dans des apps existantes, déjà configurées où d’autres gems comme rspec-rails
, factory_bot_rails
, faker
, webmock
, vcr
, timecop
se mélangeaient. Il était difficile de comprendre qui m’offrait telle ou telle méthode mise à disposition.
A force d’apprentissage, d’accompagnement et grâce à la participation à cette formation, nous avons pu mettre à plat toutes ces méthodes utilisées au quotidien, et j’ai enfin compris le rôle et le fonctionnement de chacune des gems.
Le tout dans une ambiance bienveillante, accompagné tout du long de notions de culture g, et de bonnes pratiques.
Voici quelques exemples de notions apprises et qui me seront maintenant utiles au quotidien :
La différence entre
expect
avec un paramètre etexpect
avec un blocAvec un paramètre l'erreur est soulevée lorsque
subject
est appelé, on n’attend pas la fin de l’exécution d’expect pour évaluersubject
Alors qu’avec un bloc, on attend la fin de l’exécution pour évaluer subject
La différence entre
let
etlet!
Le fait de pouvoir nommer les
subject
, afin de rendre les tests plus lisiblesDes options Rspec
*Le seed est l’identifiant unique de notre suite de test, Rspec nous le donne au début de l’exécution :
Randomized with seed 48111.
Rejouer un ordre aléatoire grâce à cette commande :
Une doublure grâce à la
gem webmock
pour remplacer VCR que nous avons récemment décidé de ne plus utiliser.
Comment cette formation me sera utile par la suite dans l’agence ?
Pour améliorer le chapitre “Test” de notre norme (Spoiler : je vous parlerai de la norme dans une prochaine newsletter 😉)
Pour présenter un dojo à l’équipe, sur les tips, les bonnes pratiques et la configuration d’Rspec
Pour mieux tester les applications sur lesquelles je travaille.
😏 Naturellement, certaines notions de la formation seront à prendre, d’autres à laisser ! Du moins dans le cadre des tests au sein de notre agence, car certaines pratiques sont déjà actées. Par exemple nous avons fait le choix de ne pas utiliser la gem Capybara, et nous ne seront probablement jamais amené à utiliser la gem Cucumber, car nous n’utilisons pas les méthodes d’example mapping. À chacun de faire le tri en fonction de ses besoins !
👨🏫 La prochaine session aura lieu du 13 au 15 mars, inscrivez-vous ! Ou n’hésitez pas à me poser des questions dessus en réponse à cet email.
Une chose est sûre maintenant mes tests sont…
Merci Coderative ❤️
À la semaine prochaine 🙂
Mélanie
Trop bien, et la formation a l'air complète en mêlant pratique et culture G !
par contre quand tu dis "Pour présenter un dojo à l’équipe", c'est quoi pour vous les dojos d'équipe ?