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 ?