- Publié le
Retour sur la confĂ©rence du LyonJS đŻ
Je suis allĂ© Ă la confĂ©rence du LyonJS đŻ et jâai passĂ© un excellent moment. Si vous ne connaissez pas le LyonJS, câest une association qui organise des Ă©vĂ©nements pour rassembler les passionné·es de JavaScript, et vous pouvez en lire plus sur leur site web officiel : https://www.lyonjs.org/
Le LyonJS est une association qui est trĂšs proche de mon cĆur. Câest le premier meetup que jâai commencĂ© Ă frĂ©quenter rĂ©guliĂšrement, jâai beaucoup dâactuels collĂšgues qui y donnent des talks, et câest le premier Ă©vĂ©nement public oĂč jâai pu donner un talk qui Ă©tait trĂšs cathartique pour moi et trĂšs nichĂ© pour toutes et tous 1 !
Pour leur 100á” Ă©vĂ©nement, les membres de lâassociation ont organisĂ© une journĂ©e entiĂšre de confĂ©rence ! đ Sans hĂ©siter, sans connaĂźtre le programme, jâai pris mon billet, attendu le jour J, et jâai pu assister Ă la journĂ©e !
Je vous propose de revivre cette conférence ensemble à travers de blog.
Petit déjeuner et accueil
Rendez-vous Ă partir de 8 h du matin Ă lâUGC du cinĂ©ma Part Dieu. Oui, le LyonJS đŻ a eu lieu dans une salle de cinĂ©ma ! Lâaccueil se faisait dans le grand espace avec la prĂ©sentation des films et la vente de popcorn. Les sponsors commençaient Ă peine Ă sâinstaller et le petit dĂ©jeuner Ă©tait dĂ©jĂ servi. Je nây ai pas touchĂ©, mais il y avait du cafĂ© que je me suis empressĂ© dâengloutir.
AprĂšs avoir fait le goblin Ă attraper les goodies de Kolecto (un joli carnet blanc et un tote-bag assez Ă©tonnamment trĂšs pratique), et de Malt (un autre joli carnet, en matiĂšre recyclĂ©e), je suis montĂ© dans la salle de cinĂ©ma et je me suis confortablement installĂ© au premier rang dans les siĂšges de lâUGC.
Ă toutes celles et ceux qui veulent organiser une confĂ©rence et qui cherchent un lieu : une salle de cinĂ©ma est âš parfaite âš. Câest confortable, ça sent bon, la tempĂ©rature est idĂ©ale, il nây a pas dâinterruptions. Câest le meilleur endroit pour organiser une confĂ©rence. Je recommande Ă©normĂ©ment. Passons au programme.
La matinée
AstroJS avec Matthieu Lux
Vous connaissez Astro ? Câest un excellent framework frontend qui apporte une excellente expĂ©rience dĂ©veloppeur. Le blog que vous lisez est totalement fait en Astro par exemple.
Matthieu nous a prĂ©sentĂ© le fonctionnement dâAstro, avec ses caractĂ©ristiques et fait un retour dâexpĂ©rience sur la migration de Gatsby vers Astro chez Proton !
Je pensais bien connaĂźtre Astro mais jâai quand mĂȘme appris des choses. Laissez-moi vous rĂ©sumer rapidement : Matthieu a rappelĂ© lâhistorique des frameworks JS et ce quâapporte Astro : retourner Ă du web simple, sans javascript, sans surprises, et en utilisant nâimporte quel autre framework javascript.
Et oui ! En faisant du Astro, on peut coder en vuejs, en reactjs⊠GrĂące Ă son architecture en Ăźles, on peut utiliser un composant de nâimporte quel framework javascript. ConcrĂštement, la page dâaccueil de mon blog est en astro, mais le chatbot sur cette mĂȘme page est en vuejs. Câest le seul endroit qui charge du javascript, et tout le reste est du html aussi simple.
La partie migration de Gatsby Ă Astro Ă©tait assez spĂ©cifique Ă Protonmail, avec des problĂ©matiques de plusieurs migrations qui ont eu lieu en mĂȘme temps. Lâhistoire Ă©tait intĂ©ressante, mais en y repensant, câest difficile de ressortir avec des choses actionnables pour envisager une migration vers Astro.
Tester câest tricher, avec Antoine Caron et Jules Poissonnet
Probablement mon talk prĂ©fĂ©rĂ© ex aequo de la journĂ©e : Tester câest tricher ! Mais pourquoi ?
Dans ce talk, Jules et Antoine fracassent les idĂ©es rĂ©pĂ©tĂ©es sur les stratĂ©gies de test. Tout le monde y prend pour son grade : la pyramide de test est un concept mal expliquĂ©, toutes les stratĂ©gies de test sont critiquables, et ils proposent un systĂšme par âmotivateursâ pour rĂ©ussir Ă Ă©crire, maintenir et organiser ses tests.
Laissez-moi vous dĂ©tailler ces motivateurs. Ils consistent Ă considĂ©rer quâun test a 5 raisons qui incitent une Ă©quipe Ă les Ă©crire. Ils sont : documenter, stabiliser, vĂ©rifier lâintĂ©gritĂ©, assurer la conformitĂ©, permettre la reproductibilitĂ© 2.
Câest le meilleur talk que jâai jamais vu sur une approche pragmatique des stratĂ©gies de test. Je recommande Ă©normĂ©ment, jâai adorĂ©, et je nâai mĂȘme pas remarquĂ© quâils Ă©taient en galĂšre alors que leurs images ne chargeaient pas, ils avaient de la latence sur leurs diapositives et leurs notes avaient plantĂ© ! Bravo ! đđŒ
Suite Ă la prĂ©sentation, je pense ĂȘtre un good enoughâŠ
Remotion : faire un éditeur vidéo en React, par Jonny Burger
Ah Remotion, jâen ai entendu parler partout : plusieurs de mes collĂšgues ont travaillĂ© sur un site de gĂ©nĂ©ration de vidĂ©os courtes 3 se basant sur Remotion.
Jonny Burger en est le dĂ©veloppeur principal, et il nous a prĂ©sentĂ© en 30 minutes comment recoder un Ă©diteur vidĂ©o comme Davinci Resolve, Adobe Premiere Pro, Final Cut⊠Il nous raconte certains des challenges quâil a rencontrĂ©s pour des features auxquelles nous sommes habituĂ©s (rendering, sĂ©lection dâitems) et comment il a trouvĂ© des solutions en react.
Le talk permet de voir plusieurs choses : lâordre dâaffichage de composants sur du html, la gestion de la propagation dâĂ©vĂ©nements sur un clic, comment mettre de lâIA dans son talk.
Ce talk mâa trĂšs fortement inspirĂ© pour reprendre un projet qui mâinspire depuis longtemps sur les logiciels de MAO⊠Peut-ĂȘtre basĂ© sur Remotion⊠đ«Ł
Petite info impressionnante : pour rentrer chez lui, Jonny est reparti Ă vĂ©lo depuis Lyon jusquâĂ la Suisse⊠Quelle motivation⊠Câest une personne trĂšs motivĂ©e, trĂšs enthousiaste et drĂŽleâŠ
Lâheure du repas
Le repas Ă©tait dĂ©licieux. Il y avait beaucoup de nourriture vĂ©gane disponible et tout Ă©tait trĂšs bon. Merci Maison Margotin pour ce pareil repasâŠ
La couleur avec Julien Sulpis
Le talk post repas du midi est un moment particulier : la digestion sâenclenche, le corps nâest plus prĂ©sent et le cerveau non plus. Pas de problĂšme pour Julien qui nous prĂ©sente ce quâest la couleur, comment on la reprĂ©sente, et pourquoi câest important ! Bravo Ă mon autre talk prĂ©fĂ©rĂ© ex ĂŠquo.
Julien est un ami Ă moi qui ne cesse de mâĂ©tonne par la quantitĂ© de choses quâil sait, et ce talk sur la couleur est une preuve da la richesse des sujets quâil arrive Ă maitriser.
Pour les plus pressé·es, son talk est déjà en ligne 4 !
Julien prĂ©sente dâune façon trĂšs scientifique les problĂ©matiques suivantes : pourquoi certaines ont lâair plus lumineuses que dâautres ? Peut-on crĂ©er une formule pour respecter les contrastes ? Dans une approche qui allie biologie, physique, mathĂ©matiques, 3D et couleurs, Julien nous explique tout et franchement je me suis senti bien plus intelligent en sortant quâen entrant !
Le crafts dans le CSS, avec Manon Carbonnel
Manon Carbonnel est une personne que je suis sur les rĂ©seaux depuis 4 ans. Nous Ă©tions dans la mĂȘme entreprise, mais pas la mĂȘme ville, et je crois me souvenir quâelle partageait Ă propos de bonnes pratiques et de CSS depuis un moment dĂ©jĂ .
Son talk prĂ©sentait, en trois modes dâintervention, comment amĂ©liorer la qualitĂ© de code html / css pour rĂ©ussir Ă faire du code rĂ©parable, maintenable et beau.
Elle nous a partagĂ© plusieurs techniques pour amĂ©liorer lâaccessibilitĂ© de ses pages, comment amĂ©liorer la lisibilitĂ© de son code, et pour ĂȘtre franc jâai Ă©tĂ© captivĂ© par son enthousiasme Ă parler de css.
Le moment choquant pour moi, câĂ©tait quâelle a rĂ©ussi Ă mâexpliquer le systĂšme de prioritĂ©s dâapplications de style, et je me rends compte que je nâai jamais cherchĂ© Ă creuser plus cette partie qui pourtant est bien !important
e !!! Ce sont les nombres un peu Ă©tranges que vous pouvez voir dans votre Ă©diteur de code quand vous survolez une classe.
Je nâai pas encore tout assimilĂ©, et je nâai pas la mĂȘme expĂ©rience que Manon. Je nâai jamais Ă©tĂ© un pompier dâintĂ©gration CSS, et jâai principalement travaillĂ© sur des applications avec de bons design systems bien conçus dont ma seule valeur ajoutĂ©e en tant que frontend câest mettre les bons espacements et les bonnes typographiques. Mais elle me donne des billes pour remettre en question mes approches html css, et surtout elle me confirme des annĂ©es de test un peu faites dans le noir.
CâĂ©tait un trĂšs bon talk en tout cas qui me motive Ă faire du style sans Tailwind ! Et Manon avait presque littĂ©ralement des Ă©toiles dans les yeux en parlant de CSS et je me suis senti transportĂ© par cet enthousiasme.
Deno, un autre runtime javascript
Nous, les développeurs Javascript, avons un petit défaut : nous aimons réinventer la roue. Nous avons réinventé les serveurs avec node
, nous avons réinventé le web avec les single page app
, nous avons réinventé le CSS avec tailwindcss
, et maintenant nous réinventons node
avec Deno
.
JĂ©rĂ©mie Patonnier nous prĂ©sente avec un trĂšs remarquable enthousiasme comment Deno, qui est la mĂȘme chose que node
, mérite notre attention.
Câest un peu difficile pour moi de suivre des talks trĂšs techniques. Par lĂ je veux dire, le talk Ă©tait uniquement Ă propos de Deno, ses fonctionnalitĂ©s, la façon de travailler avec. Je suis un plus grand fan prĂ©sentation incluant enjeux politiques, questions territoriales, souveraintĂ© du numĂ©rique, avec beaucoup de transversalité⊠Bref, je me suis cru au MIXIT 5 ^^.
MalgrĂ© cette difficultĂ©, jâavoue quâil mâa donnĂ© envie dâessayer, et de toute façon, je nâai pas le choix : ce blog est hĂ©bergĂ© sur des edge function de Netlify qui utilisent Deno. Jâutilise dĂ©jĂ Deno dans ma vie quotidienne et pourtant je nây comprends rienâŠ
Apparemment, le fait de ne plus avoir besoin dâun fichier pour dĂ©clarer la liste des dĂ©pendances est un game changer. Je vais me forcer⊠à lâorigine, câest ce qui me rebutait le plus avec Deno : oĂč vont les dĂ©pendances ? Je vous invite Ă regarder la documentation 6 pour comprendre oĂč elles peuvent ĂȘtre dĂ©clarĂ©es.
Last but not least : Julien Huang qui nous parle de composants serveurs Nuxt
Pour clĂŽturer la journĂ©e de talks, nous avons eu droit Ă une prĂ©sentation dâun des membres de la core team de Nuxt : Julien Huang
La prĂ©sentation montrait trĂšs techniquement comment fonctionnaient les serveurs composants de Nuxt, avec un objectif de ne pas critiquer lâapproche de Nextjs. FĂ©licitations Julien tu y es arrivĂ© !
Comme je lâai Ă©crit juste avant, cela a Ă©tĂ© un peu difficile pour moi de suivre la prĂ©sentation, car elle Ă©tait trĂšs technique et spĂ©cifique, et pourtant pas mal de mes applications personnelles sont codĂ©es en Nuxt mais je nâai pas encore eu besoin de cette fonctionnalitĂ©. Je vais mâessayer Ă la prĂ©sentation.
LâidĂ©e des serveurs components, câest prendre un composant Vuejs ou Reactjs, et se dire : le serveur va construire le composant lâentier, effectuer des appels dans le backend, crĂ©er une page HTML entiĂšre, et lâenvoyer ensuite au navigateur. Cette approche permet de se passer totalement dâun serveur supplĂ©mentaire.
Je me demande toujours si les serveurs functions et les serveurs components ne sont pas trop complexes. Je trouve que ces approches créent une forte adhérence au framework dans la communication entre le frontend et le backend.
Cela sâinscrit dans technique dâarchitecture du web que je nommerais bien conception intrinsĂšque. Les composants sont de plus en plus indĂ©pendants, contiennent de plus en plus leurs fonctionnalitĂ©s, et il nây a plus besoin de crĂ©er de trĂšs grands systĂšmes trĂšs couplĂ©s. Ils sont intrinsĂšquement fonctionnels, et idĂ©alement indĂ©pendants.
Le risque, câest que de trĂšs fortes logiques business peuvent se retrouver implĂ©mentĂ©es dans les composants de votre framework prĂ©fĂ©rĂ©, et je ne suis pas convaincu que cette approche soit pĂ©renne sur la durĂ©e.
Ă voir ce que Nuxt propose pour Ă©viter ces problĂ©matiques, mais sur le coup, et pour donner une opinion impopulaire, je pense que lâapproche MVVM incite plus Ă Ă©crire des gros spaghettis de code trĂšs intriquĂ©s avec les 3/4 de lâapplication.
Jâai pu Ă©changer dans la partie suivante avec Julien pour parler plus gĂ©nĂ©ralement de Nuxt, et jâai appris beaucoup de choses. Par exemple, ils ne sont que 3 pour trier tous les tickets de bugs crĂ©Ă©s sur GitHub ! Jâai aussi pu raconter avec fiertĂ© que jâai dĂ©jĂ une fois fait une contribution pour Nuxt 7.
JâĂ©tais vraiment content de pouvoir parler de Nuxt, et mĂȘme si mon cĆur converge plutĂŽt vers Astro, jâaime Ă©normĂ©ment ce que Nuxt apporte en ce moment, et jâai hĂąte de pouvoir trouver des usages pour tout ce que jâai appris.
Il y a aussi beaucoup de choses dĂ©veloppĂ©es dont on ne parle pas assez : Nuxt Content, Nuxt UI, les devtools vuejs (mais pas que), toutes ces choses qui ne servent pas que pour faire du VueJS ou au contraire qui dĂ©passent ce quâon attendrait dâun framework.
LâapĂ©ro et conclusion
Pfiou ! CâĂ©tait dense ! Quoi de mieux que dâĂ©tancher sa soif de connaissance autour dâun verre de Perrier ?
Peut-ĂȘtre câest mon cĂŽtĂ© trĂšs social, et jâen parlais dĂ©jĂ dans un prĂ©cĂ©dent article de blog 8, mais jâadore discuter, faire des rencontres, Ă©changer.
Jâai eu la joie de discuter au cours de la journĂ©e avec les speakers, avec dâautres dĂ©veloppeurs·euses, des moins dĂ©veloppeurs·euses, au sein de la communautĂ© lyonnaise. CâĂ©tait trĂšs sympathique. Jâai passĂ© un excellent moment de partage, discutĂ© avec mes anciens collĂšgues, avec des gens que je ne connaissais pas du tout. Ce serait avec plaisir de garder contact avec vous toutes et tousâŠ
Le LyonJs đŻ, pour une premiĂšre confĂ©rence, câĂ©tait un đŻ (sans) faute⊠La salle Ă©tait trĂšs confortable, le repas Ă©tait parfait, le timing Ă©tait trĂšs bon, le prix dĂ©risoire (seulement 40â⏠la journĂ©e !!), les sujets Ă©taient variĂ©s et les discussions Ă©taient top.
Bravo pour lâorganisation. Jâai adorĂ©, et Ă quand la deuxiĂšme Ă©dition du LyonJS đŻ ???
Footnotes
-
LyonJS #95 - Transpilation : Comment coder dans un langage quand on ne connaĂźt pas ce langage â©
-
shortvid.io pour gĂ©nĂ©rer des vidĂ©os de rĂ©seaux sociaux â©
-
Savez-vous vraiment ce quâest la couleur ? DĂ©couvrez la science derriĂšre les pixels â©
-
Un des meilleurs talks que jâai vu est le suivant : Enjeux gĂ©opolitiques des infrastructures numĂ©riques â©
-
La documentation de DenoJs â©
-
La pull request de ma contribution âš â©