Mon DevFest Nantes 2024
- 19 octobre 2024
Comme chaque année la Cité des Congrès de Nantes accueillait les 17 et 18 octobre 2024 le DevFest Nantes, la conférence phare des développeurs à Nantes. Chaque année les organisateurs proposent un thème, l’effroi cette année. Contrairement aux dernières éditions je n’ai pas eu la chance d’être retenu comme speaker (j’avais proposé un sujet sur la gestion et l’optimsiation des images sur le web). Et comme mon entreprise n’était pas sponsor cette fois, c’est en simple participant que j’ai assisté au DevFest. Sans le petit stress de la conférence à assurer ou du stand à animer donc, mais cette petite dose d’adrénaline m’a quand même un peu manqué ! Je vous propose de résumer les talks qui m’ont le plus plu pendant ces deux jours intenses. Une belle édition avec des talks de grande qualité ! Un grand merci aux organisateurs, aux équipes de bénévoles, aux sponsors et à toutes ces speakeuses et speakeurs talentueux !
La foule qui fait peur
La keynote d’ouverture du DevFest Nantes 2024 était assurée par Mehdi Moussaid, chercheur à l’institut Max Planck de Berlin, spécialisé en fouloscopie, l’étude du comportement des foules. Dans un DevFest dont le thème était l’effroi, il s’est intéressé à la peur de la foule. Comment fonctionne une foule ? Comment naissent les mouvements de foule ? Quels sont les facteurs de risque ? Comment les maîtriser ? Voilà les quelques questions auxquelles Mehdi Moussaid a répondu. Un sujet bien loin de nos préoccupations de devs mais que j’ai trouvé passionnant et parfaitement présenté par un excellent speaker. Mehdi Moussaid gère la chaîne Youtube @Fouloscopie dans laquelle il propose des vidéos courtes sur différents phénomènes liés aux foules (par exemple sur les rumeurs, les mouvements de foule, l’intelligence collective).
Micro Frontend - Libérer le potentiel de l’Importmap
Quand on évoque des solutions de microfrontend, on entend souvent parler de Single SPA ou de Module Federation. Mais je n’avais jamais entendu parler de la solution des import maps, solution présentée par Jonathan Gelin, freelance venu de Belgique. Cette fonction est pourtant intégrée à nos navigateurs web pour gérer les modules Javascript. Les import maps permettent d’associer une URL de ressource à un module Javascript. On peut ensuite surcharger cette URL dans le navigateur pour la faire pointer par exemple sur une machine de développement, facilitant ainsi le développement et la mise au point d’un microfronted, tout en l’exécutant dans le contexte de l’application à laquelle il participe (les autres microfrontends en fait). Autre cas d’utilisation intéressant : dans le cadre d’une merge / pull request, on pousse le code sur un serveur et on fournit une import map dans laquelle le module pointe sur ce serveur, permettant ainsi de facilement tester le code de la merge / pull request. Un talk inspirant, des explications claires et pertinentes et une belle disponibilité de Jonathan après le talk. Même si je trouve que le sujet aurait mérité une démo d’un exemple complet de microfrontend avec toutes les complexités liées.
Code Case : les méthodes de la crim adaptées au code !
Sylvain Coudert, freelance et organisateur du podcast Punkindev, nous a conviés à le suivre dans une enquête à la recherche des problématiques d’une base de code. Il s’agissait en fait d’un retour d’expérience d’une vraie mission au cours de laquelle, pour identifier ce qui posait des difficultés dans une base de code, il a appliqué une méthode inspirée du livre de Adam Tornhill, Your code as a crime scene. Pour résumer très succintement, l’idée de cette méthode est d’analyser les logs Git à l’aide de quelques utilitaires pour identifier les points chauds du code et vérifier s’ils sont bien responsables des problèmes de notre code. Une véritable enquête, avec recueil des indices, identification de suspects, interrogatoires, etc… Un talk très original et une mise en scène très réussie, avec un beau storytelling, un véritable jeu d’acteur et un costume à la Dick Tracy du plus bel effet !
AnalogJS, le meta-framework pour Angular que l’on attendait plus (ou pas)
Alors que tous les écosystèmes Javascript ont depuis longtemps leur meta-framework (Next.js et Remix pour React, Nuxt pour Vue, SvelteKit pour Svelte, etc…), Angular résistait encore ! Ce n’est désormais plus le cas avec l’arrivée de AnalogJS, meta-framework pour Angular présenté dans ce talk par Benjamin Legrand, tech lead chez Onepoint. Benjamin a expliqué les intérêts d’un meta-framework (server side rendering, static site generation, file system based routing, …) et présenté le fonctionnement de AnalogJS. Un talk très intéressant même si j’aurais aimé plus de démo. Comme l’a signalé Benjamin, il y a une convergence de tous ces frameworks vers des principes de fonctionnement très similaires, cela devrait donc devenir plus facile de passer de l’un à l’autre. En terme de convergence, Analog pousse également de plus en plus Angular vers une syntaxe à la Vue. L’outil me semble encore manquer de maturité par rapport à ses concurrents (en particulier Next.js). D’ailleurs Benjamin n’envisage pour l’instant qu’un périmère d’usage réduit. Mais il comble un vide dans l’écosystème Angular et s’enrichira sans nul doute dans les temps futurs, permettant aux devs Angular d’enfin bénéficier des avantages offerts par ces meta-frameworks !
React Compiler : Easier, Better, Faster, Stronger
Lucas Audart et Mickaël Alves, tous les deux de Zenika Lyon, ont présenté React Compiler, un des sujets d’actualité du moment dans l’écosystème React. La promesse de React Compiler : réaliser à la place du dev toutes les optimisations de re-render des composants React. Et supprimer ainsi tout ce qu’on doit aujourd’hui faire manuellement avec React.Memo, useMemo ou useCallback quand on rencontre des problèmes de performances de rendu dans une application. Seule contrainte pour que React Compiler fonctionne : que notre code respecte les Rules of React, mais je n’imagine pas que ce ne soit pas le cas aujourd’hui sur une base de code ! L’équipe de React a d’ailleurs prévu une commande pour vérifier la compatibilité du code avec React Compiler ainsi qu’un plugin ESLint permettant d’appliquer ces fameuses bonnes pratiques de React. J’avais une vision de React Compiler comme ayant un fonctionnement complexe, mais Lucas et Mickaël ont montré que ses principes étaient finalement assez simples. Cette feature de React est déjà utilisée en prod sur Instagram, mais étant donné qu’elle est encore officiellement expérimentale, ils déconseillent de l’utiliser en prod (ils sont d’ailleurs tombés sur quelques problèmes). J’ai trouvé ce talk brillant, présenté avec de l’humour, des explications limpides, une démo pertinente. Un des mes coups de coeur de ce DevFest Nantes 2024 !
Cyber Resilience Act : 21 mois pour y préparer vos chaînes DevSecOps
Parler réglementation européenne dès la première conférence du matin, pas ce qu’il y a de plus fun ! C’était pourtant le sujet de David Robin, ingénieur chez JFrog, qui a présenté le Cyber Resilience Act, une réglementation européenne entrée en vigueur le 10 octobre dernier. Cette réglementation s’adresse aux entreprises qui livrent un produit numérique distribué chez des clients: un logiciel, un objet connecté, une application mobile, … Les produits SAAS ou les solutions sur mesure sont en théorie exclus du dispositif (car le produit tourne sur les serveurs du fournisseur de services), mais la simple mise à disposition d’une application mobile les fait entrer dans le périmètre de la réglementation. Dans les grandes lignes, cette réglementation impose aux créateurs de produits d’assurer les mises à jour de sécurité de leurs produits pendant toute sa durée du vie, d’alerter les utilisateurs des vulnérabilités détectées, de les corriger rapidement, etc… C’est donc la sécurité de toute la supply chain qui doit être assurée. Pour certains produits classés à risque (firewalls, gestionnaires de mot de passe, etc…) un audit de l’ANSSI permettra même d’apposer un tampon CE sur le produit. En cas de non respect de cette réglementation, de lourdes amendes, voire le retrait du produit du marché. Une bonne introduction donc à ce Cyber Resilience Act que je découvrais à titre personnel, et une clarification bienvenue sur qui est concerné et dans quel cadre.
Alors, quoi de neuf dans ES2026 ?
Je suis vraiment admiratif de l’aisance de certains speakers sur scène ! Et c’était le cas avec Christophe Porteneuve, dont c’était le 151ème talk, un chiffre astronomique qui explique une certaine habitude de l’exercice ! Christophe est une des pointures de Javascript en France, il a contribué à de nombreux projets de l’écosystème Javascript et est aujourd’hui responsable du frontend chez Doctolib. Dans ce talk, il a donc logiquement parlé de … Javascript ! Après avoir expliqué le fonctionnement des comités en charge de faire évoluer le standard ECMAScript, il a fait un retour sur quelques nouveautés passées inaperçues dans les versions précédentes puis a présenté les nouveautés à venir dans ECMAScript 2026. J’ai en particulier été absolument bluffé par l’API Temporal qui vous permettra de mettre à la poubelle les librairies de gestion de date que vous utilisez aujourd’hui ! Un talk super intéressant, très dynamique, ponctué de punchlines très drôles, j’ai adoré !
Au passage, dans ce talk Christophe a rappelé que l’utiliation du terme ECMAScript (alors qu’on sait tous qu’on parle de Javascript !) vient du fait que Javacript est une marque commerciale détenue par Oracle. Qui n’en fait pas grand chose … Une pétition est donc en ligne pour demander à Oracle de placer la marque Javascript dans le domaine public. Vous pouvez la signer ici.
Les aventuriers de la motivation perdue
Dans les conférences tech, il n’y a heureusement pas que de la tech. Certains talks nous amènent à prendre un peu de hauteur sur la société dans son ensemble, notre métier, nous-même. Et parfois un de ces talks vous touche car il fait écho à des questions qu’on se pose ou qu’on s’est posé, à des situations qu’on a vécues ou qu’on vit. Ça a été le cas pour moi de ce talk donné par Noémie Delrue (que j’avais eu le plaisir de croiser il y a quelques années au Camping des Speakers, mais que je n’avais pas reconnue tout de suite !). Dans ce talk Noémie a posé une question fondamentale : qu’est-ce qui nous motive à nous lever tous les matins pour aller travailler ? Et comment entretenir cette motivation sur la durée dans un secteur où la pression est forte (voir le nombre de burnouts dans notre secteur) et une bonne partie de notre boulot consiste à gérer les emmerdes ? Parmi les idées clés proposées par Noémie : ne pas accorder plus d’importance qu’il ne le faut au regard des autres, savoir être reconnaissant avec soi-même (j’ai beaucoup aimé cette idée de noter immédiatement ce qu’on a fait de positif, ce dont on est fier, pour pouvoir le relire quand on n’a pas le moral), savoir dire non (en particulier à ces injonctions au fil d’une carrière à prendre des responsabilités jusqu’au Graal, être manager, alors que peu de personnes sont faites pour manager !) et savoir dire merci ! C’est d’ailleurs par une séance de mercis que ce talk s’est terminé. Je conclue donc en toute logique avec un grand merci à Noémie pour ce talk très inspirant !
Anatomie d’une faille
Il y a quelques mois une faille dans le projet xz-utils, un package de compression de données, a été à deux doigts de provoquer une catastrophe mondiale en ouvrant une backdoor sur de nombreux systèmes Linux. Seul un heureux concours de circonstance a permis d’éviter le désastre ! C’est l’histoire incroyable de cette faille qui a été racontée par Olivier Poncet, CTO chez Arneo. Olivier s’est d’abord intéressé au long travail d’ingénierie sociale mis en oeuvre par le pirate (dont on soupçonne qu’il était en fait un groupe étatique) pour prendre possession du projet xz-utils. Puis il a détaillé comment le pirate avait réussi à cacher cette backdoor aux yeux de tous. Et enfin comment cette faille a été détectée sur le fil par un développeur allemand, Andres Freund, une sorte de super héros du monde numériqe ! Un scénario digne des meilleurs thrillers et qui se termine bien, comme tous les blockbusters ! À travers ce talk, Olivier a voulu mettre en évidence l’importance de sécuriser la supply chain de nos produits, porter une attention particulière à toutes ces briques externes aujourd’hui incontournables mais qui peuvent mettre en danger nos produits. C’était assez effrayant en fait, bien dans le thème de ce DevFest !
Boostez vos sites et applications web avec le code HTTP “103 Early Hints”
Pour clore mon DevFest Nantes 2024, un quickie au programme, donné par Kévin Dunglas, co-fondateur de la SCOP Les-tilleuls.coop. Kévin a présenté en une vingtaine de minutes un code de réponse HTTP méconnu : le code 103. Le principe : lorsque le client (le browser) demande une page HTML, le serveur lui retourne immédiatement une réponse temporaire avec le code 103 et une liste de ressources à charger (feuilles de style CSS, fichiers Javascript, images, etc…) alors qu’habituellement cette liste est intégrée dans la page HTML retournée. Pendant que la page HTML est construite côté serveur (et ça peut prendre un certain temps), le browser peut donc déjà démarrer le chargement de ces ressources. Et lorsque la page HTML (avec un code HTTP 200) est retournée pour la requête initiale, les ressources référencées par cette page HTML sont déjà en cours de chargement. On améliore ainsi le LCP (Largest Contentful Paint), un des indicateurs de performance d’une page web. Ce mécanisme est supporté par tous les navigateurs du marché et, côté serveur, par Apache et Caddy, mais pas encore par Nginx de manière surprenante !