[{"data":1,"prerenderedAt":3723},["ShallowReactive",2],{"tag-data-événement":3},[4,315,542,1731,2162,2752,2925,3390],{"id":5,"title":6,"alt":7,"authors":8,"body":30,"date":288,"description":289,"extension":290,"image":291,"meta":292,"navigation":293,"ogImage":291,"path":294,"published":293,"reviewers":295,"seo":307,"stem":308,"tags":309,"__hash__":314},"blogs\u002Fblogs\u002F2024-08-27-retour-sur-le-devfest\u002Findex.md","Retour sur le DevFest","Les 6 et 7 Juin dernier s'est déroulée la 7ᵉ édition du DevFest Lille. Toute l'équipe HoppR était présente à l'événement. Retour sur cette journée riche en découvertes techniques et humaines",[9,15,20,25],{"id":10,"name":11,"image":12,"linkedin":13,"x":14},"e8163b24-7e01-41c5-adbf-0dc655f929d0","Nicolas Zago",".\u002Fassets\u002Fauthor-nicolas-zago.webp","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fnicolaszago\u002F",null,{"id":16,"name":17,"image":18,"linkedin":19,"x":14},"70a8663a-742d-4937-a6d4-5cef079b12c8","Théo Lanord",".\u002Fassets\u002Fauthor-tho-lanord.webp","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fth%C3%A9o-lanord\u002F",{"id":21,"name":22,"image":23,"linkedin":24,"x":14},"44e68e06-deec-41b6-87a4-833fec8c9953","Sébastien Jaupart",".\u002Fassets\u002Fauthor-sbastien-jaupart.webp","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fsebastien-jaupart\u002F",{"id":26,"name":27,"image":28,"linkedin":29,"x":14},"f09c2e62-135b-40c0-a141-b239e8e1e761","Elisa Degobert",".\u002Fassets\u002Fauthor-elisa-degobert.webp","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fdegobert\u002F",{"type":31,"value":32,"toc":276},"minimark",[33,38,42,49,52,55,60,63,76,82,88,93,96,100,105,108,111,114,117,120,123,126,129,132,135,146,150,153,156,159,162,165,168,171,174,188,191,212,215,224,228,231,234,237,240,243,246,249,258,262,265,273],[34,35,37],"h1",{"id":36},"devfest-lille-saison-7","DevFest Lille, saison 7 !",[39,40,41],"p",{},"Les 6 et 7 Juin dernier s'est déroulée la 7ᵉ édition du DevFest Lille au Grand Palais. Pour la première fois sur un format de 2 jours avec une soirée organisée à Grand Scène (on y reviendra plus tard). \nUne édition plus riche, plus dense avec 56 conférences et Talks, 1500 participants et une quarantaine de sponsors dont HoppR.",[39,43,44],{},[45,46],"img",{"alt":47,"src":48},"Photo de l’équipe HoppR","\u002Fcontent-assets\u002F2024-08-27-retour-sur-le-devfest\u002Fassets\u002Fimg1.webp",[39,50,51],{},"Toute l'équipe HoppR était présente à l'événement. Retour sur cette journée riche en découvertes techniques et humaines d'Emma, Elisa, Edouard, Théo, Nicolas G & Z, Anthony, Guillaume !",[39,53,54],{},"D’ailleurs, certains en ont profité pour compiler leur retour d’expérience et prendre des notes sur les talks qui les ont interpellés !\nAlors si vous n’avez pas pu y participer ou tout voir, la suite devrait vous intéresser !",[56,57,59],"h2",{"id":58},"petit-détour-sur-lengagement-du-devfest-lille","Petit détour sur l'engagement du DevFest Lille",[39,61,62],{},"Depuis quelques années, l'équipe du DevFest a fait un gros effort pour réduire l'impact de la conférence, notamment sur les déchets. Avec pour mot d'ordre, supprimer, réutiliser ou recycler et plusieurs initiatives déjà en place :",[64,65,66,70,73],"ul",{},[67,68,69],"li",{},"Fin des goodies (souvent inutiles) et thématique pour réutiliser les kakemonos et stand des années précédentes (organisation et sponsors).",[67,71,72],{},"Partenariat avec la Consignerie pour proposer aux participants des boissons dans des bouteilles en verre et des gobelets consignés.",[67,74,75],{},"Repas zéro déchet.",[39,77,78],{},[45,79],{"alt":80,"src":81},"Consigne boissons du Devfest","\u002Fcontent-assets\u002F2024-08-27-retour-sur-le-devfest\u002Fassets\u002Fimg2.webp",[39,83,84],{},[45,85],{"alt":86,"src":87},"Stand déjeuner avec lunch bag du Devfest","\u002Fcontent-assets\u002F2024-08-27-retour-sur-le-devfest\u002Fassets\u002Fimg3.webp",[39,89,90],{},[45,91],{"alt":86,"src":92},"\u002Fcontent-assets\u002F2024-08-27-retour-sur-le-devfest\u002Fassets\u002Fimg4.webp",[39,94,95],{},"À noter aussi leur travail sur l'accessibilité avec le sous-titrage réalisé par le Messageur, pour que les conférences puissent être accessible à tous les publics en situation de handicap 👏",[56,97,99],{"id":98},"retour-sur-les-conférences","Retour sur les conférences",[101,102,104],"h3",{"id":103},"survivre-dans-la-js-jungle-des-outils-de-tests-lise-quesnel-par-théo-lanord","Survivre dans la JS-jungle des outils de tests  (Lise Quesnel) par  Théo Lanord",[39,106,107],{},"Je tiens à faire un retour sur la conférence de Lise QUESNEL pour la remercier de m'avoir aider à voir plus clair dans la JS-jungle des outils de tests !",[39,109,110],{},"Avant tout, est-ce que tester, c'est douter ? Et oui, pourquoi tester ?",[39,112,113],{},"Tester manuellement est une activité chronophage avec des résultats non répétables. La force des tests automatisés est leur rapidité et leur répétabilité.\nCes deux qualités diminuent les boucles de feedback que soit en local, en pipeline de CI\u002FCD ou même en recette.",[39,115,116],{},"En quoi réduire la boucle de feedback est intéressant ?",[39,118,119],{},"Plus l'erreur est détectée tard dans la chaîne de valeur, plus elle sera coûteuse à réparer (Localisation, recontextualisation, etc).\nAssocié à de petites incrémentations, tester permet de délivrer de la valeur plus rapidement tout en augmentant la qualité.\nCe qui me tient à cœur, c'est d'augmenter la confiance entre les différentes parties prenantes (développeurs, PO, QA, etc) pour, à terme, diminuer la pression au quotidien.",[39,121,122],{},"Choisir ses outils en fonction du contexte",[39,124,125],{},"De nombreuses typologies d'outils existent (lanceurs, structurateurs, utilitaires, mocks, etc). Certains outils implémenteront tout ou partie de ces typologies.\nLe choix des outils varie en fonction de votre besoin et contexte.\nDans de nombreux cas, ils vous donneront des modèles de test sur lesquels poser vos premiers tests. Il est important de votre côté d'avoir un nommage de test explicite qui pourra déboucher vers un langage commun compréhensible par les développeurs et le métier.",[39,127,128],{},"Classifier les tests : Equilibre entre coût, rapidité et confiance",[39,130,131],{},"Vous trouverez dans la JS-Jungle de nombreux noms de tests (unitaire, intégration, bout en bout, acceptance, composants, contracts, etc). Je ne peux que vous conseiller d'en discuter avec vos collègues pour vous approprier ces notions au sein de votre équipe.",[39,133,134],{},"La question final sera donc lesquels utiliser et en quelle proportion ?",[39,136,137,138,145],{},"Si j'ai touché votre curiosité, n'hésitez à regarder mon ",[139,140,144],"a",{"href":141,"rel":142},"https:\u002F\u002Fblog.hoppr.tech\u002Fretour_%22survivre_dans_la_JS-jungle_des_outils_de_tests%22_de_lise_quesnel_au_devfest_2024",[143],"nofollow","retour plus complet sur cette même conférence",".\nEncore un grand merci et fécilitations pour la qualité de rédaction (métaphores, images, etc) et de narration de sa conférence !",[101,147,149],{"id":148},"de-lexclusion-à-linclusion-laccessibilité-numérique-pour-tous-et-toutes-emmanuelle-aboaf-par-elisa-degobert","De l'exclusion à l'inclusion : l'accessibilité numérique pour tous et toutes (Emmanuelle Aboaf) par Elisa Degobert",[39,151,152],{},"En France, 1 personne sur 6 est atteinte d’un handicap et il est la plupart du temps invisible. Pourtant, la majorité des sites web ne sont PAS accessibles.",[39,154,155],{},"Au-delà de l'enjeu moral de l'inclusion, ne pas rendre son site accessible, c'est réduire sa cible d'utilisateurs potentiels.",[39,157,158],{},"L'accessibilité nous profite à tous",[39,160,161],{},"On peut penser que les problèmes d'accessibilité ne nous touchent pas mais tout le monde bénéficie au quotidien d'inventions pensées pour des personnes atteintes de handicap: les SMS, la télécommande ou encore les livres audio en sont des exemples.",[39,163,164],{},"S'il s'agit d'une problématique permanente pour de nombreuses personnes, nous subissons tous à un moment de notre vie ce manque d’accessibilité, que ce soit de manière permanente, temporaire ou situationnelle.",[39,166,167],{},"En effet un rhume peut affecter notre capacité à parler, un bras cassé à utiliser nos mains (handicaps temporaires) ou des situations peuvent altérer nos capacités: lorsque nous sommes dans des endroits bruyants notre ouïe est impactée, lorsque l'on doit garder un bébé à bras tout en naviguant sur l'ordinateur notre motricité est impactée, etc.",[39,169,170],{},"Les erreurs que l'on fait tous et toutes…",[39,172,173],{},"La majorité des erreurs relèvent d'un usage imparfait du langage HTML :",[64,175,176,179,182,185],{},[67,177,178],{},"textes alternatifs manquants (alt dans les images et les boutons contenant qu'une image),",[67,180,181],{},"étiquettes manquantes dans les formulaires (un label doit avoir l'attribut for défini avec le même nom que l'attribut id de l'input correspondant),",[67,183,184],{},"liens vides (les urls ne suffisent pas toujours à savoir quel lien correspond à quoi, utilisez l'attribut title)",[67,186,187],{},"langue manquante du site (l'attribut lang dans la balise html définit la langue du site).\nPar exemple, en définissant la langue de votre site, les lecteurs d'écran vont savoir quel accent utiliser\n(pour ne pas lire du texte français avec un accent anglais) et votre navigateur évitera de faire des traductions surprenantes\n(comme traduire le prénom Jimmy par pied-de-biche !).",[39,189,190],{},"Comment savoir si votre site est accessible ?",[39,192,193,194,199,200,205,206,211],{},"👉 Vous pouvez retrouver plein de ressources sur le sujet de l'accessibilité sur le ",[139,195,198],{"href":196,"rel":197},"https:\u002F\u002Fwww.a11yproject.com\u002F",[143],"projet a11y","\net la liste des règles d'accessibilité sur ",[139,201,204],{"href":202,"rel":203},"https:\u002F\u002Fwcag.com\u002F",[143],"WCAG",", avec des exemples concrets.\n",[139,207,210],{"href":208,"rel":209},"https:\u002F\u002Fdeveloper.chrome.com\u002Fdocs\u002Flighthouse\u002Foverview",[143],"Lighthouse"," peut aussi vous aider à auditer l'accessibilité de votre site.",[39,213,214],{},"L'important est de sensibiliser à l'accessibilité autour de soi mais il est difficile de savoir si notre site est accessible.\navant de l'avoir confronté aux utilisateurs concernés.\nComme l'a conclu E. Aboaf, l'important est d'inclure des personnes handicapées dans les process : \"Nothing with us without us\" !",[39,216,217,218,223],{},"Je vous encourage vivement à aller voir le replay de son talk 🎤 pour en savoir plus et d'explorer ",[139,219,222],{"href":220,"rel":221},"https:\u002F\u002Fbento.me\u002Feaboaf",[143],"son site"," pour consulter ses articles sur le sujet.",[101,225,227],{"id":226},"maîtrisez-la-hype-passion-versus-raison-william-leemans-par-sébastien-jaupart","Maîtrisez la Hype : Passion versus Raison (William Leemans) par Sébastien Jaupart",[39,229,230],{},"La passion nous pousse parfois à tester les nouveautés de notre secteur. Parfois un peu trop...",[39,232,233],{},"S'exercer sur de nouvelles technologies contribue grandement à l'apprentissage et développent notre capacité à nous adapter. Néanmoins, les contraintes temporelles et financières d'un projet peuvent rapidement nous rattraper. Adopter une technologie trop tôt (par \"effet de mode\") ou s'entêter sur des technologies inadaptées à nos besoins peut avoir des effets néfastes pour nos projets.",[39,235,236],{},"William Leemans nous alertent face au \"chant des sirènes de la Hype\" et nous proposent un ensemble de bonnes pratiques, astuces et concepts pour s'y prémunir et faire les bons choix.",[39,238,239],{},"La notion de spike (que j'avoue avoir un peu oublié avec le temps) nous impose de timeboxer les essais d'une technologie pour, in fine, documenter et partager les découvertes et résultats obtenus et juger de la pertinence de son usage sur le projet.",[39,241,242],{},"Les choix éclairés d'une personne ou d'une équipe ne le sont pas toujours par d'autres. Généralement pris sur la base d'un contexte, ils peuvent être tracés par le biais d'un ADR (Architecture Decision Record), document retraçant un choix (architectural, de technologie, etc) incluant le contexte, les raisons de ce choix et ses potentielles alternatives. Ils encouragent la réflexion critique, améliorent la communication au sein des équipes et facilitent l'apprentissage continu. Très utile également pour onboarder de nouveaux collaborateurs sur un projet.",[39,244,245],{},"Quels que soient nos choix, les intérêts du projet doivent primer. Pour éviter de choisir un framework inadapté à nos contraintes, il est impératif d'analyser les besoins de nos projets. Pour cela, il est nécessaire de se documenter un maximum, s'imprégner de la philosophie de l'outil et appliquer directement les bonnes pratiques préconisées par la documentation officielle. La sobriété est de mise. Plus la stack est simple, moins il y aura de maintenance.",[39,247,248],{},"Bref, un équilibre à trouver entre innovation et stabilité.",[39,250,251,252,257],{},"Le ",[139,253,256],{"href":254,"rel":255},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=TPhRprV2L24",[143],"replay de la conférence"," est disponible sur Youtube.",[56,259,261],{"id":260},"rattrapage","Rattrapage",[39,263,264],{},"Avec 3 salles et plus d'une cinquantaine de sujets, il est impossible de suivre tous les sujets et c'est parfois difficile de faire son choix.",[39,266,267,268],{},"No stress, l'équipe a tout prévu et des replays sont disponibles sur la ",[139,269,272],{"href":270,"rel":271},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=eDCmfZUmsUA&list=PLuZ_sYdawLiXf92Uq5iE5LlYKrOv1IUvx&pp=iAQB",[143],"chaine Youtube du GDG France",[39,274,275],{},"Allez on se voit l’année prochaine 😄",{"title":277,"searchDepth":278,"depth":278,"links":279},"",2,[280,281,287],{"id":58,"depth":278,"text":59},{"id":98,"depth":278,"text":99,"children":282},[283,285,286],{"id":103,"depth":284,"text":104},3,{"id":148,"depth":284,"text":149},{"id":226,"depth":284,"text":227},{"id":260,"depth":278,"text":261},"2024-08-27T10:22:46.143Z","Les 6 et 7 Juin dernier s'est déroulée la 7ᵉ édition du DevFest Lille au Grand Palais. Pour la première fois sur un format de 2 jours avec une soirée organisée à Grand Scène (on y reviendra plus tard","md",".\u002Fassets\u002Fcover-image.webp",{},true,"\u002Fblogs\u002F2024-08-27-retour-sur-le-devfest",[296,302],{"id":297,"name":298,"image":299,"linkedin":300,"x":301},"838dec96-f9fc-404f-a302-07719225d785","Maxime Deroullers","https:\u002F\u002Fprod-files-secure.s3.us-west-2.amazonaws.com\u002F5863e833-64f2-4f13-9f7a-2c92c72b5bbf\u002Fc69d0b59-558d-4e48-879f-bea3fec1fdef\u002FLinkedin_Profile.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45HZZMZUHI%2F20240827%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20240827T102245Z&X-Amz-Expires=3600&X-Amz-Signature=11e2bdc81f73ae453331fd5d334bb1e97c35bc5f075ccbf072c6d349e83108d4&X-Amz-SignedHeaders=host&x-id=GetObject","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fmaxime-deroullers-1b5791137\u002F","https:\u002F\u002Fx.com\u002Fmderoullers",{"id":303,"name":304,"image":305,"linkedin":306,"x":14},"0bb914a6-f882-4951-bee6-53e8e8abb807","Emmanuelle Gouvart","https:\u002F\u002Fprod-files-secure.s3.us-west-2.amazonaws.com\u002F5863e833-64f2-4f13-9f7a-2c92c72b5bbf\u002Fc88f5dfa-16db-4e6f-acf1-34dd80ee8766\u002Femma_hoppr.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45HZZMZUHI%2F20240827%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20240827T102244Z&X-Amz-Expires=3600&X-Amz-Signature=15fc0a4d1e4645500844a19498b80c1d868a04913c404520471b3a6a00be86a0&X-Amz-SignedHeaders=host&x-id=GetObject","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Femmanuellegouvart-182b6ab2\u002F",{"title":6,"description":289},"blogs\u002F2024-08-27-retour-sur-le-devfest\u002Findex",[310,311,312,313],"veille tech","événement","devfest","others","N5ACW7zjk3mqK58dp5xjkD97DXrYtJXkvL1CNeYvIB8",{"id":316,"title":317,"alt":318,"authors":319,"body":328,"date":520,"description":521,"extension":290,"image":291,"meta":522,"navigation":293,"ogImage":291,"path":523,"published":293,"reviewers":524,"seo":537,"stem":538,"tags":539,"__hash__":541},"blogs\u002Fblogs\u002F2025-01-28-interview-chti-tremplin\u002Findex.md","Interview Ch’ti Tremplin","Elisa et Edouard, les 2 interviewés pour le tremplin 2024",[320,321,327],{"id":10,"name":11,"image":12,"linkedin":13,"x":14},{"id":322,"name":323,"image":324,"linkedin":325,"x":326},"02c620f8-3576-4943-b5cf-6117f99220a2","Edouard Cattez",".\u002Fassets\u002Fauthor-edouard-cattez.webp","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fedouard-cattez-865794133\u002F","https:\u002F\u002Fx.com\u002Fecattez",{"id":26,"name":27,"image":28,"linkedin":29,"x":14},{"type":31,"value":329,"toc":505},[330,333,342,348,352,359,362,369,372,375,381,384,387,390,396,399,402,405,408,414,417,420,426,430,436,439,445,452,455,461,464,470,473,476,482,485,496],[39,331,332],{},"Participer à une conférence en tant que speaker peut sembler intimidant, mais c’est aussi une expérience incroyablement enrichissante. C’est précisément pour aider celles et ceux qui souhaitent franchir ce cap et se lancer que le Ch’ti Tremplin a vu le jour : un programme qui accompagne six participants pendant plusieurs semaines pour les aider à affiner leur sujet, structurer leur talk, créer un support percutant et se préparer à parler devant un public.",[39,334,335,336,341],{},"A la précédente édition, 2 HoppRs ont participé au tremplin :  Elisa en tant que coachée pour son premier sujet \"",[139,337,340],{"href":338,"rel":339},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=8EN_hqU5zPU",[143],"À la découverte de Dependency Track","\" et Edouard en tant que coach.\nPetite interview pour vous partager leur expériences, les coulisses de cette expérience, les défis qu’ils ont relevés et les enseignements qu’ils en ont tirés 😄",[39,343,344],{},[45,345],{"alt":346,"src":347},"Présentation des interviewés Elisa Degobert, Software Crafteuse  chez HoppR et Edouard Cattez Head of Craft chez HoppR","\u002Fcontent-assets\u002F2025-01-28-interview-chti-tremplin\u002Fassets\u002Fimg1.webp",[56,349,351],{"id":350},"retours-de-elisa-sur-sa-participation-au-tremplin","Retours de Elisa sur sa participation au Tremplin",[101,353,355],{"id":354},"elisa-quest-ce-qui-ta-donné-envie-de-participer-au-chti-tremplin-pourquoi-as-tu-choisi-de-parler-de-dependency-track",[356,357,358],"strong",{},"Elisa : Qu'est-ce qui t’a donné envie de participer au Ch’ti Tremplin ? Pourquoi as-tu choisi de parler de \"Dependency Track\" ?",[39,360,361],{},"Depuis que je participe à des conférences tech comme Cloud Nord ou le Devfest, j’ai toujours été admirative des speakers. Leur capacité à captiver une salle, à transmettre leur passion et à rendre des sujets complexes accessibles me fascinait. Mais honnêtement, je me disais que je ne serais jamais capable de faire la même chose. Monter sur scène et parler devant une audience me semblait hors de portée, presque inatteignable.",[39,363,364,365],{},"Quand on m’a présenté le Ch’ti Tremplin et qu’on m’a encouragée à tenter l’aventure, j’ai d’abord hésité. J’avais peur de ne pas être à la hauteur. Mais l’idée que ce concours offrait un cadre bienveillant et un accompagnement m’a rassurée. C’était une chance unique de sortir de ma zone de confort, tout en me sentant soutenue. Alors, je me suis dit : ",[366,367,368],"em",{},"\"Pourquoi pas moi ? Si je ne tente pas maintenant, je ne le ferai jamais.\"",[39,370,371],{},"Le choix de parler de Dependency-Track n’a pas été un hasard. J’ai eu la chance de travailler sur la mise en place de cet outil au sein de la forge de développement de Worldline, où il a révolutionné notre manière de gérer la sécurité. Grâce à Dependency-Track, nous avons pu analyser plus de 3 500 applications, détecter des vulnérabilités et prioriser efficacement leur résolution. Ce sujet me tenait particulièrement à cœur, car je sais à quel point la sécurité peut être perçue comme un casse-tête pour les développeurs. Avec cet outil, j’ai vu qu’il était possible de transformer une contrainte en une opportunité d’amélioration, sans friction excessive.",[39,373,374],{},"J’ai aussi choisi Dependency-Track pour une raison très pratique : je connaissais bien le sujet ! C’était un projet auquel j’avais directement contribué, ce qui me permettait d’en parler avec naturel, sans avoir à réciter un texte appris par cœur. Je savais que si j’avais le trac sur scène, je pourrais improviser plus facilement, en me basant sur mes propres expériences.",[101,376,378],{"id":377},"elisa-comment-as-tu-vécu-les-semaines-de-coaching-quest-ce-qui-a-été-le-plus-marquant-ou-le-plus-challengeant-pour-toi-dans-cette-préparation",[356,379,380],{},"Elisa : Comment as-tu vécu les semaines de coaching ? Qu’est-ce qui a été le plus marquant ou le plus challengeant pour toi dans cette préparation ?",[39,382,383],{},"J’ai découvert un monde que je ne connaissais pas : celui de la préparation d’un talk. On ne se rend pas compte du travail qu’il faut pour structurer un message, capter l’attention d’un public et transmettre des idées de manière claire et impactante.\nLes semaines de coaching ont été une expérience à la fois enrichissante et exigeante, elles ont été rythmées par les répétitions en groupes restreints pour avoir des retours constructifs et enrichir ma présentation.",[39,385,386],{},"En parallèle, mon coach m’a guidé avec des conseils précieux et des anecdotes issues de son expérience en tant que speaker. Toute cette organisation m’a beaucoup aidé à garder le cap et à prendre confiance en moi pour le jour J.",[39,388,389],{},"Le plus challengeant pour moi a été d’adopter un ton plus narratif dans ma présentation. La dernière chose que je souhaitais c’était de présenter mon sujet de manière trop scolaire et ennuyeuse. Parler en public, ce n’est pas juste transmettre des informations, c’est aussi raconter une histoire et donner des idées de réflexion pour que l’audience réagisse et en tire quelque chose. Mon coach m’a aidé à trouver un fil rouge auquel je pourrais aussi me rattacher pendant ma présentation.",[101,391,393],{"id":392},"elisa-quest-ce-que-cette-expérience-ta-apporté-que-ce-soit-sur-le-plan-personnel-ou-professionnel-y-a-t-il-quelque-chose-qui-ta-surprise-dans-ton-propre-parcours",[356,394,395],{},"Elisa : Qu’est-ce que cette expérience t’a apporté, que ce soit sur le plan personnel ou professionnel ? Y a-t-il quelque chose qui t’a surprise dans ton propre parcours ?",[39,397,398],{},"Participer au Ch’ti Tremplin m’a fait grandir, tant sur le plan personnel que professionnel.",[39,400,401],{},"Sur le plan personnel, j’ai gagné en confiance en moi. Je me suis prouvée que je pouvais non seulement partager mes idées devant un public, mais aussi captiver et intéresser des gens avec un sujet qui me tient à cœur.",[39,403,404],{},"Sur le plan professionnel, cette expérience a renforcé ma capacité à vulgariser des sujets techniques. Cela m’a aussi ouvert de nouvelles perspectives : aujourd’hui, je me sens plus à l’aise pour participer à d’autres conférences.",[39,406,407],{},"Enfin, cette aventure m’a permis de rencontrer des personnes incroyables, toutes animées par l’envie de partager leurs connaissances.",[101,409,411],{"id":410},"elisa-si-tu-devais-donner-un-conseil-à-quelquun-qui-hésite-à-se-lancer-dans-une-aventure-comme-le-chti-tremplin-que-lui-dirais-tu",[356,412,413],{},"Elisa : Si tu devais donner un conseil à quelqu’un qui hésite à se lancer dans une aventure comme le Ch’ti Tremplin, que lui dirais-tu ?",[39,415,416],{},"Si vous hésitez à participer à une aventure comme le Ch’ti Tremplin, je n’ai qu’un conseil : foncez ! Oui, c’est un défi. Oui, cela demande du travail. Mais les bénéfices que vous en tirerez en valent largement la peine.",[39,418,419],{},"Vous n’avez pas besoin d’être parfait⋅e ou \"expert⋅e\" pour vous lancer. Ce qui compte, c’est d’avoir envie de partager quelque chose qui vous tient à cœur. Et surtout, vous ne serez pas seul⋅e. Le cadre bienveillant et l’accompagnement proposé vous aideront à progresser à chaque étape. Le plus dur, c’est de faire le premier pas et d’oser.",[39,421,422],{},[45,423],{"alt":424,"src":425},"Elisa, le jour J sur scène à la conférence Cloud Nord","\u002Fcontent-assets\u002F2025-01-28-interview-chti-tremplin\u002Fassets\u002Fimg2.webp",[56,427,429],{"id":428},"retour-dedouard-sur-son-rôle-de-coach","Retour d’Edouard sur son rôle de coach",[101,431,433],{"id":432},"edouard-quest-ce-qui-ta-motivé-à-devenir-coach-pour-le-chti-tremplin-et-quas-tu-pensé-du-sujet-delisa-dependency-track",[356,434,435],{},"Edouard : Qu’est-ce qui t’a motivé à devenir coach pour le Ch’ti Tremplin ? Et qu’as-tu pensé du sujet d’Elisa, \"Dependency Track\" ?",[39,437,438],{},"J’aime beaucoup accompagner les gens dans la prise de parole car c’est un domaine que j’affectionne particulièrement. Le sujet d’Elisa était l’occasion de remettre en perspective le travail du développeur vis à vis de son outillage. C’est une passerelle parfaite entre le monde du développement et le monde du cloud & devops.",[101,440,442],{"id":441},"edouard-comment-as-tu-accompagné-elisa-dans-la-structuration-de-son-talk-quels-ont-été-selon-toi-les-plus-grands-progrès-quelle-a-réalisés-pendant-ces-semaines",[356,443,444],{},"Edouard : Comment as-tu accompagné Elisa dans la structuration de son talk ? Quels ont été, selon toi, les plus grands progrès qu’elle a réalisés pendant ces semaines ?",[39,446,447,448,451],{},"En réalité, Elisa n’a eu aucune difficulté à définir un plan. Ce qui lui manquait surtout, c’était l’",[366,449,450],{},"histoire",", ce fil conducteur qui permet à l’audience de comprendre le déroulé sans effort et de s’ancrer dans une situation qui peut lui arriver.",[39,453,454],{},"L’effort était à mettre sur sa démo live, qui d’après moi était plus importante que ses slides.",[101,456,458],{"id":457},"edouard-quest-ce-que-cette-expérience-ta-apporté-en-tant-que-coach-as-tu-découvert-ou-renforcé-certaines-compétences",[356,459,460],{},"Edouard : Qu’est-ce que cette expérience t’a apporté en tant que coach ? As-tu découvert ou renforcé certaines compétences ?",[39,462,463],{},"Je dirais que cette expérience va dans la continuité de mon rôle de Head of Craft chez HoppR. J’ai pu transmettre mes connaissances et mes expériences en toute bienveillance et sans chercher à être le coach “héros” que l’on peut voir dans certains films.",[101,465,467],{"id":466},"edouard-quel-conseil-donnerais-tu-à-quelquun-qui-souhaiterait-devenir-coach-pour-une-aventure-comme-le-chti-tremplin",[356,468,469],{},"Edouard : Quel conseil donnerais-tu à quelqu’un qui souhaiterait devenir coach pour une aventure comme le Ch’ti Tremplin ?",[39,471,472],{},"Pourquoi la personne souhaite elle devenir speaker ? Qu’est-ce qui la satisferait dans l’idée de monter sur scène et de présenter son sujet ?",[39,474,475],{},"C’est pour moi des questions fondamentales que doit se poser un speaker, et donc son coach. Grâce à ça, le coach peut accompagner le coaché dans le format de la présentation ainsi que son contenu.",[56,477,479],{"id":478},"alors-quattends-tu-pour-te-lancer",[356,480,481],{},"Alors, qu’attends-tu pour te lancer ?",[39,483,484],{},"Le Ch’ti Tremplin est une opportunité unique de te préparer à devenir speaker, dans un cadre bienveillant et avec l’accompagnement personnalisé d’un coach dédié. Que tu sois passionné⋅e par le développement logiciel, le DevOps ou le Cloud, ou que tu souhaites simplement partager une idée qui te tient à cœur, ce programme est fait pour toi.",[39,486,487,488,491,492,495],{},"En plus, lors de la soirée finale, le public choisira deux talks qui seront sélectionnés pour le programme de ",[356,489,490],{},"DevLille"," les 12 et 13 juin, et un talk qui rejoindra celui de ",[356,493,494],{},"Cloud Nord"," en octobre à Euratech. Une belle manière de débuter sur scène devant une audience tech !",[39,497,498,499,504],{},"Ne réfléchis pas trop longtemps : ",[139,500,503],{"href":501,"rel":502},"https:\u002F\u002Fforms.gle\u002Fpvgu9tSFGSkumY3B7",[143],"Les candidatures sont ouvertes jusqu’au 15 février",", alors fonce ! 😉",{"title":277,"searchDepth":278,"depth":278,"links":506},[507,513,519],{"id":350,"depth":278,"text":351,"children":508},[509,510,511,512],{"id":354,"depth":284,"text":358},{"id":377,"depth":284,"text":380},{"id":392,"depth":284,"text":395},{"id":410,"depth":284,"text":413},{"id":428,"depth":278,"text":429,"children":514},[515,516,517,518],{"id":432,"depth":284,"text":435},{"id":441,"depth":284,"text":444},{"id":457,"depth":284,"text":460},{"id":466,"depth":284,"text":469},{"id":478,"depth":278,"text":481},"2025-01-28T07:40:21.432Z","Participer à une conférence en tant que speaker peut sembler intimidant, mais c’est aussi une expérience incroyablement enrichissante. C’est précisément pour aider celles et ceux qui souhaitent franch",{},"\u002Fblogs\u002F2025-01-28-interview-chti-tremplin",[525,527,532,534],{"id":297,"name":298,"image":526,"linkedin":300,"x":301},"https:\u002F\u002Fprod-files-secure.s3.us-west-2.amazonaws.com\u002F5863e833-64f2-4f13-9f7a-2c92c72b5bbf\u002Fc69d0b59-558d-4e48-879f-bea3fec1fdef\u002FLinkedin_Profile.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45FSPPWI6X%2F20250128%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20250128T074021Z&X-Amz-Expires=3600&X-Amz-Signature=c132405c84ba034764ac18052c695cb2b5c280474efac32900cd06e40264f342&X-Amz-SignedHeaders=host&x-id=GetObject",{"id":528,"name":529,"image":530,"linkedin":531,"x":14},"174f4462-cd38-8061-bc88-f29602fcef5d","Guillaume Ferlin","https:\u002F\u002Fprod-files-secure.s3.us-west-2.amazonaws.com\u002F5863e833-64f2-4f13-9f7a-2c92c72b5bbf\u002F27c18bae-6c33-403c-b7fd-7d46ce96c376\u002FGuillaume_Ferlin_Image.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45FSPPWI6X%2F20250128%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20250128T074021Z&X-Amz-Expires=3600&X-Amz-Signature=6e0534932218a0bda9f5bdb521380dd6f3927faacdb5c7f73423dc1ec546c3e3&X-Amz-SignedHeaders=host&x-id=GetObject","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fguillaume-ferlin-262681272\u002F",{"id":16,"name":17,"image":533,"linkedin":19,"x":14},"https:\u002F\u002Fprod-files-secure.s3.us-west-2.amazonaws.com\u002F5863e833-64f2-4f13-9f7a-2c92c72b5bbf\u002F53946b9e-3bb9-45bd-a8b4-429c51156179\u002FT04PC176TGB-U05EW3YF61Z-5e129f612df3-512.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIAT73L2G45FSPPWI6X%2F20250128%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20250128T074021Z&X-Amz-Expires=3600&X-Amz-Signature=1e352029ec982bf3ae50ae0825535c2478ee301db1bb24cb8aefbda7eddcc66c&X-Amz-SignedHeaders=host&x-id=GetObject",{"id":535,"name":536,"image":14,"linkedin":14,"x":14},"188f4462-cd38-80d5-b9e6-ec28a94d11e5","Bastien Dufour",{"title":317,"description":521},"blogs\u002F2025-01-28-interview-chti-tremplin\u002Findex",[311,540],"craft","6ngSjFnQS_iV5MB8euHxF97OP8U3EoUDXAx3SWTWF5s",{"id":543,"title":544,"alt":545,"authors":546,"body":552,"date":1717,"description":1718,"extension":290,"image":291,"meta":1719,"navigation":293,"ogImage":291,"path":1720,"published":293,"reviewers":1721,"seo":1726,"stem":1727,"tags":1728,"__hash__":1730},"blogs\u002Fblogs\u002F2025-04-15-dbrief-react-paris-2025\u002Findex.md","Débrief React Paris 2025","Photographie de la salle de conférence de React Paris. Le décor est luxueux mêlant moulures en bois et tons beiges pour la décoration",[547,549],{"id":535,"name":536,"image":548,"linkedin":14,"x":14},"\u002Fdefault-author-image.webp",{"id":550,"name":551,"image":548,"linkedin":14,"x":14},"197f4462-cd38-801b-859a-c33742e0ed0d","Pierre-Emmanuel Denys",{"type":31,"value":553,"toc":1703},[554,557,560,563,570,574,586,593,613,619,628,654,667,673,688,697,700,703,706,722,727,730,736,741,744,753,760,800,807,812,815,880,883,923,946,950,959,970,975,978,1015,1020,1027,1038,1052,1062,1065,1094,1105,1114,1117,1122,1125,1134,1140,1143,1152,1158,1161,1164,1173,1179,1186,1191,1197,1203,1206,1209,1214,1217,1220,1261,1265,1274,1286,1289,1292,1295,1300,1306,1311,1318,1323,1326,1333,1338,1341,1344,1349,1356,1360,1366,1384,1387,1391,1400,1403,1416,1419,1424,1427,1460,1465,1468,1550,1553,1563,1566,1610,1615,1618,1621,1649,1652,1655,1659,1668,1699],[34,555,544],{"id":556},"débrief-react-paris-2025",[39,558,559],{},"React Paris est un événement organisé par BeJs, association d’origine belge déjà à l’origine des événements React Brussels, React Africa et BeJS Conf. BeJS a été fondée en 2019 avec pour mission de présenter des conférences JavaScript dans des régions sous-représentées comme la Tunisie et le Maroc.",[39,561,562],{},"React Paris, comme les autres conférences BeJs, met en avant la diversité des intervenants grâce à des appels à propositions anonymisés, avec des règles privilégiant les speakers internationaux intervenants pour la première fois tout en faisant la part belle à la représentation locale.",[39,564,565,566,569],{},"En outre, les talks sponsorisés y sont interdits et sont ",[366,567,568],{},"single-track",".",[56,571,573],{"id":572},"les-speakers-et-les-sujets","Les speakers et les sujets",[39,575,576,577,581,582,585],{},"React Paris 2024 nous avait offert le plaisir de voir des talks de Josh W. Comeau et d’Anthony Fu. S’étalant sur deux jours, React Paris 2025 promettait de belles conférences avec notamment la participation de Kent C. Dodds, TkDodo (maintainer ",[578,579,580],"code",{},"TanStack\u002Fquery",") et David Khourshid (créateur de ",[578,583,584],{},"XState","). En outre, des talks sur l’accessibilité (Kateryna Porshnieva), les d_esign systems_ (Yu Ling Cheng, Jean Burellier), les React Server Components (Aurora Scharff), le testing côté frontend (Violina Popova, Kate Marshalkina) mais aussi la clean architecture dans un projet Remix (Antoine Chalifour) ainsi que le rôle de l'IA dans l'écosystème React (Tejas Kumar) étaient au menu de ces deux jours.",[39,587,588,589,592],{},"La grande majorité des conférences étaient de qualité et faisaient la part belle à des sujets et des approches variés. Pour cette année, nous vous proposons d’entrer dans le détail de quelques conférences relatives à l’écosystème front ",[366,590,591],{},"(bien que mon cœur t’appartiendra toujours cher petit framework au logo de molécule ⚛︎)"," :",[64,594,595,598,601,604,607,610],{},[67,596,597],{},"les dernières nouveautés CSS",[67,599,600],{},"l’accessibilité",[67,602,603],{},"les React Server Components",[67,605,606],{},"la naissance d’une nouvelle stratégie de tests incluant des champignons",[67,608,609],{},"comment mal utiliser un framework front",[67,611,612],{},"les mathématiques à la rescousse des développeurs front",[56,614,616],{"id":615},"csss-not-dead",[356,617,618],{},"CSS’s not dead",[39,620,621],{},[139,622,625],{"href":623,"rel":624},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=h_tMtyvVPY0",[143],[366,626,627],{},"I Can’t Believe It’s Not JavaScript",[39,629,630,631,636,637,636,642,647,648,653],{},"Depuis quelques années les conférences mettant en avant les nouvelles fonctionnalités CSS fleurissent. Jemima Abu revient dans son talk sur quelques unes de ces avancées qui permettront, quand la feature ne sera pas disponible depuis seulement 3 mois ou expérimentale, d’implémenter des ",[139,632,635],{"href":633,"rel":634},"https:\u002F\u002Fdeveloper.mozilla.org\u002Ffr\u002Fdocs\u002FWeb\u002FHTML\u002FGlobal_attributes\u002Fpopover",[143],"pop-over",", des ",[139,638,641],{"href":639,"rel":640},"https:\u002F\u002Fdeveloper.mozilla.org\u002Ffr\u002Fdocs\u002FWeb\u002FHTML\u002FElement\u002Fdialog#compatibilit%C3%A9_des_navigateurs",[143],"modal",[139,643,646],{"href":644,"rel":645},"https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FHTML\u002FElement\u002Fsummary#browser_compatibility",[143],"accordéons"," voire des ",[139,649,652],{"href":650,"rel":651},"https:\u002F\u002Fscroll-driven-animations.style\u002F",[143],"animations de scroll"," sans avoir à écrire de JavaScript.",[39,655,656,657,662,663,666],{},"C’est une bonne nouvelle, les implémentations en JavaScript pour ces éléments UI étant souvent impératives et assez bancales. Heureusement, Jemina Abu nous rappelle que ",[139,658,661],{"href":659,"rel":660},"https:\u002F\u002Fdeveloper.mozilla.org\u002Ffr\u002Fdocs\u002FWeb\u002FCSS\u002F:has#compatibilit%C3%A9_des_navigateurs",[143],"dès maintenant"," il est possible d’utiliser le fantastique sélecteur CSS ",[578,664,665],{},":has"," pour, notamment, cibler un parent en fonction de ses enfants 🤯.",[39,668,669],{},[45,670],{"alt":671,"src":672},"mème de la peluche Elmo en enfer disant en anglais “OMG AMAZING”","\u002Fcontent-assets\u002F2025-04-15-dbrief-react-paris-2025\u002Fassets\u002Fimg1.webp",[56,674,676,679,680,679,685],{"id":675},"i-lt3-html",[356,677,678],{},"I"," ",[356,681,682],{},[578,683,684],{},"&lt;3",[356,686,687],{},"HTML",[39,689,690],{},[139,691,694],{"href":692,"rel":693},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=tFO0-aMxitY",[143],[366,695,696],{},"Demystifying Accessibility in React Apps",[39,698,699],{},"L'accessibilité est un aspect crucial du développement web moderne, garantissant que les applications peuvent être utilisées par tous, y compris les personnes en situation de handicap. L’accessibilité ça n’est pas que pour les autres, c’est aussi pour soi plus tard.",[39,701,702],{},"Soyons donc un peu égoïste et ne demandons pas la permission pour écrire du code accessible, après tout le faisons-nous pour écrire du code propre ?",[39,704,705],{},"Lors de sa conférence, Kateryna Porshnieva rappelle les outils courants utilisés par les personnes en situation de handicap (lecteurs d’écran, voice control, etc.) et présente plusieurs outils et techniques pour améliorer l'accessibilité des applications React. Elle insiste notamment sur :",[64,707,708,711],{},[67,709,710],{},"l’importance du HTML et de sa sémantique",[67,712,713,714,717,718,721],{},"le recours à ",[578,715,716],{},"ARIA","  (",[366,719,720],{},"Accessible Rich Internet Applications"," soit« un ensemble de rôles et d’attributs qui définissent comment rendre le contenu et les applications web accessibles pour les personnes avec des handicaps ») lequel peut parfois poser plus de problèmes qu’il n’en résout s’il est mal utilisé",[39,723,724],{},[356,725,726],{},"L'importance de l'HTML",[39,728,729],{},"Tout commence avec le HTML. La structure HTML se transforme en arbre DOM, puis en interface utilisateur visuelle. L'arbre d'accessibilité, exposé aux technologies d'assistance et accessible aux dev tools, est également créé à partir de cette structure.",[39,731,732],{},[45,733],{"alt":734,"src":735},"Schéma avec de gauche à droite : le HTML avec une flèche pointant vers l’arbre du DOM, l’arbre du DOM avec deux flèches dont l’une pointe vers le rendu visuel et l’autre vers l’arbre d’accessibilité","\u002Fcontent-assets\u002F2025-04-15-dbrief-react-paris-2025\u002Fassets\u002Fimg2.webp",[39,737,738],{},[356,739,740],{},"Sémantique et ARIA",[39,742,743],{},"La sémantique HTML joue un rôle essentiel en transmettant le sens des éléments. Cependant, dans les interfaces modernes, les balises HTML peuvent ne pas suffire. La boîte à outils d’ARIA vient en aide en modifiant la signification des éléments HTML.",[39,745,746,747,752],{},"Prudence toutefois car la spécification ARIA recommande son utilisation uniquement lorsque la sémantique HTML ne permet pas de répondre à un besoin spécifique car, paradoxalement, les sites qui utilisent ARIA ont 34 % d'erreurs d'accessibilité en plus par rapport à ceux qui n'en font pas usage (",[139,748,751],{"href":749,"rel":750},"https:\u002F\u002Fwebaim.org\u002Fprojects\u002Fmillion\u002F#:~:text=74.6%25%20of%20the%20one%20million%20home%20pages%20used%20ARIA%20(excluding%20ARIA%20landmark%20roles).%20Home%20pages%20with%20ARIA%20present%20averaged%2034.2%25%20more%20detected%20errors%20than%20those%20without%20ARIA",[143],"source",").",[39,754,755,756,759],{},"Ainsi, transformer une ⁠",[578,757,758],{},"\u003Cdiv>"," en bouton en lui ajoutant le rôle adéquat :",[761,762,766],"pre",{"className":763,"code":764,"language":765,"meta":277,"style":277},"language-html shiki shiki-themes github-dark-default","\u003Cdiv role=\"button\">click\u003C\u002Fdiv>\n","html",[578,767,768],{"__ignoreMap":277},[769,770,773,777,781,785,788,792,795,797],"span",{"class":771,"line":772},"line",1,[769,774,776],{"class":775},"sZEs4","\u003C",[769,778,780],{"class":779},"sPWt5","div",[769,782,784],{"class":783},"sFSAA"," role",[769,786,787],{"class":775},"=",[769,789,791],{"class":790},"s9uIt","\"button\"",[769,793,794],{"class":775},">click\u003C\u002F",[769,796,780],{"class":779},[769,798,799],{"class":775},">\n",[39,801,802,803,806],{},"n’est pas une solution miracle : appliquer ⁠",[578,804,805],{},"role=\"button\""," à une div implique de fournir les fonctionnalités attendues d'un bouton à cet élément en plus de la simple indication de son rôle.",[39,808,809],{},[356,810,811],{},"Quelques éléments de la boîte à outils d’ARIA",[39,813,814],{},"Parmi les bonnes pratiques évoqués par Kateryna Porshnieva, on compte :",[64,816,817,832,843,853],{},[67,818,819,820,823,824,827,828,831],{},"l’attribut ⁠",[578,821,822],{},"aria-hidden",", utile pour masquer les éléments décoratifs, évitant qu'ils ne perturbent l'expérience utilisateur des lecteurs d'écran. Attention toutefois au recours à ",[578,825,826],{},"aria-label"," pour les boutons en forme d’icône puisque ces labels ne peuvent être traduits automatiquement. On préférera cacher visuellement le label (",[578,829,830],{},".sr"," avec Tailwind par exemple)",[67,833,834,835,838,839,842],{},"une bonne gestion du focus en ayant recours à ",[578,836,837],{},":focus-visible"," plutôt qu’au destructeur ⁠",[578,840,841],{},"*:focus { outline: none; }"," — le navigateur se chargeant de gérer intelligemment le focus visible ou non",[67,844,845,848,849,852],{},[578,846,847],{},":not(:has(:focus-visible))"," pour la gestion des éléments apparaissant au ",[366,850,851],{},"hover"," associé à l’utilisation de media queries ciblant les écrans tactiles",[67,854,855,856,859,860,863,864,871,872,875,876,879],{},"pour les formulaires, les recommendations sont nombreuses et de bon sens. On citera la génération d’",[578,857,858],{},"id"," unique avec le hook ",[578,861,862],{},"useId"," de React, l’utilisation astucieuse de ",[139,865,868],{"href":866,"rel":867},"https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAccessibility\u002FARIA\u002FReference\u002FAttributes\u002Faria-describedby",[143],[578,869,870],{},"aria-describedby"," pour contrebalancer le support hésitant de ",[578,873,874],{},"aria-errormessage"," et un peu de politesse avec les notifications dynamiques grâce à ",[578,877,878],{},"aria-live=\"polite\""," pour les notifications non urgentes.",[39,881,882],{},"Enfin, Kateryna Porshnieva rappelle qu’un code accessible, c’est aussi des tests front plus robustes !",[761,884,888],{"className":885,"code":886,"language":887,"meta":277,"style":277},"language-javascript shiki shiki-themes github-dark-default","const usernameError = screen.getByRole(\"alert\", {\n  name: \u002Fusername is too short\u002Fi\n});\n\nexpect(usernameError).toBeInTheDocument();\nexpect(username).toBeInvalid();\n","javascript",[578,889,890,895,900,905,911,917],{"__ignoreMap":277},[769,891,892],{"class":771,"line":772},[769,893,894],{},"const usernameError = screen.getByRole(\"alert\", {\n",[769,896,897],{"class":771,"line":278},[769,898,899],{},"  name: \u002Fusername is too short\u002Fi\n",[769,901,902],{"class":771,"line":284},[769,903,904],{},"});\n",[769,906,908],{"class":771,"line":907},4,[769,909,910],{"emptyLinePlaceholder":293},"\n",[769,912,914],{"class":771,"line":913},5,[769,915,916],{},"expect(usernameError).toBeInTheDocument();\n",[769,918,920],{"class":771,"line":919},6,[769,921,922],{},"expect(username).toBeInvalid();\n",[39,924,925,926,931,932,936,937,940,941,569],{},"Concernant le test de l’accessibilité en elle-même, Il existe plusieurs outils comme ",[139,927,930],{"href":928,"rel":929},"https:\u002F\u002Fwww.deque.com\u002Faxe\u002Fdevtools\u002F",[143],"axe DevTools",", ",[139,933,210],{"href":934,"rel":935},"https:\u002F\u002Fdeveloper.chrome.com\u002Fdocs\u002Flighthouse\u002Faccessibility\u002Fscoring?hl=fr",[143]," et le plugin ESLint ",[578,938,939],{},"jsx-a11y",". Enfin, des testeurs spécialisés peuvent être recrutés sur des plateformes comme ",[139,942,945],{"href":943,"rel":944},"https:\u002F\u002Fmakeitfable.com\u002F?utm_source=https%3A%2F%2Fblog.hoppr.tech",[143],"Fable",[56,947,949],{"id":948},"rsc-pas-de-client-pas-de-problème","RSC : pas de client, pas de problème",[39,951,952],{},[139,953,956],{"href":954,"rel":955},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=dA-8FY5xlbk",[143],[366,957,958],{},"React Server Components: Elevating speed, interactivity, and user experience",[39,960,961,962,965,966,969],{},"Voilà une démo impressionnante d'une application Todo réalisée par Aurora Scharff avec les composants serveur de React (RSC) – sans utiliser ⁠",[578,963,964],{},"useEffect"," ni ",[578,967,968],{},"⁠useState",". L'application finale s'affiche rapidement et répond rapidement, malgré des temps de réponse simulés côté backend vraiment très longs.",[39,971,972],{},[356,973,974],{},"Présentation de RSC",[39,976,977],{},"Les RSC s'exécutent côté serveur ou au moment de la compilation, sans dépendre des API du navigateur, de l'état ou des effets. Brièvement, ses avantages sont les suivants :",[64,979,980,986,992,998],{},[67,981,982,985],{},[356,983,984],{},"Réduction de la taille du bundle."," La taille du bundle envoyé au client est réduite, ce qui améliore les performances lors du chargement des pages",[67,987,988,991],{},[356,989,990],{},"Récupération asynchrone des données."," Les données sont récupérées de manière asynchrone depuis le composant lui-même, sans attendre que le composant soit monté côté client et sans devoir gérer un état local",[67,993,994,997],{},[356,995,996],{},"Accès direct aux ressources du backend."," Les ressources du backend sont accessibles directement puisque les appels sont exécutés côté serveur.",[67,999,1000,679,1003,1008,1010,1011,1014],{},[356,1001,1002],{},"Report du rendu et",[366,1004,1005],{},[356,1006,1007],{},"progressive enhancement",[356,1009,569],{}," Les composants non essentiels au chargement de la page sont rendus au besoin, avec une UI de chargement (",[578,1012,1013],{},"⁠\u003CSuspense>","), divisant le coût des requêtes réseau et du rendu entre client et serveur.",[39,1016,1017],{},[356,1018,1019],{},"Et côté code ?",[39,1021,1022,1023,1026],{},"Disponible depuis React 19, le hook ",[578,1024,1025],{},"⁠use"," est utilisé pour rendre de manière asynchrone un composant client qui prend une promesse en propriété, utile lorsque le composant a besoin d'accéder à des API du navigateur (et doit donc être un composant client) mais que le parent est un composant serveur qui ne doit pas bloquer le rendu pour des données dépendantes.",[39,1028,1029,1030,1033,1034,1037],{},"React 19 introduit également ",[578,1031,1032],{},"⁠useOptimistic"," pour rendre l'interface utilisateur sans attendre la réponse asynchrone. Aurora Scharff insiste également sur la pertinence d’utiliser ",[578,1035,1036],{},"⁠cache"," (toujours en canary au premier semestre 2025) :",[64,1039,1040,1049],{},[67,1041,1042,1043,1048],{},"pour mettre en cache des requêtes\u002Fcoûteux calculs, permettant le pré-chargement de données côté serveur (cf. ",[139,1044,1047],{"href":1045,"rel":1046},"https:\u002F\u002Ffr.react.dev\u002Freference\u002Freact\u002Fcache#preload-data",[143],"la documentation de React"," à ce sujet)",[67,1050,1051],{},"et, plus important encore, pour conserver le caractère composable des composants : deux composants peuvent appeler le même service API, sans redondance, les données récupérées par le premier seront réutilisables pour le deuxième",[39,1053,1054,1055,1057,1058,1061],{},"L'amélioration progressive (",[366,1056,1007],{},") est également possible via le composant ⁠",[578,1059,1060],{},"\u003CForm>"," de Next.js, qui repose sur HTML plutôt que sur JavaScript.",[39,1063,1064],{},"Enfin, le talk se termine sur quelques bonnes pratiques liées à l’utilisation des RSC :",[64,1066,1067,1074,1085],{},[67,1068,1069,1070,1073],{},"résoudre les promesses le plus profondément possible dans l'arbre de composants et non au plus haut niveau de la page (👉 ",[578,1071,1072],{},"getServerSideProps",") → ne bloque plus le rendu",[67,1075,1076,1077,1084],{},"les indicateurs de chargement avec interface utilisateur adaptée deviennent capitaux pour le ",[139,1078,1081],{"href":1079,"rel":1080},"https:\u002F\u002Fweb.dev\u002Farticles\u002Fcls?hl=fr",[143],[366,1082,1083],{},"cumulative layout shift"," et par extension pour une meilleure expérience utilisateur",[67,1086,1087,1088,1093],{},"utiliser l'URL comme source de vérité de l'état de l'application (cf. l’excellent talk de François Best ",[139,1089,1092],{"href":1090,"rel":1091},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=U__Rwsp8v78",[143],"« Type-Safe URL State Management in React with nuqs »",")",[56,1095,1097,679,1102],{"id":1096},"champignon-testing-de-paris",[366,1098,1099],{},[356,1100,1101],{},"Champignon testing de",[356,1103,1104],{},"Paris",[39,1106,1107],{},[139,1108,1111],{"href":1109,"rel":1110},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=OYZNTPp04hw",[143],[366,1112,1113],{},"At the top of the pyramid: Playwright testing at scale",[39,1115,1116],{},"Kate Marshalkina fait un chouette retour d’expérience sur une codebase chaotique, très partiellement écrite en TypeScript et avec des tests peu efficaces.",[39,1118,1119],{},[356,1120,1121],{},"Une petite histoire des stratégies de test",[39,1123,1124],{},"Kate revient d’abord sur les patterns pratiqués dans l’industrie :",[39,1126,1127,1128,1133],{},"La ",[139,1129,1132],{"href":1130,"rel":1131},"https:\u002F\u002Fmartinfowler.com\u002Fbliki\u002FTestPyramid.html",[143],"pyramide de test"," proposée par Mike Cohn et revue par Martin Fowler :",[39,1135,1136],{},[45,1137],{"alt":1138,"src":1139},"Schéma représentant une pyramide de test dont la base au sol est constitué des tests unitaires, le sommet des tests UI et le milieu des tests de service \u002F d’intégration","\u002Fcontent-assets\u002F2025-04-15-dbrief-react-paris-2025\u002Fassets\u002Fimg3.webp",[39,1141,1142],{},"Soulignant la fragilité des tests UI (si l’UI change, le test est obsolète), cette stratégie mise la plupart des efforts sur les tests unitaires afin d’assurer que le core de l’application est protégé par la batterie de test.",[39,1144,1145,1146,1151],{},"Malheureusement, certaines applications continuent de renverser cette pyramide pour finir par donner naissance au ",[139,1147,1150],{"href":1148,"rel":1149},"https:\u002F\u002Falisterscott.github.io\u002FTestingPyramids.html",[143],"software testing ice-cream cone","  :",[39,1153,1154],{},[45,1155],{"alt":1156,"src":1157},"Schéma représentant une pyramide de test inversé dont le sommet est au sol. Le sommet comprend les tests unitaires, le milieu les tests d’intégration et la base les tests automatisés e2e. Au-dessus de la base est représenté une forme ovale indiquant les tests de régression manuels. Le tout ressemble à un cornet de glace avec la pyramide formant le cornet et la forme ovale la boule de glace","\u002Fcontent-assets\u002F2025-04-15-dbrief-react-paris-2025\u002Fassets\u002Fimg4.webp",[39,1159,1160],{},"Dans cette situation, les tests de régression manuels sont nombreux, soumis aux variables humaines (erreur, imprécision, omission, lenteur) et bien souvent les tests fonctionnels automatisés (e2e) trop nombreux, lents et fragiles. La part des tests unitaires est réduite à peau de chagrin.",[39,1162,1163],{},"Cet anti-pattern se manifeste dans les codebases où la condition pour appliquer la pyramide de test n’est pas remplie : un code suffisamment découpé pour obtenir des tests unitaires pertinents et utiles.",[39,1165,1166,1167,1172],{},"Une stratégie plus , popularisée sous la forme du ",[139,1168,1171],{"href":1169,"rel":1170},"https:\u002F\u002Fkentcdodds.com\u002Fblog\u002Fwrite-tests",[143],"Testing Trophy"," de Kent C. Dodds, est le testing diamond :",[39,1174,1175],{},[45,1176],{"alt":1177,"src":1178},"Schéma représentant un diamant sous forme de losange. En bas en haut on trouve : les tests unitaires, les tests d’intégration (au centre, couvrant la plus grande surface du losange), les tests automatisés e2e et les tests manuels. Les tests unitaires d’un côté et l’ensemble formé par les tests automatisés e2e + les test manuels occupent une surface identique du losange, l’un en bas sous les tests d’intégration, l’autre en haut au-dessus des tests d’intégration","\u002Fcontent-assets\u002F2025-04-15-dbrief-react-paris-2025\u002Fassets\u002Fdiamond-testing.webp",[39,1180,1181,1182,1185],{},"Avec le ",[366,1183,1184],{},"testing diamond",", la confiance générée par les tests provient principalement des tests d’intégration (scope le plus large) auxquels s’ajoute le test du cœur critique de l’application (tests unitaires) et du happy flow ou smoke testing via des tests e2e automatisés ou des scripts manuels pour les scripts tiers.",[39,1187,1188],{},[356,1189,1190],{},"Tester c’est douter ? Tester c’est cueillir un champignon",[39,1192,1193,1194,569],{},"Étant donné l’état de la codebase et les délais du projet sur lequel est intervenue Kate Marshalkina, aucune de ces stratégies ne pouvait s’appliquer. Il a donc fallu établir une stratégie davantage personnalisée pour parvenir à une barrière de tests utile et maintenable : le ",[366,1195,1196],{},"testing mushroom",[39,1198,1199],{},[45,1200],{"alt":1201,"src":1202},"Schéma représentant un champignon formé par un rectangle ouvert à son sommet et une forme ovale qui coiffe le rectangle. En bas du rectangle se trouve les tests unitaires, au sommet du rectangle on trouve les tests d’intégration qui sont mélangés avec les tests automatisés e2e ","\u002Fcontent-assets\u002F2025-04-15-dbrief-react-paris-2025\u002Fassets\u002Fimg5.webp",[39,1204,1205],{},"Au premier abord, cette stratégie semble identique à l’anti-pattern de l’ice-cream cone mais la différence se situe principalement dans l’imbrication des tests d’intégration, difficiles ou peu utiles dans le cadre d’un frontend, avec les tests e2e.",[39,1207,1208],{},"Il y a quelques années encore les tests snapshot de composants étaient courants et occasionnaient une perte de temps et un grand nombre de faux-positifs. Ce temps perdu est réinjecté dans une plus grande attention portée à la solidité et pertinence des tests e2e. En effet, l’avantage de cette stratégie est que, loin d’être une panacée, elle est un compromis entre toutes les stratégies historiques, adaptée à un contexte particulier et s’appuyant sur le fait qu’aujourd’hui les tests fonctionnels automatisés en manipulant l’UI ne sont plus difficiles et coûteux… à condition de les exécuter correctement.",[39,1210,1211],{},[356,1212,1213],{},"La performance des tests e2e",[39,1215,1216],{},"Ne crions pas victoire trop vite car la performance des tests e2e est encore un problème. La trop longue durée des pipelines, la mauvaise conception des scénarios, leur multiplication et la fragilité des tests demeure fréquentes.",[39,1218,1219],{},"Ainsi, Kate Marshalkina termine son talk en présentant les bonnes pratiques que son équipe et elle ont appliqué afin de rendre les tests e2e écrits avec Playwright performants, rapides, utiles et lisibles par tous :",[64,1221,1222,1233,1239,1258],{},[67,1223,1224,1228,1229,1232],{},[139,1225,1226],{"href":1226,"rel":1227},"https:\u002F\u002Fgithub.com\u002Fvitalest\u002Fplaywright-network-cache",[143]," pour consommer depuis un cache local les appels API similaires exécutés dans les tests précédents, d’où l’inclusion des tests intégrations dans la partie E2E (le chapeau du champignon). Tout comme la ",[366,1230,1231],{},"mushroom strategy"," elle-même, c’est un trade-off entre des tests e2e demandant de maintenir de fastidieux mocks d’API au risque de se retrouver avec de faux-positifs et de ne pas capturer de vrais bugs et ceux attaquant directement l’API.",[67,1234,1235,1238],{},[578,1236,1237],{},"eslint-plugin-playwright"," pour corriger les mauvaises pratiques",[67,1240,1241,1242,1247,1248,1251,1252,1257],{},"utilisation du ",[139,1243,1246],{"href":1244,"rel":1245},"https:\u002F\u002Fplaywright.dev\u002Fdocs\u002Fpom",[143],"Page Object Model"," et du décorateur ",[578,1249,1250],{},"@step()"," pour exposer de manière claire les actions possible sur une page et grouper les actions haut niveau de l’utilisateur En combinaison avec ",[139,1253,1256],{"href":1254,"rel":1255},"https:\u002F\u002Fgithub.com\u002Fallure-framework",[143],"Allure",", les tests E2E, leurs résultats et leurs itérations sont compréhensibles pour les individus non techniques de l’équipe",[67,1259,1260],{},"lancement en parallèle des tests et augmentation du nombre de workers",[56,1262,1264],{"id":1263},"remixer-remix","Remixer Remix",[39,1266,1267],{},[139,1268,1271],{"href":1269,"rel":1270},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=i1cVfJz4Vlw",[143],[366,1272,1273],{},"Remix The Wrong (?) way",[39,1275,1276,1277,1280,1281,569],{},"Dans cette conférence, Antoine Chalifour nous fait part de ce qui l’a poussé à s’éloigner des opinions de Remix afin de modeler le framework selon ",[366,1278,1279],{},"ses"," besoins, celui de son produit ",[139,1282,1285],{"href":1283,"rel":1284},"https:\u002F\u002Fwww.geckosocial.app\u002F?utm_source=https%3A%2F%2Fblog.hoppr.tech",[143],"Geckosocial",[39,1287,1288],{},"Le projet d’Antoine permet de gérer ses publications de manière automatisée sur LinkedIn et d'autres plateformes. Il est composé d’un éditeur de texte, d’une fonctionnalité de mentions d'utilisateurs, d’une vue calendrier, de capacités d'édition de texte enrichi et d’une intégration d'IA.",[39,1290,1291],{},"Ok mais… c’est quoi déjà Remix ?",[39,1293,1294],{},"Remix c’est un méta-framework React web full-stack particulièrement puissant et offrant un ensemble de fonctionnalités côté serveur solides. Une des particularités de Remix est qu’il couple fortement le routage et la récupération de données, ce qui peut influencer la manière dont il est utilisé dans un projet.",[39,1296,1297],{},[356,1298,1299],{},"Qu’est ce qui a mené à « utiliser Remix de la mauvaise manière » ?",[39,1301,1302],{},[45,1303],{"alt":1304,"src":1305},"Mème d’internet représentant un agriculteur disant en anglais “Ce n’est pas grand chose mais au moins c’est un travail honnête”. Le haut de l’image précise “quand tu utilises Remix uniquement pour le routing après avoir abandonné ses features principales”","\u002Fcontent-assets\u002F2025-04-15-dbrief-react-paris-2025\u002Fassets\u002Fimg6.webp",[39,1307,1308],{},[356,1309,1310],{},"1. Limitations du Rendu Côté Serveur",[39,1312,1313,1314,1317],{},"Certains composants comme ceux avec rendu de date rendent difficile l’utilisation du SSR. De plus, l'éditeur de texte enrichi utilisant ",[366,1315,1316],{},"Lexical"," a besoin des nœuds DOM et fonctionne uniquement côté client. Ainsi, le SSR a été désactivé pour l'expérience utilisateur connecté.",[39,1319,1320],{},[356,1321,1322],{},"2. Données Non Plus Couplées aux Routes",[39,1324,1325],{},"Les données non plus couplées aux routes sont un autre facteur qui a contribué à l'utilisation inappropriée de Remix dans le cas d’Antoine.",[39,1327,1328,1329,1332],{},"Les exigences de données sont devenues plus complexes pour chaque écran, et les données sont réutilisées entre les composants qui ne correspondent pas aux routes. De plus, certains ",[366,1330,1331],{},"dialog"," nécessitent des données asynchrones mais ne sont pas liés à des routes spécifiques. Cela a rendu la revalidation coûteuse car les routes parentes chargeaient trop de données",[39,1334,1335],{},[356,1336,1337],{},"3. Formulaires Complexes",[39,1339,1340],{},"Enfin, les formulaires complexes sont également à l’origine de l'utilisation détournée de Remix.",[39,1342,1343],{},"Au fil du projet, les formulaires ont évolué au-delà de simples entrées, demandant une validation conditionnelle. Il a fallu également compter avec les difficultés liées aux tableaux d'objets dans les formulaires et aux actions n’étant pas toujours déclenchées par des boutons de soumission.",[39,1345,1346],{},[356,1347,1348],{},"Est-ce que Remix a encore sa place dans sa stack techno, est-ce toujours utile ?",[39,1350,1351,1352,1355],{},"Sa réponse est un grand OUI ! Remix fournit une excellente DX (",[366,1353,1354],{},"developer experience",") grâce à Vite, incluant la mise en page et le routing imbriqué, le rendu côté serveur (SSR) avec amélioration progressive pour des pages spécifiques, des redirections d'authentification côté serveur ainsi que l'intégration avec des serveurs Node existants.",[101,1357,1359],{"id":1358},"les-points-clés-a-retenir-de-son-talk","Les points clés a retenir de son talk ?",[39,1361,1362],{},[45,1363],{"alt":1364,"src":1365},"Mème d’internet en deux lignes. La première ligne représente le chanteur Drake faisant un geste de dégoût associé au texte “Utiliser Remix comme prévu par ses créateurs”. La deuxième ligne représente également le chanteur Drake faisant un signe d’approbation et associé au texte “Utiliser Remix de la mauvaise façon mais qui fonctionne pour ton projet”","\u002Fcontent-assets\u002F2025-04-15-dbrief-react-paris-2025\u002Fassets\u002Fimg7.webp",[64,1367,1368,1375,1378,1381],{},[67,1369,1370,1371,1374],{},"Les frameworks ne sont que des outils ",[356,1372,1373],{},":"," rien n’oblige à utiliser toutes ses fonctionnalités (👉 edge middleware)",[67,1376,1377],{},"Migrer progressivement pour ne pas tout réécrire d’un coup",[67,1379,1380],{},"Continuer à déployer en production pendant la migration",[67,1382,1383],{},"Utiliser ce qui fonctionne pour les besoins spécifiques du produit – amen",[39,1385,1386],{},"En résumé, Antoine a proposé un excellent talk montrant que la tech est au service des développeurs et non l’inverse !",[56,1388,1390],{"id":1389},"un-mathématicien-et-un-développeur-entrent-dans-un-foo-bar","Un mathématicien et un développeur entrent dans un foo bar…",[39,1392,1393],{},[139,1394,1397],{"href":1395,"rel":1396},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=ULTiZDTNeyI",[143],[366,1398,1399],{},"From Chaos to Clarity: Mathematical Foundations for Maintainable React Applications",[39,1401,1402],{},"Cette conférence étonnante d’Héla Ben Khalfallah porte sur la façon d'optimiser une codebase React grâce à un trio de concepts mathématiques :",[64,1404,1405,1408,1411],{},[67,1406,1407],{},"la théorie des graphes",[67,1409,1410],{},"la théorie des catégories",[67,1412,1413],{},[366,1414,1415],{},"lambda-calculus",[39,1417,1418],{},"L’objectif derrière ces concepts intimidants est clair : produire du code robuste et performant.",[39,1420,1421],{},[356,1422,1423],{},"Théorie des graphes : visualiser et structurer notre code react",[39,1425,1426],{},"Même si l'idée de représenter une application comme un graph est familière, Héla rappelle les caractéristiques nécessaires du graph afin que la représentation soit pertinente :",[64,1428,1429,1432,1445],{},[67,1430,1431],{},"modéliser les fichiers comme des nœuds et les imports comme des arêtes pour repérer immédiatement les dépendances circulaires pouvant perturber la maintenance et le bundling",[67,1433,1434,1435,1438,1439,1444],{},"identifier les communities : les algorithmes de ",[366,1436,1437],{},"community detection"," (e.g. ",[139,1440,1443],{"href":1441,"rel":1442},"https:\u002F\u002Ffr.wikipedia.org\u002Fwiki\u002FM%C3%A9thode_de_Louvain",[143],"Louvain",") montrent comment regrouper les fichiers pour maximiser la cohésion interne et minimiser les dépendances extérieures. C'est un outil objectif pour organiser les dossiers et les packages de manière optimale.",[67,1446,1447,1448,1451,1452,1455,1456,1459],{},"mesurer l'influence de chaque fichier : les métriques comme la ",[366,1449,1450],{},"centrality",", la ",[366,1453,1454],{},"density"," ou le ",[366,1457,1458],{},"sparsing"," permettent de repérer rapidement les zones à réfactoriser, les fichiers critiques à tester en priorité et les morceaux de code spaghetti pénalisant l'évolution du projet",[39,1461,1462],{},[356,1463,1464],{},"Catégorie théorie ou comment revenir à des fonctions pures et des transformations unifiées",[39,1466,1467],{},"Et une petite plongée dans la théorie des catégories pour la conception fonctionnelle en compagnie d’Héla. L'objectif est de passer des mutations et des effets secondaires aux transformations. Quelques principes :",[64,1469,1470,1473,1519],{},[67,1471,1472],{},"préférer le morphisme à la mutation : au lieu de muter les données, appliquer une suite de transformations qui maintiendra la structure de départ et minimisera les effets de bord",[67,1474,1475,1482,1483,1490,1492,1493,1496,1497,1500,1501,1504,1505,1508,1509,1514,1515,1518],{},[139,1476,1479],{"href":1477,"rel":1478},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FFunctor",[143],[366,1480,1481],{},"Functors"," et ",[139,1484,1487],{"href":1485,"rel":1486},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FMonad_(functional_programming)",[143],[366,1488,1489],{},"Monads",[366,1491,569],{}," Concrètement, en JavaScript, les ",[578,1494,1495],{},"Array","s sont naturellement des functors via le ",[578,1498,1499],{},".map",", tandis que les structures comme ",[578,1502,1503],{},"Promise"," fonctionnent comme des monades via le ",[578,1506,1507],{},".then",". Ces concepts rappellent simplement à quel point découper son code en transformations pures peut simplifier les tests et la lisibilité. Ou encore ",[139,1510,1513],{"href":1511,"rel":1512},"https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fneverthrow",[143],"neverthrow"," qui est un package npm qui propose une Monad ",[578,1516,1517],{},"Result"," i.e la meilleure manière de gérer un résultat qui peut être en erreur 😎_._",[67,1520,1521,1524,1525,931,1528,1482,1531,1534,1535,1538,1539,1541,1542,1545,1546,1549],{},[356,1522,1523],{},"Transducers","\nL'optimisation de ",[578,1526,1527],{},"map",[578,1529,1530],{},"filter",[578,1532,1533],{},"reduce"," en une seule itération, sans créer d'intermédiaire superflu, reste un incontournable pour les ensembles de données volumineux.\nConcrètement, faire un ",[578,1536,1537],{},".filter"," suivi d’un ",[578,1540,1499],{}," puis d’un ",[578,1543,1544],{},".reduce",", même si la complexité algorithmique reste la même (potentiellement ",[578,1547,1548],{},"O(n)","), sur un gros volume de données, il peut être intéressant de les regrouper afin d’éviter 2 tours de boucle superflus.",[39,1551,1552],{},"On voit ici à quel point les bonnes pratiques côté code s’inspirent de la théorie des catégories et traduisent ses principes… comme le montre parfaitement la composition !",[39,1554,1555,679,1558],{},[356,1556,1557],{},"Lambda calculus : optimiser grâce à la composition et aux",[366,1559,1560],{},[356,1561,1562],{},"lazy evaluations",[39,1564,1565],{},"Le Lambda calculus fournit un éventail d’outils qui sont déjà bien connus des développeurs :",[64,1567,1568,1575,1590,1596],{},[67,1569,1570,1571,1574],{},"le ",[366,1572,1573],{},"currying"," pour transformer les fonctions à multiples arguments en une chaîne de fonctions à un seul argument. Loin d’être accessoire ou superficiel, c'est un moyen efficace de réutiliser les sous-ensemble d’une logique",[67,1576,1577,1578,1581,1582,1585,1586,1589],{},"les ",[366,1579,1580],{},"Higer-Order Functions"," (HOFs), importantes pour la composition, par exemple d’un ",[366,1583,1584],{},"debounce"," et d’un ",[366,1587,1588],{},"throttle",". Mieux on segmente les responsabilités dans nos HOFs, plus c'est réutilisable et clair",[67,1591,1592,1595],{},[366,1593,1594],{},"lazy evaluation et memoization"," : deux grands classiques ! D’une part n'évaluer que ce dont on a besoin quand on en a besoin, d’autre part conserver le résultat pour éviter de répéter des opérations coûteuses",[67,1597,1598,1599,1602,1603,1606,1607],{},"le pattern du trampoline pour gérer la récursivité en JavaScript sans causer de ",[366,1600,1601],{},"stack overflow."," L’idée du trampoline est de retourner une fonction exécutée par le trampoline (appelée ",[366,1604,1605],{},"continuation",") plutôt que d’ajouter sempiternellement un niveau à la stack jusqu’à l’overflow_._ C’est le trampoline, la fonction wrapper, qui se charge d’appeler la fonction récursive à la fin de son traitement plutôt que la fonction récursive qui s’appelle elle-même. C’est un pattern indispensable dans un contexte de code récursif puisqu’à date JavaScript ne supporte malheureusement pas les ",[366,1608,1609],{},"Tail Recursive Functions.",[39,1611,1612],{},[356,1613,1614],{},"Pourquoi ce talk est un précieux rappel ?",[39,1616,1617],{},"Toutes ces bonnes pratiques pour un code robuste ne devraient pas être surprenantes pour beaucoup de développeurs. Mais cette conférence est la bienvenue car de la théorie à la pratique il y a parfois un abysse. Même en tant que développeur senior, la tentation de laisser s'installer quelques entorses à la pureté des fonctions est fréquente.",[39,1619,1620],{},"Héla a donc rappelé de manière concise et claire pourquoi ces outils et techniques sont utiles :",[64,1622,1623,1629],{},[67,1624,1625,1626,1628],{},"Une meilleure maintenabilité ",[356,1627,1373],{}," des fonctions pures et un code bien modulaire se manipulent et se refactorisent plus facilement",[67,1630,1631,1632,1634,1635,1638,1639,1482,1642,931,1645,1648],{},"Une plus grande performance ",[356,1633,1373],{}," la ",[366,1636,1637],{},"lazy evaluation,"," la bonne organisation des imports et l’utilisation des outils de la théorie des catégories (morphisme, ",[366,1640,1641],{},"functors",[366,1643,1644],{},"monads",[366,1646,1647],{},"transducers",") afin d’éviter les side-effects peuvent se révéler réellement determinants pour un projet React ou front de grande envergure",[39,1650,1651],{},"Ces techniques sont déjà au cœur de la plupart des bonnes pratiques et les voir présentées ensemble dans un format clair et méthodique est un rappel utile pour garder un projet propre et évolutif.",[39,1653,1654],{},"Bref, un indispensable à intégrer ou réintégrer dans les équipes souhaitant maintenir un standard de qualité élevé sur leurs applications React.",[56,1656,1658],{"id":1657},"les-autres-conférences","Les autres conférences",[39,1660,1661,1662,1667],{},"C’est tout pour nous cette année, n’hésitez pas à consulter sur ",[139,1663,1666],{"href":1664,"rel":1665},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=nYOAWjcRuBY&list=PL53Z0yyYnpWitP8Zv01TSEQmKLvuRh_Dj",[143],"YouTube"," ces conférences et les autres pour ne pas manquer notamment :",[64,1669,1670,1678,1688],{},[67,1671,1570,1672,1677],{},[139,1673,1676],{"href":1674,"rel":1675},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=-W3_dxNDHVw",[143],"cours d’histoire"," de Kent C. Dodds “des origines obscures et un peu sales du web aux RSC” (nom non officiel) ;",[67,1679,1680,1687],{},[139,1681,1684],{"href":1682,"rel":1683},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=LzCEfzHh8Eo",[143],[366,1685,1686],{},"A Tale of Two Components: Mastering A\u002FB Testing in React"," de Violina Popova sur sujet un peu niche mais pointu et brillamment exposé ;",[67,1689,1690,1691,1698],{},"la petite leçon de bon sens de TkDodo avec ",[139,1692,1695],{"href":1693,"rel":1694},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=l3PxErcKeAI",[143],[366,1696,1697],{},"React Query API Design - Lessons Learned"," qui, sans être hélas très surprenante, offre quelques retours d’expérience sur la difficulté de humaine et technique de produire du code pour l’Open Source.",[1700,1701,1702],"style",{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .sZEs4, html code.shiki .sZEs4{--shiki-default:#E6EDF3}html pre.shiki code .sPWt5, html code.shiki .sPWt5{--shiki-default:#7EE787}html pre.shiki code .sFSAA, html code.shiki .sFSAA{--shiki-default:#79C0FF}html pre.shiki code .s9uIt, html code.shiki .s9uIt{--shiki-default:#A5D6FF}",{"title":277,"searchDepth":278,"depth":278,"links":1704},[1705,1706,1707,1709,1710,1712,1715,1716],{"id":572,"depth":278,"text":573},{"id":615,"depth":278,"text":618},{"id":675,"depth":278,"text":1708},"I &lt;3 HTML",{"id":948,"depth":278,"text":949},{"id":1096,"depth":278,"text":1711},"Champignon testing de Paris",{"id":1263,"depth":278,"text":1264,"children":1713},[1714],{"id":1358,"depth":284,"text":1359},{"id":1389,"depth":278,"text":1390},{"id":1657,"depth":278,"text":1658},"2025-04-15T07:20:37.563Z"," React Paris est un événement organisé par BeJs, association d’origine belge déjà à l’origine des événements React Brussels, React Africa et BeJS Conf. BeJS a été fondée en 2019 avec pour mission de p",{},"\u002Fblogs\u002F2025-04-15-dbrief-react-paris-2025",[1722,1724],{"id":16,"name":17,"image":1723,"linkedin":19,"x":14},"https:\u002F\u002Fprod-files-secure.s3.us-west-2.amazonaws.com\u002F5863e833-64f2-4f13-9f7a-2c92c72b5bbf\u002F53946b9e-3bb9-45bd-a8b4-429c51156179\u002FT04PC176TGB-U05EW3YF61Z-5e129f612df3-512.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ASIAZI2LB466S2JJIBLE%2F20250415%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20250415T072037Z&X-Amz-Expires=3600&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEJ%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaCXVzLXdlc3QtMiJHMEUCIQCRKK2GX8ZGlbk7tJJGQY5hZdbx3fEoIk1h%2FLudLPyD7AIgGXvLeISbp35lBICj1oFdN%2BoUTJmFn%2BzLSkkGVOfXu0Uq%2FwMIKBAAGgw2Mzc0MjMxODM4MDUiDMX9alt9PW7E4t30XyrcA5ahO2V8DBPmczeLmpnoxnA68tp5PIMBYLPUHJ4aw6mrECxXXu1KEU6dqBzsTsSrd6QTRHWjcBT69uyeLwLrYYeoaV1XAvaoRxy78zc6ehbpuRw0rRP79%2FKADKkQ2X%2BIQrOcz%2Fog3MArYcPINO%2F%2BzQYHTQwsk428aET9cXvX%2BQw3v1g7jsXsASPVU8rc6Xm7TTfDgmvveBixLCjRqNEbnOseI4esrMtmYb5NvcZdsbNXxEbVYpJM0d83qUm8kJGPN78Sb%2FVdl7L69Hs4PyvTmYXPOcgYp%2BCwUsQehcR0FoGAAwum1va%2Bn1mpF%2FTe9tMMfDhgdP9uYC0ITvojIWQ3DOMHFKqVSuHiQrbVd0CHopQdOcpWhtisuutwmyAmP6SvymYTPorlsaiSmpCxkMsEtjNaceBfg9Dp%2FsueGnCYIfVxkR%2Bn8LY%2BNv00BXYFg8Lu%2B3bWe4MbVioYTHJ8N2Ld2UL8tbJZ0WwQpgAwcrynqBtmSyzWdX63Wstqik8Yo2Grnq3im4kI4v9lzg4APZVASr9ZvGtku%2BQKD0%2BQE64y5k1cJwM8uIhKmdtYcFs8nKXFyi4CRUYfuHKQM5LtiL8ZBUtCMtpRGbdHXIz%2FVubEbMA5wTd2oj%2F2kz89SzuWMICA%2BL8GOqUB9FRt1kzYEMIHw7nNJ6bsbc2cIQVUJoxOHfmn8GkCihLQj0HLUyuxeYldcfkeBLe3qUSevJyamAgcdOoGN7QyRqkZT0nVZzN%2FZglozy8qiEBOXkj23Pa5TRx5YcgAhBjha8xnznicwV1covjlrkMu%2Fogppz7wmIBeWrAZRhe3kFZArhjMN8tjQUy%2F4VGBdeNZ6lJ%2FfhN44%2FRwg1%2BHCZVxBrUyorNA&X-Amz-Signature=bcab8d8364d2bc7b4b9c0db3da5f06866bce409576051747590078b3ad494e71&X-Amz-SignedHeaders=host&x-id=GetObject",{"id":10,"name":11,"image":1725,"linkedin":13,"x":14},"https:\u002F\u002Fprod-files-secure.s3.us-west-2.amazonaws.com\u002F5863e833-64f2-4f13-9f7a-2c92c72b5bbf\u002Ff8f82a79-9d41-4302-b1a5-37882985167f\u002Fnicoz_hoppr.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ASIAZI2LB466267U6E46%2F20250415%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20250415T072034Z&X-Amz-Expires=3600&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEJ%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaCXVzLXdlc3QtMiJIMEYCIQCnrM%2Bk5Sk%2F11pBLISFJydtzvTUs5KhMkh7tlOFgNr4yQIhAK8VJ7yK9YuXc%2Fczuzn3EgtiMGQrUQs5opBS2CNTX%2FrJKv8DCCgQABoMNjM3NDIzMTgzODA1Igz%2BNwZ5qQF1hkqm%2BIAq3AMtCS%2BcPyJkN%2Farh%2F%2BEeLzsnvLnNAYye7qH3Wm6bkWmcMG7dgAEM%2BRAyCJnuZbwBIs8D2%2FkDWNpFSvjqqWZqX6JiMFY5ruxGXqNZ%2B441PgJVEuMZVZ0zUsnHhbSWGikOOrblcTlQiaf71WK0AcARvV9HKNHH3ZTfUpAJd87UzDcrrkLRNKJGas4L%2Bp5i%2FhH6jmX%2Bngt1XAhLfnfiqCJK%2BnYeEG02z8gK8azHjNrPBQYyENvdreGBaD%2F42xC6mIjLoccis%2BMVUZ0bKfOO59FcuTLNswmEuC2%2FacigjIL0aSphWdcR2Jo3%2FcafyD05LSyzVqPc%2FBzXn4IZmowrmAEiw6RgrKU6x8909X5s29c6uYLiw3537VNBHLIA42Qtq8BVvn60Ro9kAegouqCrRZjliSQZp%2FcdkAIqCWjLmp3Ab5MeqtdH5ZncZThtOxiwwFByd%2BhozKhYzAoLpVJtCEPlql5ECKoaZD3%2BRsVRENHEzwMEX%2BgDrJTENh%2Fxv4n11evWZX7khwe3KN4Z2cxnh3LNO74hzpgapB1BMbKOWluOc4ndt4vhEx5o1h1s7yXCXa3KzCsKQ16RxeO1bNM89dh0%2BZCkiCqWCAI%2FK9%2Bq5evm947Jb9i%2Bes5VLabU3YfaDCggPi%2FBjqkAQwy5Vu7UCHrZyfN1ZaerXFy9B%2B3KQUVia%2F%2F1xY45lsdrqlk5iu6EgGG5n01l9E7%2FULqRyL3tkk5uroVlIgIn8SB55QOP0LHfwTKz33NVJhCYJ%2FUih1qw94qzvbyFvD00gvRjjQEc0KTjjvqiEUyVRviB%2B%2B8JS3tEi%2BBOhTowmkZzhP2Pt2cSaVvxkJAkLmRFFcLDGBfA37wqywpdRIuOmGSFaC4&X-Amz-Signature=187a3b781ea82533fd6a00ff971bf14a0bd6c4ae8a564b90abd2cca3f7f0f2de&X-Amz-SignedHeaders=host&x-id=GetObject",{"title":544,"description":1718},"blogs\u002F2025-04-15-dbrief-react-paris-2025\u002Findex",[311,1729,313],"front-end","lXw7tIB6b7uvHshpFjQ8DvjuCQETMUr4UR3Y-SMAW1Y",{"id":1732,"title":1733,"alt":1734,"authors":1735,"body":1741,"date":2143,"description":2144,"extension":290,"image":291,"meta":2145,"navigation":293,"ogImage":291,"path":2146,"published":293,"reviewers":2147,"seo":2157,"stem":2158,"tags":2159,"__hash__":2161},"blogs\u002Fblogs\u002F2025-04-24-lyon-craft-2025-12\u002Findex.md","Lyon Craft 2025 1\u002F2","Photo de l’écran d’accueil au Lyon Craft 2025, présentant la liste des sessions prévues ainsi que le plan des lieux.",[1736],{"id":1737,"name":1738,"image":1739,"linkedin":1740,"x":14},"67adfd77-4b84-4496-b55d-3391541f59c5","Michaël Bernasinski",".\u002Fassets\u002Fauthor-michal-bernasinski.webp","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fmichael-bernasinski",{"type":31,"value":1742,"toc":2136},[1743,1749,1764,1767,1771,1776,1783,1786,1789,1792,1818,1821,1838,1849,1856,1862,1865,1868,1879,1885,1889,1894,1900,1903,1906,1914,1922,1932,1938,1946,1949,1958,1961,1994,1997,2008,2011,2024,2030,2037,2042,2048,2061,2064,2072,2075,2078,2117,2120,2126,2130,2133],[39,1744,1745,1746],{},"Retour sur la conférence Lyon Craft 2025 qui s’est déroulée le lundi 14 Avril 2025. Au programme, comme l’indique la conférence elle-même : “",[356,1747,1748],{},"Des passionné·e·s, des ateliers, des présentations et… c’est déjà pas mal !”",[39,1750,1751,1752,1757,1758,1763],{},"Une journée sur le thème du ",[139,1753,1756],{"href":1754,"rel":1755},"https:\u002F\u002Fmanifesto.softwarecraftsmanship.org\u002F",[143],"Software Craftsmanship"," donc, dans l’optique d’apprendre ou de se perfectionner dans ces thématiques avec des experts locaux. Après une séquence d’introduction et de remerciement des sponsors (dont ",[139,1759,1762],{"href":1760,"rel":1761},"https:\u002F\u002Fwww.hoppr.tech\u002F",[143],"HoppR"," qui était VIP), une vingtaine de sessions, couvrant talks et workshops (et même une table ronde) étaient proposées.",[39,1765,1766],{},"Je vous propose de revenir avec moi sur les sessions auxquelles j’ai assisté, en commençant dans cet article par celles du matin.",[56,1768,1770],{"id":1769},"ia-générative-tdd-et-architecture-hexagonale-une-synergie-révolutionnaire","IA Générative, TDD et Architecture Hexagonale : Une Synergie Révolutionnaire ?",[39,1772,1773],{},[366,1774,1775],{},"Par Florine CHEVRIER et Clément VIRIEUX",[39,1777,1778],{},[139,1779,1782],{"href":1780,"rel":1781},"https:\u002F\u002Flyon-craft.fr\u002Fsessions\u002Fia-generative-et-architecture-hexagonale-une-synergie-revolutionnaire.html",[143],"Lien vers la conférence",[39,1784,1785],{},"Pour bien démarrer la journée, Florine et Clément nous proposent de réaliser un kata avec l’IA. Nous sommes donc directement plongés dans les sujets en vogue du moment.",[39,1787,1788],{},"L’idée ici : faire du TDD avec une IA en lui fournissant les éléments nécessaires pour développer une nouvelle fonctionnalité dans un projet front. Le contexte : nous avons une application bancaire très simple, et nous souhaitons mettre en place une fonctionnalité “nouveau virement” avec un bouton dédié.",[39,1790,1791],{},"Pour ce faire, trois outils seront utilisés ici :",[64,1793,1794,1802,1810],{},[67,1795,1796,1801],{},[139,1797,1800],{"href":1798,"rel":1799},"https:\u002F\u002Fgithub.com\u002Fcline\u002Fcline",[143],"Cline",", un agent IA qui vient s’intégrer à Visual Studio Code",[67,1803,1804,1809],{},[139,1805,1808],{"href":1806,"rel":1807},"https:\u002F\u002Fwww.anthropic.com\u002Fclaude\u002Fsonnet",[143],"Claude 3.7 Sonnet ",", l’IA spécialisée dans le codage derrière Cline",[67,1811,1812,1817],{},[139,1813,1816],{"href":1814,"rel":1815},"https:\u002F\u002Fopenrouter.ai\u002F",[143],"Open Router",", pour pouvoir switcher d’IA et être à l’état de l’art ou contrôler les coûts",[39,1819,1820],{},"À présent, comment communiquer avec cette IA ? Pour développer, elle va se baser sur un prompt indiquant :",[64,1822,1823,1832,1835],{},[67,1824,1825,1826,1831],{},"Des contraintes d’architecture, sous forme de tests. Nous souhaitons ici obliger l’IA à suivre une ",[139,1827,1830],{"href":1828,"rel":1829},"https:\u002F\u002Ffr.wikipedia.org\u002Fwiki\u002FArchitecture_hexagonale",[143],"architecture hexagonale"," déjà en place",[67,1833,1834],{},"Une capture d’écran d’une maquette Figma faite par un UX\u002FUI",[67,1836,1837],{},"Des tests Cypress, pour définir les règles de gestion fonctionnelles, et qui seront à la base de notre TDD. À noter que ces tests auraient été rédigés également pour un développement par un humain",[39,1839,1840,1841,1844,1845,1848],{},"Cline va ainsi d’abord passer une première phase ",[356,1842,1843],{},"PLAN",", pour indiquer ce qu’elle souhaite mettre en place, ainsi qu’une estimation des coûts de l’API. C’est une sorte de dry run si l’on veut. Ensuite, il sera temps de passer à la seconde phase ",[356,1846,1847],{},"ACT",", où l’IA va réellement coder pour nous.",[39,1850,1851,1852,1855],{},"À noter que Cline peut apprendre de ses erreurs. De nouvelles règles sont ajoutées au fur et à mesure dans un fichier ",[366,1853,1854],{},".clinerules",", un fichier texte lisible également par l’humain. Ici, ce sont les développeurs qui demandent à Cline de les ajouter quand ils sont confrontés à une erreur de l’IA.",[39,1857,1858],{},[45,1859],{"alt":1860,"src":1861},"Cline sur le Marketplace Visual Studio Code","\u002Fcontent-assets\u002F2025-04-24-lyon-craft-2025-12\u002Fassets\u002Fimg1.webp",[39,1863,1864],{},"Revenons à notre démonstration. Nous sommes ici plus sûr du test-first que sur du TDD en réalité, mais l’IA traite le prompt. Surprise (effet démo), Cline oublie lors de la présentation d’ajouter le bouton alors qu’il a développé la fonctionnalité. Les tests Cypress ne passent pas. Au deuxième essai, plus de problème, l’IA se base sur ce qu’elle peut lire dans le terminal, et est satisfaite de son travail : les tests Cypress passent. Effectivement, le bouton et la fonctionnalité sont présents et correspondent à l’attendu.(",[39,1866,1867],{},"Maintenant, Florine et Clément demandent à l’IA de développer la suite de la fonctionnalité : le formulaire du virement. Même principe : tests Cypress correspondants + capture d’écran en maquette. Les fonctionnalités sont présentes et tout fonctionne, le respect de la maquette est par contre très approximative, une problématique a priori très présente avec ce genre d’outils.",[39,1869,1870,1871,1874,1875,1878],{},"C’est d’ailleurs un bon point de ce talk, nos deux speakers restent critiques par rapport aux outils d’IA qu’ils utilisent. La démonstration est bluffante de rapidité, l’API de l’IA n’a coûté que 1,5$ pour cette démo. Mais le code, bien que répondant aux critères évoqués, n’est pas à la qualité d’un bon développeur humain. D’ailleurs, au quotidien, l’équipe laissent à Cline les droits de lecture, mais l’écriture passe par une validation manuelle. Et il y a d’autres subtilités à connaître qui viennent avec l’expérience de l’outil (",[366,1872,1873],{},"clinerules",", mauvaise gestion des erreurs, erreurs de compréhension de la maquette, gestion de la ",[366,1876,1877],{},"context window",", etc.).",[39,1880,1881],{},[45,1882],{"alt":1883,"src":1884},"Florine explique les informations que Clément est en train de donner à l’IA","\u002Fcontent-assets\u002F2025-04-24-lyon-craft-2025-12\u002Fassets\u002Fimg2.webp",[56,1886,1888],{"id":1887},"the-choice-must-go-on-mais-le-bon-de-préférence","The choice must go on, mais le bon de préférence",[39,1890,1891],{},[366,1892,1893],{},"Par Céline LOUVET",[39,1895,1896],{},[139,1897,1782],{"href":1898,"rel":1899},"https:\u002F\u002Flyon-craft.fr\u002Fsessions\u002Fthe-choice-must-go-on.html",[143],[39,1901,1902],{},"Un sujet qui a été, est et sera toujours d’une importance capitale pour un projet, quelque soit le domaine : comment faire le bon (ou le moins pire) choix pour un projet ?",[39,1904,1905],{},"Tout d’abord, Céline nous confie la définition du projet réussi. Pour les décideurs, le respect du budget, du délai et la satisfaction utilisateur sont les principales métriques permettant de jauger la réussite du projet. À cela viennent s’ajouter, concernant les développeurs, leur bien-être et la maintenabilité du projet.",[39,1907,1908,1909,592],{},"Viennent ensuite quelques chiffres issus du ",[139,1910,1913],{"href":1911,"rel":1912},"https:\u002F\u002Ffile.notion.so\u002Ff\u002Ff\u002F5863e833-64f2-4f13-9f7a-2c92c72b5bbf\u002Fce54b1c6-d205-4f58-b57c-a0c9c377767e\u002FCHAOSReport2015_rev.pdf?table=block&id=1dcf4462-cd38-80cf-9017-e873e03fa39b&spaceId=5863e833-64f2-4f13-9f7a-2c92c72b5bbf&expirationTimestamp=1745280000000&signature=PgRSPuAWReZL_sg2opmSPe1NqAHZsjtjcJLHQEb-fs4&downloadName=CHAOSReport2015_rev.pdf",[143],"CHAOS report",[64,1915,1916,1919],{},[67,1917,1918],{},"Le budget est respecté à 44%, le délai à 40%, le périmètre à 56%",[67,1920,1921],{},"Les projets réussissent à 36%, sont en difficulté à 45% et échouent à 19%",[39,1923,1924,1925,1928,1929,569],{},"10 facteurs de mise en difficulté sont ainsi identifiés, dont on ressortira par exemple les ",[356,1926,1927],{},"besoins flous",", et le ",[356,1930,1931],{},"choix de technologies non maîtrisées",[39,1933,1934],{},[45,1935],{"alt":1936,"src":1937},"Les 10 facteurs de mise en difficulté identifiés pour un projet","\u002Fcontent-assets\u002F2025-04-24-lyon-craft-2025-12\u002Fassets\u002Fimg3.webp",[39,1939,1940,1941,569],{},"Première piste pour expliquer ces problématiques, les besoins flous. Se basant sur une expérience personnelle, Céline nous évoque un cas courant : l’expression d'une solution à la place du besoin. Comment s’en sortir dans ce cas ? En utilisant par exemple la fameuse technique des ",[139,1942,1945],{"href":1943,"rel":1944},"https:\u002F\u002Ffr.wikipedia.org\u002Fwiki\u002FCinq_pourquoi",[143],"cinq pourquoi",[39,1947,1948],{},"Ainsi, la demande “j’ai besoin d’un bouton pour télécharger un CSV” est devenue une page web dynamique avec des données financières et un envoi de mail avec cette même page en lien.",[39,1950,1951,1952,1957],{},"Également, attention à ne pas créer de faux besoins (",[139,1953,1956],{"href":1954,"rel":1955},"https:\u002F\u002Ffr.wikipedia.org\u002Fwiki\u002FProbl%C3%A8me_XY",[143],"Problème XY","), à identifier l’inconnu (ce qui manque de clarté) et à se concentrer sur le futur proche (plus on anticipe, plus c’est flou).",[39,1959,1960],{},"On se concentre ainsi sur la valeur à apporter, avec des critères d’acceptation par exemple, et on identifie ainsi les objectifs à atteindre tout en prenant compte des contraintes impossibles à ignorer (budget, temps, réglementation, etc.).",[39,1962,1963,1964,1967,1968,1973,1974,1979,1980,1983,1990,1993],{},"Il faut connaître l’existant (technologies, équipe, méthodes, dettes, etc.), et mettre par exemple en place un ",[366,1965,1966],{},"tech radar",", comme celui de ",[139,1969,1972],{"href":1970,"rel":1971},"https:\u002F\u002Fopensource.zalando.com\u002Ftech-radar\u002F",[143],"Zalando par exemple",". De même, on pourra mettre en place des ",[139,1975,1978],{"href":1976,"rel":1977},"https:\u002F\u002Fwww.redhat.com\u002Ffr\u002Ftopics\u002Fdevops\u002Fgolden-paths",[143],"golden paths"," pour répondre aux besoins les plus communs. Gardons en tête, comme Céline nous le répétera tout au long de son talk, qu’il n’y a pas de ",[366,1981,1982],{},"silver bullet (”",[139,1984,1987],{"href":1985,"rel":1986},"https:\u002F\u002Ffr.wikipedia.org\u002Fwiki\u002FPas_de_balle_en_argent",[143],[366,1988,1989],{},"No Silver Bullet",[366,1991,1992],{},"”)",", c’est-à-dire pas de solution miracle.",[39,1995,1996],{},"Trois complexités sont ici représentées :",[64,1998,1999,2002,2005],{},[67,2000,2001],{},"Essentielle, ce qui a trait au problème à résoudre",[67,2003,2004],{},"Obligatoire, liée à la technologie (et donc à un choix)",[67,2006,2007],{},"Accidentelle, liée à de mauvaises décisions (et donc à un choix)",[39,2009,2010],{},"Nous avons la main sur les deux dernières, qu’il nous faudra viser à réduire.",[39,2012,2013,2014,2017,2018,2023],{},"Un conseil : tous les choix devraient être tracés dans des ",[366,2015,2016],{},"decisions records"," (comme les ",[139,2019,2022],{"href":2020,"rel":2021},"https:\u002F\u002Fadr.github.io\u002F",[143],"ADR par exemple",") pour y expliquer les raisons du choix, et capitaliser sur ces décisions.",[39,2025,2026],{},[45,2027],{"alt":2028,"src":2029},"La slide la plus utilisée lors de cette conférence : pas de “silver bullet”, c’est-à-dire pas de solution miracle","\u002Fcontent-assets\u002F2025-04-24-lyon-craft-2025-12\u002Fassets\u002Fimg4.webp",[56,2031,2033,2036],{"id":2032},"rex-le-craft-en-startup",[769,2034,2035],{},"REX"," Le craft en startup",[39,2038,2039],{},[366,2040,2041],{},"Par Anne JACQUET et Philippe LEBOC",[39,2043,2044],{},[139,2045,1782],{"href":2046,"rel":2047},"https:\u002F\u002Flyon-craft.fr\u002Fsessions\u002Frex-le-craft-en-startup.html",[143],[39,2049,2050,2051,2056,2057,2060],{},"Anne et Philippe travaillent actuellement dans la start-up ",[139,2052,2055],{"href":2053,"rel":2054},"https:\u002F\u002Fwww.auxodynamics.com\u002F",[143],"Auxo",", fondée il y a quasiment deux ans (à peine moins âgée que ",[139,2058,1762],{"href":1760,"rel":2059},[143],"). Le produit proposé accompagne la transformation durable des entreprises, à partir de leurs données financières et opérationnelles. L’équipe technique se compose d’une dizaine de personnes développant le produit. Les technologies employées : Java \u002F SpringBoot, Vue.js et AWS.",[39,2062,2063],{},"Nos deux speakers sont les deux développeurs backend de l’équipe. Ils commencent par nous faire un rappel de certains concepts :",[64,2065,2066,2069],{},[67,2067,2068],{},"Monolithe \u002F Monolithe distribué \u002F Microservices \u002F Nanoservices",[67,2070,2071],{},"Synchrone \u002F Asynchrone",[39,2073,2074],{},"La solution technique est ici partie sur des microservices asynchrones, qui échangent des messages via Kafka. Mais un des microservices a ensuite nécessité des appels synchrones, nous sommes donc ici sur un mix des deux. Les microservices partagent tous une “shared library” commune, contenant de la configuration, des briques techniques, des concepts métier partagés, etc.",[39,2076,2077],{},"Nous passons ensuite en revue de nombreux concepts mis en place sur leur produit, dont certains biens connus des crafteurs :",[64,2079,2080,2083,2092,2095,2103,2106,2109],{},[67,2081,2082],{},"Architecture hexagonale",[67,2084,2085,2086,2091],{},"Pyramide de tests : Unitaire > Intégration > Comportement (",[139,2087,2090],{"href":2088,"rel":2089},"https:\u002F\u002Fcucumber.io\u002F",[143],"Cucumber",") > End-to-end",[67,2093,2094],{},"Respect des principes REST (PUT vs PATCH par ex.) et comment cela est mis en place (idempotence, pagination, etc.)",[67,2096,2097,2102],{},[139,2098,2101],{"href":2099,"rel":2100},"https:\u002F\u002Fwww.openapis.org\u002F",[143],"OpenAPI",", contrats entre front et back",[67,2104,2105],{},"Assertions dans le domaine, exceptions dans le domaine traduites ensuite et renvoyant un statut HTTP adéquat",[67,2107,2108],{},"Annotations Java pour valider request body, query parameters et path parameters",[67,2110,2111,2116],{},[139,2112,2115],{"href":2113,"rel":2114},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FOptimistic_concurrency_control",[143],"Optimistic lock"," pour des questions de performance",[39,2118,2119],{},"Au final, Anne et Philippe font ici un tour complet de tout ce qui a été mis en place pour assurer la qualité du produit et de son implémentation technique. On voit ici que tout ce qui a été mis en place l’a été pour une bonne raison. Ces conseils ne sont d’ailleurs pas spécifiques à un contexte de startup.",[39,2121,2122],{},[45,2123],{"alt":2124,"src":2125},"Fin de conférence pour Anne et Philippe","\u002Fcontent-assets\u002F2025-04-24-lyon-craft-2025-12\u002Fassets\u002Fimg5.webp",[56,2127,2129],{"id":2128},"fin-de-cette-matinée","Fin de cette matinée",[39,2131,2132],{},"Après cette belle matinée et tous ces concepts craft abordés, la faim se fait sentir, et il est temps pour tout le monde de profiter d’un déjeuner bien mérité.",[39,2134,2135],{},"Je vous propose de continuer ce retour de conférence dans un second article à paraître, où nous parlerons front, regard scientifique et… Smalltalk !",{"title":277,"searchDepth":278,"depth":278,"links":2137},[2138,2139,2140,2142],{"id":1769,"depth":278,"text":1770},{"id":1887,"depth":278,"text":1888},{"id":2032,"depth":278,"text":2141},"REX Le craft en startup",{"id":2128,"depth":278,"text":2129},"2025-04-24T14:50:16.697Z","Retour sur la conférence Lyon Craft 2025 qui s’est déroulée le lundi 14 Avril 2025. Au programme, comme l’indique la conférence elle-même : “**Des passionné·e·s, des ateliers, des présentations et… c’",{},"\u002Fblogs\u002F2025-04-24-lyon-craft-2025-12",[2148,2150,2152],{"id":303,"name":304,"image":2149,"linkedin":306,"x":14},"https:\u002F\u002Fprod-files-secure.s3.us-west-2.amazonaws.com\u002F5863e833-64f2-4f13-9f7a-2c92c72b5bbf\u002Fc88f5dfa-16db-4e6f-acf1-34dd80ee8766\u002Femma_hoppr.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ASIAZI2LB466ZZP3LNIZ%2F20250424%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20250424T145016Z&X-Amz-Expires=3600&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEH8aCXVzLXdlc3QtMiJGMEQCIAD4hutXa0ml3Y8EZ316barAph9dGk3IRKbBJ6H2NPkkAiAdQG9T0owlAUFInwuzoMAQM01j1NtLiiZG2jW%2FT%2FjX9Sr%2FAwgYEAAaDDYzNzQyMzE4MzgwNSIMTN%2FWccyZZyqeFjXDKtwD7likSB1JMnGkfv56Ja%2BDQbgTvr%2FuJpffy5MHg%2BJJ%2BVxIrE8T7Zw7%2BvvkaExh1fWWPq67xJJ0DJDM%2Ft9Www2JFLzAGwhWQRoTTDxSWuHpSpf6kwgapJaMIAA%2FclFRJnE%2FHc3xXXWWELIAgjzltcVwh5cbNj8JI5Qp3gDQztRRhTnx7%2B0demwgkRXJMsTvGl37RLwMb29yHrc3yR6JnZOKM9T25ZXu95SRD9xAmJkCp209j5R04n0Yjy0QJ7Sni32FBwcRJhh6Wg1e2Kyk80QnjAQ7lNCH6EoRDSV8Fe%2FH3ZKYqFdDNa5lEUwIOt7SnGG%2FGtQu2kIlEb%2FS0SgpQBKpGtuDPe7G%2F3sQ2pI8NLWlUqEfikpjbDnR3OINc7Gz3lxesdG9U6YBSK%2F25acDDqAgrv7KtTidxsXrLao8hWQ38TEpwQQSicWbPT1yM3bIZbnPNOy9Bt2qCfA0q60kftPkXY2g5Lo6HrMP1zWlYV2FRxivvTHB5q%2FYBPLz0%2FqsN3b5gGo8kcQUso9UP4toIrOUjXDXUX28ntdwfdHzDltQAmuPUmPNiVjPcCBRItdwRVXUdtEBIalb3JDRTk1YDxz7PIOCQsLGq2IvdfqryYvGXGfIe5R%2FD0wSqVzRjLowpJ6pwAY6pgEgu8gqJrHbvb0l%2B2yitK%2FU094ki4AwNAQuta9J%2BzV%2BzNuwqbK%2F44yu4xRTm5GmLX20gbrkJdK1hmfEQ6Yvq0gfsLRcah%2F5nVaybYz4ggsj4RjepHqij2rdOpB%2B9mDEVs2hzbADQQSC%2B2Xa8Ial%2BLh0RvQv%2FnGulFlegFMIg%2BewQwGSHiAjqGXjZFix8O5Kep53wEA8nmg8sXPTkR6XCqygwwUJAItM&X-Amz-Signature=ea9ad56797425f78e31cddc4a233f3fb6f6a3d762a4de2d79c59c807a7fd2c48&X-Amz-SignedHeaders=host&x-id=GetObject",{"id":16,"name":17,"image":2151,"linkedin":19,"x":14},"https:\u002F\u002Fprod-files-secure.s3.us-west-2.amazonaws.com\u002F5863e833-64f2-4f13-9f7a-2c92c72b5bbf\u002F53946b9e-3bb9-45bd-a8b4-429c51156179\u002FT04PC176TGB-U05EW3YF61Z-5e129f612df3-512.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ASIAZI2LB466ZQTQSD5B%2F20250424%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20250424T145016Z&X-Amz-Expires=3600&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEH4aCXVzLXdlc3QtMiJIMEYCIQDbg0WLCaqDYBaT5EAm90fC9VoyYCY744P%2B1c3G4qB%2ByQIhAM36Uk9ob7vyZOspNUFT728A6IE7FMyTluR9N6yZIWZNKv8DCBcQABoMNjM3NDIzMTgzODA1IgxwBrjSMTqOr1iBNTkq3AOkQ79%2BucvRaAFugoBvlSJSfacPAIgOWapcuAgBDgIZ8t6ucyaNiHnoN8RJQf%2FsUFXbmNZOi7QsD%2F8kn5fpfedw%2BDrtUHhOgSREmYFSeYUX4j0gKDARi4R7gJVa0atIUnSEiqXcpxljIGEaJlhVpuZu3cI6TdRRCvBO%2FkHFnh%2FMsWBA23IGHMJ1wzVZP23rwOcU%2BPb6Fee4AN6y%2BmxJuv6KGk6745C65PQvJrhBonJ1xHYywuFqr2GgYXuUPB7csZ%2FzzYo%2BA0xYXIhkf5qETQqYXwbGBDxJDT5xYyZiqiGr7xhtPRrKb%2F0eJfdUoBXTNr3alIIexaZ2j%2FUk9WREQBtyRuvZxJfIBz053pG2%2FzII6mFzE7T5PeuhfeYG6bSYiVOV3RYhueioXzukCtuBDzv0U9nT5i98QQZd2HX7rGlFW8gU3BiEwCYLP0A4yVuckpgFKy5bzU3ri9BrDBxBUhZtDdl%2FQAvibikqUv5xqK9DbYuE7UzzF7x1B%2FCjIGdRT648ftoW22ktXjYNMygX5URd8CHEJFTgCpXUqGF3MVgCRZ%2F%2FeWK6dV9h7ZoeXiGpPnHsZf8ikcN2JR5PQsF3roTMauTBpbHak62F14FkazBMpu0IPYpdUacDvOCZ1jDGgqnABjqkAZeHxXrKXw%2FyxBY0qW0PJk%2Fqwy%2FzyEtCN3aab7YFWGbU1XZ7wZg1wMEmfandoQ%2FF9QDrKfu6vDxaWidbSI%2Bqhc9%2BxMtpFIp8mwOXqFBUJyQedEzox0S20vcgrYK7yS%2BNppUdMCz1QWCmd8RAB3PZHWVDw6FxvJE5ObD14am0QJf3JYZDzVfvLjKSL8dbXCpHRZ8Lh7bP3AHjubFmBqIKqx9hjJJs&X-Amz-Signature=4b999cb952cb26fd3de1e914824e91a2eb46e1bf095d9dc88f2a653b3c2f1104&X-Amz-SignedHeaders=host&x-id=GetObject",{"id":2153,"name":2154,"image":2155,"linkedin":2156,"x":14},"4f37105b-9f64-4dcc-8a19-a1f4d5489826","Samuel Bally","https:\u002F\u002Fprod-files-secure.s3.us-west-2.amazonaws.com\u002F5863e833-64f2-4f13-9f7a-2c92c72b5bbf\u002Fb8425b05-a0a4-4560-964d-259e8a84c063\u002Fsamuel.jpeg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ASIAZI2LB4662CQLWNJA%2F20250424%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20250424T145016Z&X-Amz-Expires=3600&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEH4aCXVzLXdlc3QtMiJIMEYCIQCmhL9dbISruox6fMvLj6hlUJwDL2RNROCNk%2BRnyXewpAIhAPIZL8fOAQYfTbrQhTi1roY4yx9Y4wlxLIexFvMQ8SxfKv8DCBcQABoMNjM3NDIzMTgzODA1IgxKEHa2%2BtpiCyu7zb4q3ANQvi91jPvQtMl6sDwBYHgyOYunstmWOnOtycBpk8d2NIALAsY8hqSc5vdD2oApdfs%2BUQIHYZQ1qEm2OyVx7UYR6O4ftWad0slO4MKujNa3%2BQzNSa24AWMSWQEnvvtwFi8Rd0I9Q8dD8xmROSgGgJbKYxkU96LJg25t4uKHYUyTlZ1F6jkIV9PtKWMLJ0XM7fVrDrHObwgND4g3ngRTArfVxNR3LaIvoNHvHuOkduBpf%2F0uzIE6glxdSb0wzTW74DZUTv%2F68rI%2Fnw6ePZRTJTYmFk0fxy%2BifaPRO7%2B9CjT2eA4xak9ibyRakRnoxJI%2Fkwe6FctuAYBzsttofBD8eQREOxcp%2BqesuA4KkHUIe9oR4%2FOV8GD9vBX3xtpZcodp97CvsECaxbBmVRVhBLna4I7MZcc7ISurFOEBh3JM1%2FHdVvcXrkWMZXcsYnvMtonQRbXx0jp4gy3J0NigBQDYvUQZV6%2F7TTqpIhCig%2Fzc0UCn3kQp8jTn%2FJQFnZ0KkTDPIiEyKDixz42R%2B5uTU2bWP8CmnQST2BIl2yoxVeUMZJkyaG7Q6pA%2Bvm3gFjJubT11CeEwZckBuf%2FP1HAPkl6iKEDik4szHdjg4vI2sRvP0s8V%2BBVinUfBLcRIWCi65jDWg6nABjqkAbyEEgUPtQBKSOClV6oaBk3mWzg%2BSZcaOqklt6UcxlmfihqrfgPXbDJl0JXZkWJOPhbq8gg4sffVR9w1Sun0twXdMHAP0Ek2NyRy0PxQVgS0k1q%2FHCaUH0kPyma8c3pj96t6ckwXeXsBY%2FBYOV7Jk3FZJ6%2BrfQUitMPu2EzyziL8JenDdqjasIspgXU8X8qwMX3ZxV4TItv9BQsVYjc6j2C25O2q&X-Amz-Signature=1dab69f2b448359e58c91caae1e683bb810dc844845994020bbdd895da8d33b5&X-Amz-SignedHeaders=host&x-id=GetObject","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fsamuel-bally\u002F",{"title":1733,"description":2144},"blogs\u002F2025-04-24-lyon-craft-2025-12\u002Findex",[311,2160,540],"2025","K6Kk6szdZICyofOvs45o1g8MLue3DQMf-WQkz_bx5xM",{"id":2163,"title":2164,"alt":2165,"authors":2166,"body":2168,"date":2737,"description":2738,"extension":290,"image":291,"meta":2739,"navigation":293,"ogImage":291,"path":2740,"published":293,"reviewers":2741,"seo":2748,"stem":2749,"tags":2750,"__hash__":2751},"blogs\u002Fblogs\u002F2025-05-07-lyon-craft-2025-22\u002Findex.md","Lyon Craft 2025 2\u002F2","Photo de la scène principale du Lyon Craft 2025, avec le logo de la conférence, avant le talk de conclusion de la journée.",[2167],{"id":1737,"name":1738,"image":1739,"linkedin":1740,"x":14},{"type":31,"value":2169,"toc":2730},[2170,2179,2183,2188,2194,2200,2213,2231,2240,2251,2258,2264,2267,2270,2285,2291,2318,2332,2347,2364,2367,2378,2392,2396,2401,2407,2410,2419,2426,2447,2456,2462,2473,2480,2495,2510,2516,2525,2531,2534,2551,2560,2579,2586,2600,2606,2612,2615,2621,2628,2633,2636,2647,2653,2662,2665,2668,2679,2690,2693,2696,2700,2715,2718,2727],[39,2171,2172,2173,2178],{},"Cet article est la suite de ",[139,2174,2177],{"href":2175,"rel":2176},"https:\u002F\u002Fblog.hoppr.tech\u002Fblogs\u002F2025-04-24-lyon-craft-2025-12",[143],"mon retour sur Lyon Craft",". Dans cette première partie, nous avions couvert les talks auxquels j’ai eu la chance d’assister dans la matinée. Place maintenant à un après-midi de Craft !",[56,2180,2182],{"id":2181},"smalltalk-voyage-futuriste-dans-le-passé","Smalltalk, voyage futuriste dans le passé !",[39,2184,2185],{},[366,2186,2187],{},"Par Lionel ARMANET",[39,2189,2190],{},[139,2191,1782],{"href":2192,"rel":2193},"https:\u002F\u002Flyon-craft.fr\u002Fsessions\u002Fsmalltalk-voyage-futuriste-dans-le-passe.html",[143],[39,2195,2196],{},[45,2197],{"alt":2198,"src":2199},"Début de talk pour Lionel sur Smalltalk","\u002Fcontent-assets\u002F2025-05-07-lyon-craft-2025-22\u002Fassets\u002Fimg1.webp",[39,2201,2202,2203,2208,2209,2212],{},"Tout commence par une discussion entre Lionel et un de ses collègues. Celui-ci vient pour son premier jour avec un livre, ",[139,2204,2207],{"href":2205,"rel":2206},"https:\u002F\u002Fwww.babelio.com\u002Flivres\u002FMartin-Coder-proprement\u002F125763",[143],"Coder Proprement"," de Robert C. Martin. Lionel parcourt ce livre, un classique du Craft, revient vers son collègue et lui dit \"",[366,2210,2211],{},"ton bouquin, c'est mon cours de Smalltalk de l'école","\".",[39,2214,2215,2216,2219,2220,2225,2226,569],{},"S’en suit une plongée dans les années 70, au Xerox PARC ",[366,2217,2218],{},"(Palo Alto Research Center)",". Les créateurs de l’ordinateur ",[139,2221,2224],{"href":2222,"rel":2223},"https:\u002F\u002Ffr.wikipedia.org\u002Fwiki\u002FXerox_Alto",[143],"Xerox Alto",", un des premiers ordinateurs présentant une interface graphique, inventent le langage ",[139,2227,2230],{"href":2228,"rel":2229},"https:\u002F\u002Ffr.wikipedia.org\u002Fwiki\u002FSmalltalk",[143],"Smalltalk",[39,2232,2233,2234,2239],{},"Ce langage est le premier à utiliser les concepts clés de la ",[139,2235,2238],{"href":2236,"rel":2237},"https:\u002F\u002Ffr.wikipedia.org\u002Fwiki\u002FProgrammation_orient%C3%A9e_objet",[143],"POO",". L’idée sous-jacente est une métaphore du monde qui nous entoure, des objets et de leurs interactions. Les concepts objet ici :",[64,2241,2242,2245,2248],{},[67,2243,2244],{},"Encapsulation",[67,2246,2247],{},"Envoyer un message",[67,2249,2250],{},"Recevoir un message",[39,2252,2253,2254,2257],{},"Le Smalltalk est compilé en ",[366,2255,2256],{},"bytecode"," et interprété par une machine virtuelle, pour plus de portabilité. Jusque là, les amateurs de Java ne sont pas surpris. Et pour cause, Java s’inspire de Smalltalk !",[39,2259,2260],{},[45,2261],{"alt":2262,"src":2263},"Hello World en Smalltalk","\u002Fcontent-assets\u002F2025-05-07-lyon-craft-2025-22\u002Fassets\u002Fimg2.webp",[39,2265,2266],{},"Il est à noter que Smalltalk avait pour but de pouvoir être simple à apprendre (par des enfants par exemple), et à se rapprocher au plus du langage anglais naturel. En Smalltalk, on écrit plus qu’on ne code, et on finit nos instructions par un point.",[39,2268,2269],{},"Pour finir l’histoire, la Xerox Alto est un échec commercial. Steve Jobs ayant visité le Xerox PARC, reprendra l’interface graphique pour créer l’Apple Lisa puis les Macintosh, et l’Objective-C comme successeur au Smalltalk.",[39,2271,2272,2273,2278,2279,2284],{},"Place maintenant à une démonstration de Smalltalk en live avec Lionel. Il utilise ici ",[139,2274,2277],{"href":2275,"rel":2276},"https:\u002F\u002Ffr.wikipedia.org\u002Fwiki\u002FCuis_Smalltalk",[143],"CUIS",", et nous parle également de ",[139,2280,2283],{"href":2281,"rel":2282},"https:\u002F\u002Ffr.wikipedia.org\u002Fwiki\u002FPharo",[143],"Pharo",". En effet, une communauté Smalltalk existe toujours pour garder le langage vivant.",[39,2286,2287],{},[45,2288],{"alt":2289,"src":2290},"Démonstration de Smalltalk par Lionel","\u002Fcontent-assets\u002F2025-05-07-lyon-craft-2025-22\u002Fassets\u002Fimg3.webp",[39,2292,2293,2294,2299,2300,2305,2306,2311,2312,2317],{},"En Smalltalk, tout est objet, et tout peut se réécrire. La ",[139,2295,2298],{"href":2296,"rel":2297},"https:\u002F\u002Ffr.wikipedia.org\u002Fwiki\u002FM%C3%A9taprogrammation",[143],"métaprogrammation"," y est monnaie courante, et l’IDE lui-même (écrit en Smalltalk également) peut-être modifié. Ici, pas de ",[139,2301,2304],{"href":2302,"rel":2303},"https:\u002F\u002Ffr.wikipedia.org\u002Fwiki\u002FSucre_syntaxique",[143],"sucre syntaxique",", pas d’",[139,2307,2310],{"href":2308,"rel":2309},"https:\u002F\u002Ffr.wikipedia.org\u002Fwiki\u002FInstruction_conditionnelle_(programmation)",[143],"instruction conditionnelle",", mais du typage dynamique, des ",[139,2313,2316],{"href":2314,"rel":2315},"https:\u002F\u002Fwww.gnu.org\u002Fsoftware\u002Fsmalltalk\u002Fmanual-base\u002Fhtml_node\u002FBlockClosure.html",[143],"BlockClosures"," (équivalent de lambdas en Java par exemple) qui sont eux-mêmes des objets manipulables.",[39,2319,2320,2321,1482,2326,2331],{},"Lionel nous fait naviguer sur des concepts simples, comme les objets ",[139,2322,2325],{"href":2323,"rel":2324},"https:\u002F\u002Fwww.gnu.org\u002Fsoftware\u002Fsmalltalk\u002Fmanual-base\u002Fhtml_node\u002FBoolean.html",[143],"Boolean",[139,2327,2330],{"href":2328,"rel":2329},"https:\u002F\u002Fwww.gnu.org\u002Fsoftware\u002Fsmalltalk\u002Fmanual-base\u002Fhtml_node\u002FMessageNotUnderstood.html",[143],"MessageNotUnderstood"," (erreur de fonction introuvable). Etant des objets comme les autres, tous deux pouvant être également réécrits  !",[39,2333,2334,2335,2340,2341,1482,2344,569],{},"La notion de test n’est pas présente à cette époque, mais il est quand même possible d’y faire une sorte de TDD. Smalltalk s’écrit en ",[139,2336,2339],{"href":2337,"rel":2338},"https:\u002F\u002Ffr.wikipedia.org\u002Fwiki\u002FApproches_ascendante_et_descendante",[143],"top-down"," et avec une approche très itérative en ",[366,2342,2343],{},"baby steps",[366,2345,2346],{},"red\u002Fgreen\u002Frefactor",[39,2348,2349,2350,2353,2354,2357,2358,2363],{},"Il nous est montré ici à quel point Smalltalk se veut ",[366,2351,2352],{},"simple & fluent",", se rapprochant vraiment de notions telles que le ",[366,2355,2356],{},"clean code",". D’ailleurs, le livre ",[139,2359,2362],{"href":2360,"rel":2361},"https:\u002F\u002Ffr.wikipedia.org\u002Fwiki\u002FDesign_Patterns",[143],"Design Patterns"," de 1994 donne des exemples en Smalltalk.",[39,2365,2366],{},"En conclusion, nous pouvons effectivement faire un parallèle entre les années 70 et maintenant. Beaucoup de concepts qui nous semblent novateurs de nos jours sont en fait tirés ou inspirés d’une époque très lointaine de la programmation. Lionel nous indique trois points qui en découlent :",[64,2368,2369,2372,2375],{},[67,2370,2371],{},"Changer l’anormal (remettre en question les choix, les paradigmes et langages utilisés)",[67,2373,2374],{},"Apprendre de tous (attention à une potentiel hiérarchie entre les développeurs)",[67,2376,2377],{},"Apprendre du passé (se baser sur toutes les connaissances du passé)",[39,2379,2380,679,2383,2390],{},[366,2381,2382],{},"Pour plus d’informations, voici un podcast où",[139,2384,2387],{"href":2385,"rel":2386},"https:\u002F\u002Fpodcast.ausha.co\u002Fpunkindev\u002Fs05e10-aux-origines-du-craft-et-de-tdd-smalltalk-avec-lionel-armanet",[143],[366,2388,2389],{},"Lionel parle de Craft et de Smalltalk avec Sylvain\u002FPunkinDev",[366,2391,569],{},[56,2393,2395],{"id":2394},"du-style-au-sein-du-craft","Du Style au sein du Craft",[39,2397,2398],{},[366,2399,2400],{},"Par Aurélie BRACCO et Arnaud FREISMUTH",[39,2402,2403],{},[139,2404,1782],{"href":2405,"rel":2406},"https:\u002F\u002Flyon-craft.fr\u002Fsessions\u002Fdu-style-au-sein-du-craft.html",[143],[39,2408,2409],{},"Aurélie et Arnaud, tous deux développeurs front, sont venus nous parler de concepts craft… graphiques !",[39,2411,2412,2413,2418],{},"Tout d’abord, nous assistons à une présentation de plusieurs concepts bien connus des devs front, comme par exemple le ",[139,2414,2417],{"href":2415,"rel":2416},"https:\u002F\u002Ffr.wikipedia.org\u002Fwiki\u002FSyst%C3%A8me_de_design",[143],"Design System",", comprenant les blocs de construction et normes à adopter pour un projet \u002F une organisation. Les avantages : cohérence de produit et de marque, collaboration simplifiée, temps de conception diminué, et même une amélioration de l’accessibilité, dont on parlera juste après.",[39,2420,2421,2422,2425],{},"Ce Design System est composé d’un ",[366,2423,2424],{},"styleguide",", un document qui définit des règles et bonnes pratiques. Il permet une communication visuelle cohérente à l’entreprise\u002Fau projet, et comprend également une charte éditoriale, permettant de savoir à quel public on s’adresse et comment.",[39,2427,2428,2429,2434,2435,2440,2441,2446],{},"Aurélie et Arnaud nous montrent un exemple sur ",[139,2430,2433],{"href":2431,"rel":2432},"https:\u002F\u002Fwww.figma.com\u002F",[143],"Figma",", où sont également définis les couleurs primaires\u002Fsecondaires et leurs teintes, la typographie, les ",[139,2436,2439],{"href":2437,"rel":2438},"https:\u002F\u002Fwww.w3schools.com\u002Fcss\u002Fcss3_borders.asp",[143],"radius",", les ",[139,2442,2445],{"href":2443,"rel":2444},"https:\u002F\u002Fwww.w3schools.com\u002Fcss\u002Fcss3_shadows.asp",[143],"shadows",", etc. qui seront utilisés sur le projet.",[39,2448,2449,2450,2455],{},"Parlons maintenant ",[139,2451,2454],{"href":2452,"rel":2453},"https:\u002F\u002Fbradfrost.com\u002Fblog\u002Fpost\u002Fatomic-web-design\u002F",[143],"Atomic Design",", ce concept structure les interfaces en composants réutilisables, des plus simples (atomes) aux plus complexes (pages), pour une conception modulaire et cohérente.",[39,2457,2458],{},[45,2459],{"alt":2460,"src":2461},"Les composants de l’Atomic Design, dans l’ordre : Atomes, Molécules, Organismes, Templates et enfin Pages","\u002Fcontent-assets\u002F2025-05-07-lyon-craft-2025-22\u002Fassets\u002Fimg4.webp",[39,2463,2464,2465,2468,2469,2472],{},"Dans cette optique, nous pouvons également ajouter la notion de ",[366,2466,2467],{},"quarks",", encore plus petits que l’atome et inutilisables seuls (par exemple une couleur). L’ensemble de ces éléments est trouvable sur la ",[366,2470,2471],{},"pattern library"," qu’Aurélie et Arnaud nous présentent alors.",[39,2474,2475,2476,2479],{},"Pour la suite de la démonstration, les deux développeurs nous embarquent sur la création d’un composant accordéon, que nous allons ajouter à leur ",[366,2477,2478],{},"component library"," (regroupant et standardisant les différents composants graphiques utilisables sur le projet).",[2481,2482,2483],"blockquote",{},[39,2484,2485,2486,2489,2490,569],{},"💡 Si vous ne savez pas ce qu’est un accordéon, ou que vous voulez jeter un œil au ",[366,2487,2488],{},"Système de Design"," de l’Etat, vous pouvez aller voir ",[139,2491,2494],{"href":2492,"rel":2493},"https:\u002F\u002Fwww.systeme-de-design.gouv.fr\u002Fcomposants-et-modeles\u002Fcomposants\u002Faccordeon\u002F",[143],"l’accordéon des sites gouvernementaux ici",[39,2496,2497,2498,2503,2504,2509],{},"Nous assistons donc à une démonstration sur ",[139,2499,2502],{"href":2500,"rel":2501},"https:\u002F\u002Ftikui.org\u002F",[143],"Tikui"," (projet Open Source). Cette solution s’appuie sur ",[139,2505,2508],{"href":2506,"rel":2507},"https:\u002F\u002Fpugjs.org\u002Fapi\u002Fgetting-started.html",[143],"Pug",", qui permet du templating minimaliste traduisible en HTML. L’accordéon est créé, puis ensuite un groupe d’accordéons.",[39,2511,2512,2513,2515],{},"Dans une appli Vue, on récupère ensuite tout simplement la ",[366,2514,2471],{}," provenant de Tikui, et l’organisme “groupe d’accordéons” précédemment créé. Et nous voici avec notre composant injecté sur notre application.",[39,2517,2518,2519,2524],{},"S’en suit un focus sur l’",[139,2520,2523],{"href":2521,"rel":2522},"https:\u002F\u002Faccessibilite.numerique.gouv.fr\u002Fobligations\u002Fnotions-accessibilite-numerique\u002F",[143],"accessibilité numérique",", un élément ô combien important. Situation de handicap, connexion lente, matériel ancien ou défectueux, environnement défavorable, les problématiques potentielles d’utilisation d’un produit numérique ne manquent pas. C’est au développeur front qu’incombe la responsabilité de ne pas créer l’inaccessibilité du web.",[39,2526,2527],{},[45,2528],{"alt":2529,"src":2530},"Pourquoi l’accessibilité c’est important ? Aurélie et Arnaud nous informent sur le sujet","\u002Fcontent-assets\u002F2025-05-07-lyon-craft-2025-22\u002Fassets\u002Fimg5.webp",[39,2532,2533],{},"Quelques pistes pour améliorer l’accessibilité numérique de votre produit :",[64,2535,2536,2539,2542,2545,2548],{},[67,2537,2538],{},"conformité aux normes HTML\u002FW3C,  utilisation correcte des balises sémantiques et des attributs aria",[67,2540,2541],{},"tester la navigation clavier",[67,2543,2544],{},"tests avec lecteur d'écran",[67,2546,2547],{},"responsivité et zoom du texte jusque 200%",[67,2549,2550],{},"tests sur différents navigateurs",[39,2552,2553,2554,2559],{},"Aurélie et Arnaud font ici un test avec un lecteur d’écran. Celui-ci démontre que notre accordéon n’est pas encore accessible : le lecteur d’écran ne sait pas si celui-ci est ouvert ou fermé, ce qui n’est pas pratique. Les deux développeurs ajoutent donc l’attribut ",[139,2555,2558],{"href":2556,"rel":2557},"https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAccessibility\u002FARIA\u002FReference\u002FAttributes\u002Faria-expanded",[143],"aria-expanded"," pour déterminer le statut de l’accordéon, et le tour est joué !",[39,2561,2562,2563,2568,2569,679,2572,679,2575,2578],{},"La conclusion donnée ici est un lien avec le Craft, et notamment avec le ",[139,2564,2567],{"href":2565,"rel":2566},"https:\u002F\u002Ffr.wikipedia.org\u002Fwiki\u002FTest_driven_development",[143],"TDD"," : le cycle ",[366,2570,2571],{},"red >",[366,2573,2574],{},"green >",[366,2576,2577],{},"refactor"," est ici remplacé par un cycle structure (HTML) > style (CSS) > refacto (qualité, accessibilité).",[56,2580,2582,2585],{"id":2581},"conférence-dessinée-regard-scientifique-sur-lartisanat-logiciel",[769,2583,2584],{},"Conférence dessinée"," Regard scientifique sur l'artisanat logiciel",[39,2587,2588,2591,2598],{},[366,2589,2590],{},"Par Victor LAMBRET (",[139,2592,2595],{"href":2593,"rel":2594},"https:\u002F\u002Fvlambret.github.io\u002F",[143],[366,2596,2597],{},"boringdev.eu",[366,2599,1093],{},[39,2601,2602],{},[139,2603,1782],{"href":2604,"rel":2605},"https:\u002F\u002Flyon-craft.fr\u002Fsessions\u002Fregard-scientifique-sur-l-artisanat-logiciel.html",[143],[39,2607,2608,2609,569],{},"En avant pour une conférence dessinée, Victor nous illustrant ses propos avec des dessins faits maison. Nous allons ici bien sûr parler de Craftsmanship, ou en français d’",[366,2610,2611],{},"artisanat logiciel",[39,2613,2614],{},"Cet artisanat logiciel, ces concepts, méthodes et outils pour mieux faire, est-ce que cela compte réellement ? Est-ce simplement une accumulation d’effets de mode ? Ne pas faire de Craft conduit-il forcément à l’échec, est-ce si manichéen ? Pour s’en assurer, rien de mieux que de se référer aux études scientifiques.",[39,2616,2617],{},[45,2618],{"alt":2619,"src":2620},"C’est parti pour un regard scientifique sur l'artisanat logiciel, et sur les dessins de Victor","\u002Fcontent-assets\u002F2025-05-07-lyon-craft-2025-22\u002Fassets\u002Fimg6.webp",[39,2622,2623,2624,2627],{},"Par exemple, Robert C. Martin, dans son livre ",[139,2625,2207],{"href":2205,"rel":2626},[143]," (déjà cité plus haut dans cet article, décidément) nous indique que la taille des fonctions est une donnée importante pour jauger la qualité d’un code. En effet, on peut trouver cette citation dans son ouvrage :",[2481,2629,2630],{},[39,2631,2632],{},"The first rule of functions is that they should be small. The second rule of functions is that they should be smaller than that.",[39,2634,2635],{},"Écrire de plus petites fonctions permettrait de simplifier la programmation. Mais est-ce aussi évident ? Dans un exemple sur du Fortran datant de 83, plus le module était grand, plus le nombre de bugs par ligne était petit, rentrant en contradiction avec Robert C. Martin.",[39,2637,2638,2639,2642,2643,2646],{},"Pour du plus récent et complet, une étude de 2016 compare deux équipes (que je nommerai ici A et B pour que ce soit plus simple). L’équipe A part avec une base de code, une équipe B avec une version “améliorée” respectant le ",[366,2640,2641],{},"Clean Code."," Le résultat ? En moyenne, A arrive plus facilement à ajouter une fonctionnalité sur son code, B à refactorer, et des bugs furent trouvés beaucoup plus rapidement par l’équipe A. Conclusion : a priori, pas de bénéfice de ",[366,2644,2645],{},"Clean Code"," sur la compréhension d’un code par des développeurs.",[39,2648,2649],{},[45,2650],{"alt":2651,"src":2652},"Un exemple de slide présenté par Lionel, une illustration parlante de sa conférence","\u002Fcontent-assets\u002F2025-05-07-lyon-craft-2025-22\u002Fassets\u002Fimg7.webp",[39,2654,2655,2656,2661],{},"C’est au tour du TDD de passer à la loupe de Lionel. Une première ",[139,2657,2660],{"href":2658,"rel":2659},"https:\u002F\u002Ffr.wikipedia.org\u002Fwiki\u002FM%C3%A9ta-analyse",[143],"méta-analyse"," nous indique une tendance : le TDD serait positif pour éviter\u002Fcorriger les bugs, mais en contre-partie la productivité serait impactée négativement. Mais il est compliqué de statuer de manière très claire avec les études industrielles.",[39,2663,2664],{},"IBM et Microsoft ont mené des études comparatives, sur des projets en parallèle. Une équipe utilisait le TDD, systématiquement, l’autre était un groupe contrôle. Là aussi, le temps passé était plus important du côté de l’équipe en TDD (+20% en moyenne), mais le nombre de bugs bien inférieur (de -40% à -90%).",[39,2666,2667],{},"Mais ces études ne portent pas de conclusion clair sur l’efficacité de la pratique du TDD. En effet, ces bugs auraient pu être trouvés par l’équipe de QA, et la notion de TDD dépend parfois d’une équipe, d’un projet, d’une étude à l’autre. De plus, l’échantillon est trop faible : par exemple seuls 0,8% des repos Java hébergés sur GitHub feraient du TDD.",[39,2669,2670,2671,2674,2675,2678],{},"Enfin, Lionel nous évoque une comparaison réalisée entre TDD et ITL (",[366,2672,2673],{},"Iterative Test Last",", que l’on pourrait également qualifier de ",[366,2676,2677],{},"reverse TDD","), dans différents contextes, qu’ils soient universitaires ou professionnels, sur des katas bien connus. Les conclusions :",[64,2680,2681,2684,2687],{},[67,2682,2683],{},"pas de grandes différences sur étudiants vs professionnels",[67,2685,2686],{},"pas de grandes différences entre les différents langages de projets",[67,2688,2689],{},"la qualité est légèrement meilleure pour l’ITL, mais pas de manière significative.",[39,2691,2692],{},"On peut en conclure que les deux sont globalement équivalents, et que la qualité vient surtout des concepts de feedback régulier, de refactoring continu, et bien sûr des tests à l’origine de ces deux méthodologies.",[39,2694,2695],{},"En conclusion du talk, Lionel nous conseille de ne pas hésiter à attaquer nos croyances. Tout dépend du contexte et des conditions des projets sur lesquels nous intervenons.",[56,2697,2699],{"id":2698},"conclusion","Conclusion",[39,2701,2702,2703,2708,2709,2714],{},"Après toutes ces conférences, j’ai eu la chance d’assister à une très intéressante ",[139,2704,2707],{"href":2705,"rel":2706},"https:\u002F\u002Flyon-craft.fr\u002Fsessions\u002Fpodcast.html",[143],"table ronde sur le sujet de l’image du Craft"," (à retrouver également en ",[139,2710,2713],{"href":2711,"rel":2712},"https:\u002F\u002Fpodcast.ausha.co\u002Fpunkindev\u002Fs05e14-liveatlyoncraft-table-ronde-sur-l-image-du-craft",[143],"podcast chez PunkinDev","), un sujet dont nous pourrons discuter à l’avenir dans un autre article.",[39,2716,2717],{},"En somme, le bilan de la journée est très positif, et j’en tire beaucoup d’informations et de réflexions sur le sujet du Software Craftsmanship. Je participerai avec plaisir à l’éventuelle prochaine édition.",[39,2719,2720,2721,2726],{},"Les conférences ont été enregistrées et sont retrouvables sur le ",[139,2722,2725],{"href":2723,"rel":2724},"https:\u002F\u002Fwww.youtube.com\u002F@softwarecrafterslyon9383",[143],"YouTube de Software Crafters Lyon",", où vous pourrez également visionner tous les talks dont je n’ai pas pu parler sur ce blog.",[39,2728,2729],{},"Merci de votre lecture et à très bientôt sur ce blog pour reparler de Craft et de plein d’autres belles choses !",{"title":277,"searchDepth":278,"depth":278,"links":2731},[2732,2733,2734,2736],{"id":2181,"depth":278,"text":2182},{"id":2394,"depth":278,"text":2395},{"id":2581,"depth":278,"text":2735},"Conférence dessinée Regard scientifique sur l'artisanat logiciel",{"id":2698,"depth":278,"text":2699},"2025-05-07T14:36:44.718Z","Cet article est la suite de [mon retour sur Lyon Craft](https:\u002F\u002Fblog.hoppr.tech\u002Fblogs\u002F2025-04-24-lyon-craft-2025-12). Dans cette première partie, nous avions couvert les talks auxquels j’ai eu la chan",{},"\u002Fblogs\u002F2025-05-07-lyon-craft-2025-22",[2742,2744,2746],{"id":303,"name":304,"image":2743,"linkedin":306,"x":14},"https:\u002F\u002Fprod-files-secure.s3.us-west-2.amazonaws.com\u002F5863e833-64f2-4f13-9f7a-2c92c72b5bbf\u002Fc88f5dfa-16db-4e6f-acf1-34dd80ee8766\u002Femma_hoppr.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ASIAZI2LB466SQLTIAF2%2F20250507%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20250507T143641Z&X-Amz-Expires=3600&X-Amz-Security-Token=IQoJb3JpZ2luX2VjELb%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaCXVzLXdlc3QtMiJHMEUCIGaaze3jgEdj29BimvIE1eGEt4qcalirK6%2FWgg9g4VXdAiEA2s2DRTx%2FquxcccKRcDDhOWLiQThMIdIwyUz9GvfAyYIq%2FwMIXxAAGgw2Mzc0MjMxODM4MDUiDMRJa%2BxwLownPoG3IyrcA5%2Bszya42miksRJHP6y%2FlvJP9Rckvb5%2BAI1jicKYgmFdOENO%2FfizcRhBrvXjTkyrFKvWZBnN21gnYEGSq5jNjn34c2tdyizCbgS2o4Iu5WcPjpIJL55qIf6%2F2gULe1cRqIOuJ48rDbjX6TePNNqL52G1RRw3Ay3HhnBPfzxTQRnywmDA12ehDGZiszlILVE%2FyYSOV%2FYpd2029bYw9J2bBwctBVGUnSSQ22ofy3DedPAvR7p%2BkMaU09Z5tXNMDsNubkoqZoIc7xFgPy99eOwKHTOVnct0Yf5wPjZM4X%2FcJNk8dw1yh%2FBhkemS2jIEghRtNYYdZqFivTr6TUG12UqCaOIQRGj8GQvnZh3auvGy3OcRU%2F5m1CF9vpAVsW04H%2BwNJMZ6YOmLdwZDYaA7lS4EBrxcb2RCqqRhlgrzEJGR9F0Y0cfGYisH7X4gc7VScJfL82YLsWpZb6UfTMbasF2M6YN4xvJDk%2FDg%2FqsVrPwijuPQ%2FoQJueDdvcN9cxtB2P14rg%2B62hE9ATlJgHe23%2F5rFMUJEDnUPdW3N%2FSjMA01k0MNzm7GugUpCAM0LsEDQkThSwrtHiKKHYWR%2Fh86O7GOdVSHEPgkU29d7%2BtWhX0XWcCK651XvFE9%2FTCg%2B8xSMP%2FN7cAGOqUB4jy0APhdW%2BErX1PpMP0PXNeaUNivHk%2Bm2MRgonNUbdLTSBS3nTkOYx6k6KwlMCi0WF6pf7Lvtmd%2FPlxjoeMEjA5FCC8ssMZFNGE6RrzrrUkUUzi96xWge5H8ZGgwlLwecYDKzalplbbZY0VifoILWWwGrsM%2BvOjv5Q8Pvom5AE85Umx%2BSyZZHDwpM5jMghiKarsWEUX32ZWcY0Wb8dCK8EXN5PGW&X-Amz-Signature=f8d741c680fcbaa2d614ae05ccd4476c1fe5ee5d263e2526fe8c7d933f245601&X-Amz-SignedHeaders=host&x-id=GetObject",{"id":16,"name":17,"image":2745,"linkedin":19,"x":14},"https:\u002F\u002Fprod-files-secure.s3.us-west-2.amazonaws.com\u002F5863e833-64f2-4f13-9f7a-2c92c72b5bbf\u002F53946b9e-3bb9-45bd-a8b4-429c51156179\u002FT04PC176TGB-U05EW3YF61Z-5e129f612df3-512.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ASIAZI2LB466USHIWH35%2F20250507%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20250507T143644Z&X-Amz-Expires=3600&X-Amz-Security-Token=IQoJb3JpZ2luX2VjELb%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaCXVzLXdlc3QtMiJHMEUCIQDI6VFScPT%2BI3I6BD536jpkQPrkeA%2BbPftds4nXdYDgjgIgPnZIPY%2FRgFHtx1tcrXyCWcijN%2FFaO7jtsforzr15Tq4q%2FwMIXxAAGgw2Mzc0MjMxODM4MDUiDCZO8N8P2NAfXTTDOSrcA%2FgkSBnN9EE62zrEPz657yafi0ZOaY5w7xj9f8rGGjDsXVnhiXFe0mwQ9cwejPEnf7A2uTaxdpAnYF%2FXX6C7KgJWAGrtUdb8e6nBQ8w06SJZE1m%2FYzGoeJ4AlWoyZdCK214swZe2daBed6TndMX%2B9zEeoc2nhcIVejUe2ZkLgM8ueR6lVdQtSPthOqecKCOokepMclEaeWdimnZm60VNvco5NT%2BTKUPnxLZjnDpEw6tuTpiLmIICsn%2BnCAfmFU8qXIywCkiyeTHv68Q4lNSqnOruxJnHlaKITMNrePffyviFjY4vMjNazpeFsHbErK%2FilGDyFc7VPH6OyW6IXDJO4M%2BkcBQFhJOy31HlT5Ror3DVIQhtTgCn4vZJKPFRG4mba%2FfizDKlQhAuapwpyPn45L8ju8C4g3OWI%2FCFI5woHaThZJjI%2B7uaD%2F7GzR9%2F66RiErJkGLwbWUY9SIPZFSSA04Et%2BJhX6XGvsjQZ5G5sbR32NL22w4kHGlSwC3cfD8m93L%2FP0uWQyybqRMdaAJqWoMfWzpfnemeQT%2Fd1BTNhVNUyYQreKsKJ99WeK0lDLIMydzExOrMiM%2BfedIYH2kmaVUIMjrW4jf5%2BOrFnWS1XIIZzD6BlR4R5hYwvpBskMI3O7cAGOqUBifel974t2leDwzdqu4SDnKsVyHpK9w7r4RvRWXIbc67J2doJg4W%2FcIEpa1yC%2BO7kw07Ee7rVvRWZQeNliCmms4vMYWDaxLkAjAr4WGRnDN7KRdGakXMlbDBwnO34q6vBy5JJf3b1cGjN1xNgjF1B58IkhScl5hVaI3jDRKFIsUh5vs8DZI%2Fa6XO9rO5MhddzyPKFrnt1efUcDC%2FKaA1mSrxDGbAy&X-Amz-Signature=6a4d4c88d15a7eb01702572dbf16211e542898d3fb8f8cdddf194730c044939d&X-Amz-SignedHeaders=host&x-id=GetObject",{"id":297,"name":298,"image":2747,"linkedin":300,"x":301},"https:\u002F\u002Fprod-files-secure.s3.us-west-2.amazonaws.com\u002F5863e833-64f2-4f13-9f7a-2c92c72b5bbf\u002Fc69d0b59-558d-4e48-879f-bea3fec1fdef\u002FLinkedin_Profile.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ASIAZI2LB4665EYDPHT7%2F20250507%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20250507T143641Z&X-Amz-Expires=3600&X-Amz-Security-Token=IQoJb3JpZ2luX2VjELb%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaCXVzLXdlc3QtMiJGMEQCIG0EXEyE1pXT6gi9pnqyvkaP8ZxWWRsKmmOieqQiOHpXAiBKg9dgfHm%2BShieFhmyoH%2F2CAADimVSzT3SNmH1o6t0nCr%2FAwhfEAAaDDYzNzQyMzE4MzgwNSIMzTls379yYnws2GePKtwDQ1bS97UeqDzfoF7q%2F7fjhOaJXQ2NqAEHJioVxoHnyN%2F%2BnS85XI0dj1tu0kwUJBDi%2FoVmzKyEhPx0gmwXsGikV7IwoH1vhtbqoyMdZwT7RI2bRS1g8KwZfBx%2FqHpP4z%2Fav1cr9td4ygCOfTcFygVGglIc%2FHoJ9CYzgHyM084pGxGCE1fXi7sXvEhdYSbtoqt1UdcD4C%2FyHIa6V1Xhqy0Uets3uzVTRmBCngj0JCtCsLFPY97Xyo%2BuOzzdlvKSun5VSusI%2BbB%2BoG8X%2F3wB0z58dzt%2F5qvSP21DgQFvWTGMe9qY6oCEOX7G8njBPb7JXZfKvdU91RLKV31auGh4WjvgZ620afFU43C4cxE6PEBOrMfs9Yt8d%2FRNu6%2FeI%2Beh9NwuDJUA1WXyvQvpKfhy0FtcZVqAu%2Fo6Hp%2FD50CDjrJivs8vDzlbWIwlf5IIWdbiKWKfNENreGxD4mo%2Fgn6VogkX6UdszuP4XiI%2FixQ4TZbUOfyZeS6OuvvOXUjiC384%2BCa3Bw3ZIpBxzy3B8cnNG7Jkzq77IjoyRJbc1jhjNaTXVRnnXH3Hznqc9FKQmNLhbg7hEbkIo6GReGjIfC9AZIr7Z3%2BPXk15vUbHjQQbICCrufGfBjmn54%2BG3OrlnCswh87twAY6pgHqm6aayYs46ytFdEbIoqMt%2Buk5pDL85bLMuJuk%2FQnuhd96b95P1xAv4Pu3vtI1osrfD115iKvRbomJyU1Gl3S7SwfFe0mv1c%2FoyEgZiIpCVvI8WzhO5Z9hxUPe8FQALuJu12GBhoQdagyFQvf9Ht1lbftfj00ZJv7ynG4I%2FaDZSd38eBp1M0ygI8wwDDyYlJ8zLYf0DHq4XHAiPSSPLYsEVjKOKVRE&X-Amz-Signature=b8109bc670122dbf25b92481a5b8841c12310f13099ec289ec98af779f14726b&X-Amz-SignedHeaders=host&x-id=GetObject",{"title":2164,"description":2738},"blogs\u002F2025-05-07-lyon-craft-2025-22\u002Findex",[311,2160,540],"JGNL2uMKCOn8AXAh_6F39Jmwbc8A14_BylccDlX37AY",{"id":2753,"title":2754,"alt":2755,"authors":2756,"body":2767,"date":2912,"description":2913,"extension":290,"image":291,"meta":2914,"navigation":293,"ogImage":291,"path":2915,"published":293,"reviewers":2916,"seo":2919,"stem":2920,"tags":2921,"__hash__":2924},"blogs\u002Fblogs\u002F2025-10-20-cloud-nord-une-aventure-tech-collective-et-engage\u002Findex.md","Cloud Nord: une aventure tech, collective et engagée","image de l’événement cloud nord qui aura lieu le 23 octobre 2025 à l’université catholique de Lille",[2757,2759,2761,2762],{"id":297,"name":298,"image":2758,"linkedin":300,"x":301},".\u002Fassets\u002Fauthor-maxime-deroullers.webp",{"id":303,"name":304,"image":2760,"linkedin":306,"x":14},".\u002Fassets\u002Fauthor-emmanuelle-gouvart.webp",{"id":10,"name":11,"image":12,"linkedin":13,"x":14},{"id":2763,"name":2764,"image":2765,"linkedin":2766,"x":14},"45c76823-ab7d-4c1f-84b3-0bad16ab91e1","Paul-Alexandre Chrétien",".\u002Fassets\u002Fauthor-paul-alexandre-chrtien.webp","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fpaulalexandrechretien\u002F",{"type":31,"value":2768,"toc":2903},[2769,2772,2778,2781,2784,2790,2793,2796,2799,2802,2808,2811,2814,2817,2820,2826,2829,2832,2835,2838,2845,2851,2854,2857,2860,2863,2869,2872,2875,2878,2884,2887,2890,2893,2896],[34,2770,2754],{"id":2771},"cloud-nord-une-aventure-tech-collective-et-engagée",[56,2773,2775],{"id":2774},"cloud-nord-une-aventure-tech-collective-et-engagée-1",[356,2776,2777],{},"Cloud Nord : une aventure tech, collective et engagée",[39,2779,2780],{},"Organiser un événement tech de 250 à 500 personnes, bâtir un programme de conférences exigeant, coordonner une dizaine de bénévoles, assurer la logistique, la communication, le sponsoring… et faire tout cela bénévolement, en parallèle d’un emploi à temps plein ? C’est le pari que relève chaque année l’équipe organisatrice de Cloud Nord.",[39,2782,2783],{},"Ce rendez-vous devenu incontournable dans l'écosystème tech de Lille, dédié au Cloud et DevOps, est né en 2020 d’une envie simple mais ambitieuse : créer ce qui n’existait pas encore.",[56,2785,2787],{"id":2786},"une-initiative-née-du-terrain-pour-le-terrain",[356,2788,2789],{},"Une initiative née du terrain, pour le terrain",[39,2791,2792],{},"En pleine période de confinement, Nicolas Zago, aux côtés de Maxime Deroullers, Emmanuelle Gouvart et Paul-Alexandre Chrétien (aujourd’hui tous chez HoppR), lance l’idée de créer un événement local, à la fois technique, exigeant, et humain.",[39,2794,2795],{},"« Il existait déjà des événements comme le DevFest (aujourd'hui DevLille) ou AgiLille, qui parlent eux aussi à la communauté tech. Mais aucun ne mettait vraiment le focus sur les enjeux Cloud et DevOps. Alors on a eu envie de créer notre propre rendez-vous, centré sur ces thématiques. » explique Nicolas, CEO fondateur d’HoppR.",[39,2797,2798],{},"La première édition a lieu en ligne, en octobre 2020. Tout est à créer : une association loi 1901, une identité visuelle, un site web, un compte bancaire, une billetterie. Mais l’énergie collective est là. Et surtout, la communauté répond présente.",[39,2800,2801],{},"Depuis, l’événement a grandi, s’est installé à Euratechnologies, puis à l’Université Catholique de Lille en 2025, sans jamais renier son ambition initiale : un programme sérieux dans une ambiance conviviale.",[56,2803,2805],{"id":2804},"un-programme-pensé-pour-et-par-la-communauté-tech",[356,2806,2807],{},"Un programme pensé pour et par la communauté tech",[39,2809,2810],{},"En 2024 Cloud Nord accueille près de 500 participants. L'équipe reçoit en moyenne une centaine de propositions de talks. « Cette année, en 2025, on en a reçu 117, et on en sélectionne une vingtaine » explique Emmanuelle. « On a une plateforme sur laquelle les membres de l’asso et des bénévoles peuvent voter, noter, discuter des propositions. On choisit les sujets qui nous semblent les plus pertinents, utiles, inspirants.»",[39,2812,2813],{},"Le programme est conçu avec une attention particulière à la diversité des sujets, des formats et des profils de speakers. La moitié viennent de la région, l’autre moitié d’ailleurs. Certaines interventions sont très techniques, d’autres plus narratives, toutes partagent une même exigence : transmettre quelque chose de concret.",[39,2815,2816],{},"Dès les premières éditions, les organisateurs ont fait le choix d’un processus de sélection transparent et rigoureux, en s’appuyant sur un comité ouvert à des membres de différentes entreprises et horizons. Objectif : garantir une notation impartiale, éviter toute forme de copinage, et s’assurer d’un événement \"fair\" et de qualité. C’est aussi ce qui a permis de bâtir la fidélité du public au fil des années.",[39,2818,2819],{},"« Ce que les gens nous disent souvent, c’est : j’ai appris plein de choses, j’ai rencontré des gens, j’ai pu poser mes questions » souligne Paul-Alexandre. « Et c’est exactement ce qu’on veut. On n’est pas là pour faire du chiffre, mais pour créer un moment utile. »",[56,2821,2823],{"id":2822},"un-engagement-qui-transforme-aussi-les-organisateurs",[356,2824,2825],{},"Un engagement qui transforme aussi les organisateurs",[39,2827,2828],{},"Au fil des années, les bénévoles ont changé, l’équipe s’est renouvelée, mais le noyau dur reste. Et l’implication dans Cloud Nord est aussi une expérience fondatrice pour celles et ceux qui donnent de leur temps.",[39,2830,2831],{},"Emmanuelle, DRH chez HoppR, voit dans l'organisation de Cloud Nord une activité stimulante et pleinement compatible avec sa vie professionnelle et personnelle. Elle s’occupe notamment du marketing, de la communication et de l’organisation globale de l’événement. « Cet engagement me permet d'être en prise directe avec les enjeux du terrain, d'affiner ma compréhension des pratiques et des attentes des profils tech. Pour recruter efficacement, pour accompagner les carrières, il faut comprendre en profondeur les réalités des métiers. Participer à cet événement me donne une longueur d'avance et me rend plus pertinente dans mon rôle. »",[39,2833,2834],{},"Pour Paul-Alexandre, Senior Cloud Engineer chez HoppR, c’est aussi une façon d’incarner l’esprit craft. Sur les dernières éditions, il a pris en charge plusieurs aspects techniques de l’événement : gestion de la plateforme de billetterie, déploiement de l’application de scan des billets, intégration des outils pour les sponsors afin qu’ils puissent garder le contact avec les visiteurs, mise en ligne et planification des replays sur YouTube, ainsi que le suivi de la plateforme de notation des talks.",[39,2836,2837],{},"« On veut montrer que dans le Nord, on sait faire des choses bien. Ce n’est pas juste un événement, c’est aussi un outil de partage, d’apprentissage, de fierté. Et au fond, c’est très gratifiant de voir quelque chose grandir, année après année. »",[39,2839,2840,2841,2844],{},"Quant à Maxime, Architecte Cloud\u002FDevOps et Agency Leader chez HoppR, il a depuis contribué à la création de ",[356,2842,2843],{},"Cloud Alpes à Lyon",", sur le même modèle : communautaire, qualitatif, accessible.",[56,2846,2848],{"id":2847},"une-vision-alignée-avec-lesprit-hoppr",[356,2849,2850],{},"Une vision alignée avec l'esprit HoppR",[39,2852,2853],{},"L’événement Cloud Nord reflète certaines valeurs profondes que l’on retrouve chez HoppR : le goût du partage, l’engagement dans les communautés, la volonté de faire émerger des talents. Plusieurs membres de l’équipe organisatrice travaillent chez HoppR, et l’événement est naturellement en phase avec ce que l’entreprise cherche à incarner : une culture d’exigence, d’échange, et d’ancrage local.",[39,2855,2856],{},"C'est aussi une mise en pratique concrète de ce que Nicolas encourage au sein de ses équipes : devenir speaker, raconter ses expériences projets, transmettre ce qu'on apprend et apprendre en retour. Aller à la rencontre de la communauté tech pour contribuer à un écosystème qui progresse collectivement. Participer à Cloud Nord, c’est donc aussi prolonger cet engagement dans un cadre plus large, au bénéfice de tous.",[39,2858,2859],{},"Par ailleurs, la mise en lumière de profils, les billets sponsorisés destinés à des publics sous-représentés, les choix de prestataires et partenaires locaux, participent d’une même logique : celle d’un événement qui a du sens.",[39,2861,2862],{},"Depuis trois ans, l’équipe a aussi lancé le \"Tremplin des speakers\", une initiative pour faire émerger de nouveaux talents. Inspiré d’autres formats, mais inédit dans la région, ce mini-événement repose sur un principe simple : les talks présentés sont soumis à un vote, et les mieux notés accèdent ensuite à des scènes comme Cloud Nord, DevLille ou d’autres conférences partenaires. Une manière de créer du renouvellement, de faire circuler les idées et de valoriser les nouvelles voix.",[56,2864,2866],{"id":2865},"zoom-sur-lédition-2025-concentrée-engagée-toujours-gourmande",[356,2867,2868],{},"Zoom sur l'édition 2025 : concentrée, engagée, toujours gourmande",[39,2870,2871],{},"L'édition 2025 s'annonce particulière. Dans un contexte économique moins favorable pour les sponsors, l'équipe a fait le choix d'un format plus resserré, mais sans rien concéder à la qualité. Nouveau lieu (l’Université Catholique de Lille), nouveau traiteur (avec options végé\u002Fvegan et mignardises locales), sponsoring finalisé de justesse… Tout est prêt.",[39,2873,2874],{},"Le programme est en ligne, la billetterie ouverte, et plusieurs places \"diversité\" sont offertes grâce à Exotec, TechSys et Worldline. Comme toujours, ce sont les bénévoles qui ont constitué un programme pointu et varié, parmi lesquels Nicolas cite volontiers quelques coups de cœur : \"K8sGPT\", \"Dapr et Microcks\", \"Docker : plus qu’un choix, une nécessité\"...",[39,2876,2877],{},"Et bien sûr, la pause muffins du matin est de retour, avec ses gaufres, financiers et madeleines locales. Et cette année, petite nouveauté : après avoir mis à l'honneur des brasseurs locaux (tradition bien ancrée dans le Nord), l'événement accueillera pour la première fois un vigneron du Nord : le Domaine du Jeune Bois, qui viendra faire déguster ses cuvées lors de l'after. Une façon de montrer que le terroir régional sait aussi réserver des surprises.",[56,2879,2881],{"id":2880},"une-aventure-collective-qui-continue",[356,2882,2883],{},"Une aventure collective qui continue",[39,2885,2886],{},"Cloud Nord ne serait rien sans la dizaine de bénévoles qui s’impliquent chaque année, en plus du noyau fondateur. Leur engagement, souvent discret mais essentiel, est une part intégrante de la réussite de l'événement. Ils et elles méritent toute la reconnaissance.",[39,2888,2889],{},"Voici les bénévoles 2025 : Emmanuelle Gouvart, Maxime Deroullers, Nicolas Zago, Julien Wittouck, Alexandre Vandekerkhove, Camille Dagbert et Pierre Bourgeois.",[39,2891,2892],{},"« Ce qu’on souhaite, conclut Nicolas, c’est que les gens repartent avec des idées, des contacts, l’envie de creuser un sujet. Et surtout, le sentiment d’avoir passé une journée qui compte. »",[39,2894,2895],{},"Chaque année, Cloud Nord cherche à progresser, à innover, à se renouveler dans ses formats, ses thématiques, ses collaborations. C’est aussi cela, Cloud Nord : un lieu où la technique rencontre l’engagement, et où la communauté se construit, une édition après l’autre.",[39,2897,2898,2899],{},"Pour en savoir plus sur l'événement : ",[139,2900,2901],{"href":2901,"rel":2902},"https:\u002F\u002Fcloudnord.fr\u002F",[143],{"title":277,"searchDepth":278,"depth":278,"links":2904},[2905,2906,2907,2908,2909,2910,2911],{"id":2774,"depth":278,"text":2777},{"id":2786,"depth":278,"text":2789},{"id":2804,"depth":278,"text":2807},{"id":2822,"depth":278,"text":2825},{"id":2847,"depth":278,"text":2850},{"id":2865,"depth":278,"text":2868},{"id":2880,"depth":278,"text":2883},"2025-10-20T13:06:36.456Z","  Organiser un événement tech de 250 à 500 personnes, bâtir un programme de conférences exigeant, coordonner une dizaine de bénévoles, assurer la logistique, la communication, le sponsoring… et faire ",{},"\u002Fblogs\u002F2025-10-20-cloud-nord-une-aventure-tech-collective-et-engage",[2917],{"id":303,"name":304,"image":2918,"linkedin":306,"x":14},"https:\u002F\u002Fprod-files-secure.s3.us-west-2.amazonaws.com\u002F5863e833-64f2-4f13-9f7a-2c92c72b5bbf\u002Fc88f5dfa-16db-4e6f-acf1-34dd80ee8766\u002Femma_hoppr.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ASIAZI2LB466RBYBRSPA%2F20251020%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20251020T130636Z&X-Amz-Expires=3600&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEEUaCXVzLXdlc3QtMiJHMEUCIHrrOH5PrR6eJ5K951yaAB2s7WnyT9XUk%2BDmLGz0kUM%2BAiEAivskQY9erpOV%2BJtsawuVTTDCacWKPydGLUqLtFIN4DAqiAQI7v%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FARAAGgw2Mzc0MjMxODM4MDUiDCJj5MaF6y%2BbQ4eRgCrcA0BBiH1dQsnD7wgbRRU48aQFbt1UDJ3dF2JTwPFDT2%2BguD8BQqF0y2%2BFyEphmjUHKntIBFa4%2BbP1p7Oo3v%2BUXkBMi57XL5K%2BDjV%2B%2B5B8icTrVXAAltMZtSYhNDpNo2IZJgp4ErfUJHD2H1DZ0a7hZAv00Jz2Vb8qshpWMfd9dl4Hj0t1RsaDvcqC3TtHua%2Fn%2FLZ%2FyqMMfO5vSeR8AdSk9T44t9CtQ2en2K3vZfVN4odSpmaWJ8O3E3WSOzCESJkCe4L%2FF84H%2FZLZF9w%2BMFMr3dtSmTnuwogg04%2FOioZZIzHh2AF6jUCnx%2F0wv621ii7y6kFNgYF1XcVZMa6%2Fa9zGhmKge4r6sg5MNiLGzdOE5Kg145eH1U96RNxTf291zTlN33yJ9jn4zQl%2BGTMCBN7pKGaiWgPlNnGIiTwW%2F89sOcxNeMjawdLjYtNvifHxy3X8hVYKLmPaZaSh%2B5eUp%2BKZQxWF8IpsvzX6MA238HE9jryFemRsaFiZARF8CFww39z56E8Q%2Bfi%2Ff0d3dwZj9YAG7vSLwQjYxZY4TPD3uMkTS7v7AkElBowCePLzeQgIDif6pk%2BpGeEXWj743qZllYmGJRkuDuBDqvd%2BkWdPQlzs6TdvYCblJFfc38ceFqgbMOXY2McGOqUBTWwA1aDWA4L35659Zu6%2B0jM7QIYDtSpaZIJvCk9NcuC7rTxkHwe2lSSj%2B4O2ljWqaYbGgC6fPTZDWkoajpQRToFw6GXb9RCnHr%2BLXijpK%2FJAN8VXWy7wEh0S6uVDX%2BTSWnE0fKFftlHbIpiBdjWRUj2g3h0mM2MYOy9K7K9O3QU15MmujVx7SO4V5Ij934y55twjkgxJpGXTTOCyHFW7zXLII9dg&X-Amz-Signature=4feedc6123dd961c67097e83217e71867cff0a27a1959fb9942d7fbe53a47963&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject",{"title":2754,"description":2913},"blogs\u002F2025-10-20-cloud-nord-une-aventure-tech-collective-et-engage\u002Findex",[311,2922,2923],"cloud-platform","rex","0oP9lUxc5BshFRQyLcGQUGiA3r_tZLUbt3Y-FeI_ae0",{"id":2926,"title":2927,"alt":2928,"authors":2929,"body":2931,"date":3372,"description":3373,"extension":290,"image":291,"meta":3374,"navigation":293,"ogImage":291,"path":3375,"published":293,"reviewers":3376,"seo":3385,"stem":3386,"tags":3387,"__hash__":3389},"blogs\u002Fblogs\u002F2025-12-02-alors-ctait-comment-ce-premier-devfest-lyon\u002Findex.md","Alors ? C’était comment ce premier DevFest Lyon ?","L’équipe HoppR sur la scène du DevFest Lyon",[2930],{"id":1737,"name":1738,"image":1739,"linkedin":1740,"x":14},{"type":31,"value":2932,"toc":3365},[2933,2941,2952,2955,2961,2964,2967,2970,2974,2979,2982,2997,3006,3012,3015,3036,3042,3045,3048,3052,3057,3066,3091,3100,3103,3109,3112,3115,3130,3133,3160,3163,3177,3180,3184,3189,3198,3201,3204,3210,3213,3224,3227,3235,3239,3244,3253,3261,3264,3270,3273,3288,3301,3304,3329,3332,3335,3339,3342,3345,3356,3359,3362],[39,2934,2935,2936,569],{},"Une question que l’on me pose beaucoup en ce début de semaine. En effet, vendredi 28 novembre 2025, nous avons eu la chance, avec plusieurs collègues de HoppR, de faire partie des 250 participants de la première édition du ",[139,2937,2940],{"href":2938,"rel":2939},"https:\u002F\u002Fdevfest.gdglyon.com\u002F",[143],"DevFest Lyon",[39,2942,2943,2944,1482,2948,752],{},"En effet, notre participation s’inscrit dans le cadre de la veille tech proposée, organisée et prise en charge par HoppR. C’est d’ailleurs comme cela que j’avais pu participer au Lyon Craft plus tôt cette année (et écrire deux articles sur ce blog, à retrouver ",[139,2945,2947],{"href":2175,"rel":2946},[143],"ici",[139,2949,2947],{"href":2950,"rel":2951},"https:\u002F\u002Fblog.hoppr.tech\u002Fblogs\u002F2025-05-07-lyon-craft-2025-22",[143],[39,2953,2954],{},"Avant de rentrer dans le vif du sujet, nous sommes tous unanimes chez HoppR pour saluer l’organisation au poil de l’évènement. Nous avons toutes et tous été très bien accueillis, et nous avons passé un moment de qualité avec nombre d’acteurs importants de la scène tech lyonnaise.",[39,2956,2957],{},[45,2958],{"alt":2959,"src":2960},"Photo du programme de la journée, directement dans le badge nominatif délivré à l’accueil de l’évènement","\u002Fcontent-assets\u002F2025-12-02-alors-ctait-comment-ce-premier-devfest-lyon\u002Fassets\u002Fimg1.webp",[39,2962,2963],{},"Nous voici donc arrivés à cette journée de conférences, réparties sur deux tracks, et donc des choix difficiles à faire tant les talks étaient prometteurs.",[39,2965,2966],{},"Beaucoup de thématiques étaient proposées : Data & IA, Frontend, Backend, Software Architecture, Cloud, Infra et DevOps, il y en avait pour tous les goûts. On notera cependant une forte présence de la première thématique : la datascience et les LLM ont la côte !",[39,2968,2969],{},"Je vous propose ici de vous (re)plonger dans celles auxquelles j’ai pu assister en cette froide matinée lyonnaise.",[56,2971,2973],{"id":2972},"keynote-datascience-for-performance","Keynote : Datascience for performance",[39,2975,2976],{},[366,2977,2978],{},"Par Joseph MESTRALLET - Data & AI - 30 minutes",[39,2980,2981],{},"Après la traditionnelle ouverture par le staff devant une salle pleine, avec remerciement des sponsors et rappels de l’organisation, Joseph prend la parole pour une keynote surprise.",[39,2983,2984,2985,2990,2991,2996],{},"Son CV est impressionnant : il accompagne certains des plus grands champions, comme ",[139,2986,2989],{"href":2987,"rel":2988},"https:\u002F\u002Fwww.equipedefrance.com\u002Fathlete\u002Fquentin-fillon-maillet",[143],"Quentin Fillon Maillet"," (5 médailles de biathlon aux JO de Pékin 2022, dont 2 en or) ou ",[139,2992,2995],{"href":2993,"rel":2994},"https:\u002F\u002Ffr.wikipedia.org\u002Fwiki\u002FRuth_Croft",[143],"Ruth Croft"," (vainqueure de l’Ultra-Trail du Mont-Blanc 2025). Et comment fait-il pour aider ces grands champions ? Par la data, par la science, par la datascience !",[39,2998,2999,3000,3005],{},"Joseph nous fait un petit historique des liens entre sport de haut niveau et science, de l’amélioration des photos finish à l’exploit du ",[139,3001,3004],{"href":3002,"rel":3003},"https:\u002F\u002Ffr.wikipedia.org\u002Fwiki\u002FIneos_1:59_Challenge",[143],"marathon en moins de 2h de Kipchoge",". La densification des performances au plus haut niveau a nécessité une nouvelle approche basée sur la science et la data, pour gagner encore les quelques secondes, les quelques centimètres qui font la différence entre un champion olympique et les finalistes qui resteront inconnus du grand public.",[39,3007,3008],{},[45,3009],{"alt":3010,"src":3011},"Ruth Croft à l’arrivée de l’UTMB en 2025","\u002Fcontent-assets\u002F2025-12-02-alors-ctait-comment-ce-premier-devfest-lyon\u002Fassets\u002Fimg2.webp",[39,3013,3014],{},"Mais revenons au travail de Joseph, qui nous parle de quatre niveaux de datas, toujours plus précis:",[64,3016,3017,3020,3023,3030],{},[67,3018,3019],{},"Les données issues de la littérature",[67,3021,3022],{},"Les données personnalisées, via des applications de suivi comme Strava par exemple",[67,3024,251,3025],{},[139,3026,3029],{"href":3027,"rel":3028},"https:\u002F\u002Ffr.wikipedia.org\u002Fwiki\u002FR%C3%A9glage_fin",[143],"fine tuning",[67,3031,3032,3033],{},"Le compute, pour trouver les meilleures conditions pour une course via un ",[366,3034,3035],{},"digital twin",[39,3037,3038,3039,3041],{},"Cette notion de ",[366,3040,3035],{}," revient souvent : il s’agit d’un avatar numérique de l’athlète, que l’on fait participer virtuellement des centaines de fois à la prochaine course, avec des paramètres différents, pour trouver la meilleure stratégie à adopter.",[39,3043,3044],{},"Joseph nous parle également de son quotidien aux côtés des athlètes. Ceux-ci doivent être très impliqués au quotidien pour obtenir de la data de la meilleure qualité possible. A l’inverse, une grande confiance avec lui doit être construite, il s’est donc lui aussi mis à la course à pied de manière intensive pour gagner de la connaissance du terrain et de la légitimité.",[39,3046,3047],{},"Le speaker, visiblement passionné, égraine les anecdotes de ses championnes et champions, et montre à quel point ce travail de performance demande une communication et une proximité forte entre le scientifique et les sportifs.",[56,3049,3051],{"id":3050},"démêler-vrais-produits-et-hallucinations-rex-dun-agent-téléphonique-chercheur-de-chaussettes","Démêler vrais produits et hallucinations, REX d’un agent téléphonique chercheur de chaussettes",[39,3053,3054],{},[366,3055,3056],{},"Par Marie TERRIER - Data & AI - 50 minutes",[39,3058,3059,3060,3065],{},"Marie est CTO d’une ",[139,3061,3064],{"href":3062,"rel":3063},"https:\u002F\u002Fwww.yelda.ai\u002F",[143],"start-up"," proposant un SaaS d’agent vocaux. Cette société a proposé des solutions avant l’avènement des LLMs, et a suivi celui-ci pour présenter des solutions plus performantes. Ainsi, nous faisons un tour de l’historique :",[64,3067,3068,3085,3088],{},[67,3069,3070,3071,3078,3082,3084],{},"2017 : Le Machine Learning existe déjà depuis longtemps, mais les LLMs n’en sont qu’à leurs balbutiements. L’agent vocal est alors basé sur du ",[139,3072,3075],{"href":3073,"rel":3074},"https:\u002F\u002Ffr.wikipedia.org\u002Fwiki\u002FTraitement_automatique_des_langues",[143],[366,3076,3077],{},"natural language processing",[139,3079,3081],{"href":3073,"rel":3080},[143]," (NLP)",[366,3083,569],{}," On essaie de déterminer l’intention du client au bout du fil, et de proposer une réponse pré-généré en fonction. Et si on y parvient pas, alors on demande à l’utilisateur de répéter. Un bon début, mais ce n’est pas très pratique.",[67,3086,3087],{},"2022 : Les LLMs sont utilisés pour ces cas de questions inattendues, et permettent donc de combler le besoin. La fin de l’histoire ?",[67,3089,3090],{},"Fin 2023 : Une nouvelle commande arrive, avec pour problématique la suivante : l’IA peut elle aider les pharmaciens à commander des produits par téléphone ?",[39,3092,3093,3094,3099],{},"A priori, rien de bien sorcier maintenant que nous avons des outils adaptés et efficaces. Mais finalement, c’est la douche froide. Une liste de 40 produits seront proposés, et ceux-ci posent de nombreux problèmes : nous avons ici affaire avec du franglais, sans aucun standard, avec des notions complexes et difficilement transcriptibles comme le ",[139,3095,3098],{"href":3096,"rel":3097},"https:\u002F\u002Ffr.wikipedia.org\u002Fwiki\u002FMillim%C3%A8tre_de_mercure",[143],"mmHg"," par exemple.",[39,3101,3102],{},"Difficile ainsi de trouver la bonne paire de chaussettes ou de bas de contention à commander…",[39,3104,3105],{},[45,3106],{"alt":3107,"src":3108},"Marie nous présente un échantillon de la liste des 40 produits qui seront disponibles à l’achat. On comprend tout de suite la problématique.","\u002Fcontent-assets\u002F2025-12-02-alors-ctait-comment-ce-premier-devfest-lyon\u002Fassets\u002Fimg3.webp",[39,3110,3111],{},"De plus, les pharmaciens ne connaissent pas le nom complet de chaque produit, il est donc nécessaire de poser des questions pour être sûrs de comprendre, tout en étant rapide étant donné que nous sommes au téléphone. Le service existant alors est inadapté, tout est trop long, et le LLM pose trop de questions pour arriver au produit désiré.",[39,3113,3114],{},"La solution passe par des sous-agents, qui permettent d’avoir plus de pertinence dans les questions posées tout en étant plus rapide. C’est donc parfait ! Enfin jusqu’à ce que le catalogue passe de 40 à 20000 références dont certaines en allemand…",[39,3116,3117,3118,3123,3124,3129],{},"Nous sommes en 2023, et les LLMs disposent encore de limites, comme de petites ",[139,3119,3122],{"href":3120,"rel":3121},"https:\u002F\u002Ffr.wikipedia.org\u002Fwiki\u002FFen%C3%AAtre_de_contexte",[143],"fenêtres de contexte"," (8000 tokens puis le modèle “oublie”), une latence trop importante (difficile d’attendre 30s au téléphone) et des ",[139,3125,3128],{"href":3126,"rel":3127},"https:\u002F\u002Ffr.wikipedia.org\u002Fwiki\u002FHallucination_(intelligence_artificielle)",[143],"hallucinations"," fréquentes.",[39,3131,3132],{},"Plusieurs essais sont donc effectués :",[64,3134,3135,3143,3152],{},[67,3136,3137,3142],{},[139,3138,3141],{"href":3139,"rel":3140},"https:\u002F\u002Ffr.wikipedia.org\u002Fwiki\u002FG%C3%A9n%C3%A9ration_%C3%A0_enrichissement_contextuel",[143],"RAG"," et prompt dynamique, un bon début mais toujours trop lent et ne gère que 80 produits max lors des tests",[67,3144,3145,3146,3151],{},"Une ",[139,3147,3150],{"href":3148,"rel":3149},"https:\u002F\u002Ffr.wikipedia.org\u002Fwiki\u002FBase_de_donn%C3%A9es_vectorielle",[143],"base de données vectorielle",", mais beaucoup de produits ont des noms trop proches sémantiquement, et chaque requête donne trop de retours",[67,3153,3154,3159],{},[139,3155,3158],{"href":3156,"rel":3157},"https:\u002F\u002Fwww.algolia.com\u002Ffr",[143],"Algolia",", un moteur de recherche boosté à l’IA, qui donne de bons résultats",[39,3161,3162],{},"La solution se construit alors avec plusieurs briques comme ceci :",[64,3164,3165,3168,3171,3174],{},[67,3166,3167],{},"LLM extracteur, qui fournit un nom de produit partiel",[67,3169,3170],{},"Algolia, permettant d’effectuer la recherche",[67,3172,3173],{},"LLM conversationnel",[67,3175,3176],{},"LLM évaluateur",[39,3178,3179],{},"Ainsi, Marie et son équipe ont pu proposer à leur client un outil répondant pleinement au besoin : celui de permettre à des pharmaciens de commander des produits… dont les fameuses chaussettes du titre !",[56,3181,3183],{"id":3182},"lets-play-factorio","Let’s play Factorio",[39,3185,3186],{},[366,3187,3188],{},"Par Julien WITTOUCK - Software Architecture - 50 minutes",[39,3190,3191,3192,3197],{},"Julien est un grand fan du jeu ",[139,3193,3196],{"href":3194,"rel":3195},"https:\u002F\u002Ffactorio.com\u002F",[143],"Factorio",". Ce jeu bac-à-sable consiste à construire et gérer une usine permettant d’exploiter des ressources afin de s’échapper de la planète. Tout le plaisir du jeu et d’agrandir et d’optimiser chaque extraction et production.",[39,3199,3200],{},"Le jeu permet, à l’instar de Minecraft, une grande liberté dans sa construction, y compris en utilisant de la logique permettant même de coder dans Factorio.",[39,3202,3203],{},"Julien se propose ici de nous illustrer de nombreux concepts que l’on peut trouver dans nos projets professionnels.",[39,3205,3206],{},[45,3207],{"alt":3208,"src":3209},"Le logo du jeu Factorio","\u002Fcontent-assets\u002F2025-12-02-alors-ctait-comment-ce-premier-devfest-lyon\u002Fassets\u002Fimg4.webp",[39,3211,3212],{},"Voici les concepts abordés :",[64,3214,3215,3218,3221],{},[67,3216,3217],{},"Développement (Plat de spaghettis, Architecture en couches, Micro-services..)",[67,3219,3220],{},"Urbanisation (ESB, Scaling Vertical\u002FHorizontal)",[67,3222,3223],{},"Sécurité (Métriques & monitoring, DDoS, Firewalls…)",[39,3225,3226],{},"L’exécution est impressionnante, et tous les concepts sont expliqués de manière visuelle et claire. Parfait pour présenter notre travail de tous les jours à des personnes non-tech ! Et il aura fallu plus de 100h pour préparer ce talk original.",[39,3228,3229,3230,569],{},"Si vous souhaitez vous aussi voir ce qu’a construit Julien, un replay de son ",[139,3231,3234],{"href":3232,"rel":3233},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=I07DxOLw10E",[143],"talk est disponible sur YouTube",[56,3236,3238],{"id":3237},"cétait-dans-quel-épisode-déjà-bref-jai-indexé-une-série-culte","C'était dans quel épisode déjà ? Bref, j'ai indexé une série culte",[39,3240,3241],{},[366,3242,3243],{},"Par Tim Carry - Data & AI - 20 minutes",[39,3245,3246,3247,3252],{},"Tim travaille chez Algolia (oui encore eux). Tim est développeur. Mais surtout, Tim est un très grand fan de la série ",[139,3248,3251],{"href":3249,"rel":3250},"https:\u002F\u002Fwww.imdb.com\u002Ffr\u002Ftitle\u002Ftt2044128\u002F",[143],"Bref"," (note personnelle : il a bien raison !).",[39,3254,3255,3256,569],{},"Il s’est lancé sur un projet personnel qui lui tenait à cœur : un site qui permettrait de trouver l’épisode et l’extrait d’une réplique culte que l’on recherche. Ce sera la genèse de ",[139,3257,3260],{"href":3258,"rel":3259},"https:\u002F\u002Fwww.brefsearch.com\u002F",[143],"brefsearch.com",[39,3262,3263],{},"Les fonctionnalités du site : recherche par ligne de dialogue \u002F pensée, gère les fautes de frappe, aperçu animé de l’extrait au survol, recherche rapide et qui mène directement au moment trouvé.",[39,3265,3266],{},[45,3267],{"alt":3268,"src":3269},"Un exemple : la recherche du terme “Internet” sur brefsearch.com. Le résultat est très rapide et pertinent, et les extraits se jouent au survol.","\u002Fcontent-assets\u002F2025-12-02-alors-ctait-comment-ce-premier-devfest-lyon\u002Fassets\u002Fimg5.webp",[39,3271,3272],{},"Mais comment cela marche-t-il ?",[39,3274,3275,3276,3281,3282,3287],{},"Tout d’abord, il faut une extraction via ",[139,3277,3280],{"href":3278,"rel":3279},"https:\u002F\u002Fgithub.com\u002Fyt-dlp\u002Fyt-dlp",[143],"Yt-dlp",", un outil en lignes de commande qui permet à Tim de récupérer toutes les vidéos de la ",[139,3283,3286],{"href":3284,"rel":3285},"https:\u002F\u002Fwww.youtube.com\u002Fplaylist?list=PLlFikkv2B2ffwYiFQJmcao3RKtw1DFMz5",[143],"playlist Bref sur YouTube",". Il obtient également beaucoup de metadatas très utiles, et également les sous-titres automatiques.",[39,3289,3290,3291,3296,3297,3300],{},"Un problème se pose cependant, dans Bref, ça parle vite. Les sous-titres automatiques sont de qualité médiocre. Pour récupérer du texte exploitable, une extraction audio est alors faite par Yt-dlp puis passés dans ",[139,3292,3295],{"href":3293,"rel":3294},"https:\u002F\u002Fwww.happyscribe.com\u002Ffr",[143],"HappyScribe",", un outil de ",[366,3298,3299],{},"speech-to-text"," IA. C’est bien mieux, et la retouche des dialogues est facilement réalisable (et cela donne une raison de plus de revoir la série !)",[39,3302,3303],{},"Et pour la suite :",[64,3305,3306,3314,3317],{},[67,3307,3308,3313],{},[139,3309,3312],{"href":3310,"rel":3311},"https:\u002F\u002Fwww.ffmpeg.org\u002F",[143],"ffmpeg"," permet de construire les frames des lignes de texte trouvées et les aperçus animés",[67,3315,3316],{},"Algolia permet la recherche",[67,3318,3319,3320,3325,3326,752],{},"Le frontend est hébergé sur Netlify en utilisant le CDN ",[139,3321,3324],{"href":3322,"rel":3323},"https:\u002F\u002Fcloudinary.com\u002F",[143],"Cloudinary",", avec quelques astuces données par Tim (notamment l’utilisation de LQIP (",[366,3327,3328],{},"Low Quality Image Placeholder",[39,3330,3331],{},"Le résultat ?",[39,3333,3334],{},"Un site efficace, qui fait très bien ce qu’il a à faire, et qui impressionne les créateurs de la série eux-mêmes. Je ne sais pas vous, mais moi cela m’a donné envie de revoir Bref… J’en ai mangé tout le week-end suivant !",[56,3336,3338],{"id":3337},"speechless-fin-de-la-matinée","Speechless & fin de la matinée",[39,3340,3341],{},"Après ces présentations toutes plus intéressantes les unes que les autres, il est maintenant temps de récupérer des forces et de débriefer autour d’un grand buffet. Mais l’heure n’est pas qu’à la pause : un speechless live est organisé.",[39,3343,3344],{},"Le principe ? Plusieurs speakeuses et speakers passent devant le public dans un exercice d’improvisation :",[64,3346,3347,3350,3353],{},[67,3348,3349],{},"Un thème tiré au sort",[67,3351,3352],{},"Un sujet choisi par le public",[67,3354,3355],{},"Des slides imposées, qui n’ont aucun sens",[39,3357,3358],{},"C’était en tout cas un plaisir de voir Carmen Piciorus passer un entretien d’embauche pour devenir gardienne de nains de jardin, et Tim Carry nous pitcher son nouveau film “La revanche des cacahuètes”. Un moment amusant qui clôture une matinée aux petits oignons au DevFest Lyon !",[39,3360,3361],{},"Il est temps ensuite d’attaquer un après-midi qui s’avèrera tout aussi riche en enseignements et en échanges de qualité. Vous voulez en savoir plus ?",[39,3363,3364],{},"Guettez ce blog, j’ai entendu dire qu’un second article était en préparation…",{"title":277,"searchDepth":278,"depth":278,"links":3366},[3367,3368,3369,3370,3371],{"id":2972,"depth":278,"text":2973},{"id":3050,"depth":278,"text":3051},{"id":3182,"depth":278,"text":3183},{"id":3237,"depth":278,"text":3238},{"id":3337,"depth":278,"text":3338},"2025-12-02T10:02:07.045Z","Une question que l’on me pose beaucoup en ce début de semaine. En effet, vendredi 28 novembre 2025, nous avons eu la chance, avec plusieurs collègues de HoppR, de faire partie des 250 participants de ",{},"\u002Fblogs\u002F2025-12-02-alors-ctait-comment-ce-premier-devfest-lyon",[3377,3379,3381,3383],{"id":16,"name":17,"image":3378,"linkedin":19,"x":14},"https:\u002F\u002Fprod-files-secure.s3.us-west-2.amazonaws.com\u002F5863e833-64f2-4f13-9f7a-2c92c72b5bbf\u002F53946b9e-3bb9-45bd-a8b4-429c51156179\u002FT04PC176TGB-U05EW3YF61Z-5e129f612df3-512.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ASIAZI2LB466Y7KSVBHC%2F20251202%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20251202T100206Z&X-Amz-Expires=3600&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEEoaCXVzLXdlc3QtMiJHMEUCIQDlPhoO6t9yJQoUoZw%2FLTwJI5MC%2Foym8X1E%2Bg6KJ%2BiFgwIgalDq7jA%2BP85pFMTva72lsMaql%2B9LjtYqLDQH3dgn1M0q%2FwMIExAAGgw2Mzc0MjMxODM4MDUiDNOvwSwCkwWPXxfr2CrcA8769%2FoIXsCvhgFS4Dv2as%2FMadMS7wa5TlBrAZ7cnJv7%2BruPZECofduiEAoBV9ATh622gA0pQ231dPxprnYq6SLobx%2FEXgHUroXG3Hqn%2ByV4BZcmFzpgks2HcaAcuaHoAxQhO%2FJOFl%2FDUsk7u2C%2F03ZHWHalr4QFq8HF2kBEzUf5y9Z7lCS23wHUe9yrlp6dnDaMZv7ctg37nRsZ5cPFFyP%2Bi6DvsRbv4jk7ZR4d1uGo%2FyGh6TxAtZ6bjsPYjOKjZ8cDFQubPif7rBAfK8Gu2lMBuI8Cpd1qw32YzUj4dprm8t1R1SUxs4t9d3SmZ415ZoYHufTwtLVK2sMPIP1y2pVCL5TQxoCQIeZknhH6tf7lN%2BJs7CiIk9lolBqdAUPcwZ3F%2F5Fp4IC63yn6syo0RgnVB8MqfB%2BSgFz%2BdmhDCDcQ%2B54ndcErvY2ae44aPLzBYI6haQ8DpNzmYS6KvY3lcnCqKPTRx2M6%2BTlHpOEeq7CbpF%2FYsMtskDgQyVVqQRGZJJ98f4naA%2F8A41AIqXTDNAK8ifTyOLNOa8pF%2BGwiNsbrbjT%2F4qhB43PK%2FjzXCKtb8czB7vQydYQ0mjlSkxtXFecZ5qOzQIYc%2BJI%2BNhPsJoCLRKw3sr9EwLqY5d6NMJrvuskGOqUBkmJA1855ur4UyoLjGj1WPfKYtvmOStTXYnAk6EEA5p4DMsWp%2FtC79u340iUu7rojNw3oS3XeDN7pdCo%2FZMsMGkduaNvN3RB3crutakC38cpYKKo8%2Fg1VYP9a5GzXDfesiZ4RzRQIMUhkFjYbvPnQiOxmXU%2FxTyvR57RMWG7ApufvcgZqmTQgxzACj5uuwFn8iXfklA7WVG0WqI3CseqOO%2F7ssBqz&X-Amz-Signature=0f9dedf66c69728d181b86c075540248b1da9d52cb45a0d9b21654912eac01eb&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject",{"id":297,"name":298,"image":3380,"linkedin":300,"x":301},"https:\u002F\u002Fprod-files-secure.s3.us-west-2.amazonaws.com\u002F5863e833-64f2-4f13-9f7a-2c92c72b5bbf\u002Fc69d0b59-558d-4e48-879f-bea3fec1fdef\u002FLinkedin_Profile.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ASIAZI2LB466QRTGLWHL%2F20251202%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20251202T100206Z&X-Amz-Expires=3600&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEEkaCXVzLXdlc3QtMiJHMEUCIQDm4%2F0Wbjn1yhS08yXFNJ3YxNfXhqedQ1Ibi1ixjAZwQAIgfOCHgnZEctCvQodF01gw3q43a2oTC9uvnFD5rnVsxQkq%2FwMIEhAAGgw2Mzc0MjMxODM4MDUiDEGDfT3DvHNF4e0%2F1ircA%2BMNtVAYwDGaDc4cTMBzN4fvTjoy2vcW6lqQwt0fckDmqFnu4KACIzQS0IBnqRuEKVrwHDf462itGMt45GGMFgrJ%2FwZjcEXN7mqtsDnO6Okzrr8o2cez6enA7ugl2qQa1K9n00YRnX6S9YbDBhvJk4%2Fob8H1RM5f3g%2FWZ0DE%2Bw4ZQtTkqyzk9cmEFnZj9PgP3P5JJ6%2B1XC6y4hKPodsLFwdB%2FiWv93l%2BIQJvtA7Pmzf7MEsf%2Fjfo9lBKh96v0muhHM%2BOW3HziW%2B2%2F43PzDRq0fLk5PEHcyDk0ir6a0d1SE54JtxwNCQ2r4c9kr2U4QPmDgplyC0rvhlk1MkY8KQW%2BbKHW%2B7bDhIIUZKx6blcBvvnsHF8SxMYxMaKSuOigd8%2FfKtXdYhUIv5kl4a4pjX8%2Btgg4E1FEgXY6OOSuvWlAlKEOS1TLV5Mm9BxvLdM6lCaoPeD%2BwjBRBe3QsEal0tM8%2FoPZzY6qjoajqvXvfL6LVwme461vj52ccT9xnaR2bRChgs%2BU8ucdg320zC3PiGEn55r19XsS2syF4KKPQ2ZqotsOp8ddRvwjdUs2yeIjMi8MfSSklsKTRnqzGITcKfg9UPQ%2FkmP4ZIfFJ9BAEug3TroU6elUhH%2FX99VHkbdMJnQuskGOqUBDw6lrXPYCboisCRNK3rSof7RUE8dcfUUhSnHXeQhFy%2Bxtswny8NKyhzu2f3axx%2B8BAWeqnJLi9juYMoEcyH57Z1OlduE9j4c8XNeb5S5QGuPgL2eFFm2Q6A2%2B1%2Bx%2B%2FWc9u8KRHsPWxmnH%2FDvGCo%2B5NAwT2Z59tSaAy4WLaU69x7pOXJw2GLcmvqj7GY8t1wWC%2BgZmvjgT5pr7JoAqMyCTlqWW0p8&X-Amz-Signature=c4e986c0dead60c4b87052795a3446cf2dc94d9ffdea6f9da0065c64e12d46b3&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject",{"id":10,"name":11,"image":3382,"linkedin":13,"x":14},"https:\u002F\u002Fprod-files-secure.s3.us-west-2.amazonaws.com\u002F5863e833-64f2-4f13-9f7a-2c92c72b5bbf\u002Ff8f82a79-9d41-4302-b1a5-37882985167f\u002Fnicoz_hoppr.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ASIAZI2LB4664RUX22IJ%2F20251202%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20251202T100206Z&X-Amz-Expires=3600&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEEoaCXVzLXdlc3QtMiJIMEYCIQC2nkVt1TGIZcU4J2cW%2BwnOm%2FJYMKPRvr9QoJI0ln9rtAIhAMbp5av2Mva0lC3zvk9RTnOZcfJVPe3y49DPXDto73qKKv8DCBMQABoMNjM3NDIzMTgzODA1IgxWonWoO8Q%2F6Tb5h5wq3APC9x01ntajt7LgXx2%2F6oWSdtYAHetuavmLKHuZBE4qZkUxVZlNf8yev7okfjbHkNTEZGT9ewi71Ep6%2Fj7OgQALj8WCrQ0NStHtOAGlQxjSBldfbVhSqpD%2FcKXOxmZe78PH9Bah3KKZgd%2Fzq1QZxCFIUp9YdjF%2FbL9yDF32Qffz6s4hE2xPX%2BIWXiLgy%2FoAHqyuuF9yLOJGFULNae1K0SpX%2BUPc9bGDrF5eqmdZEagZw3NdTYVzpYNJeJjDdTA2wSH9V3zloZQUllFmA2FapNJ7m43SbD5crno2TvsppP%2FIZwtcKkbyYQ1dIu9yUkQcP0YtKL5HESyEHe2wZ%2Fh8ySECV5JLqJ612Tq%2FjQ4WG5IRA3LnmsLqVwlkmclF9qqhCLkr1raV9rxA49bzA9HTJlJbbx9W2IJ%2B1NF9k%2Ba4%2FgPg%2BBKeMMHbVVxnzJVULzJY3wX5CMRMW%2Bsb5j4idcJB9stl3D4taE42iOp%2FRdjAS0hnlyNzgN9wrV0exYYd5KhJjI4Q%2FULsOOo7qA%2B4HsqdYL36zkfJN6T%2BvjrzVG%2FjxzTNwUrTVKwzOHom2lkGd%2BX8KE1Cq3Xx%2FmRIx1Qdp3ua8xccBoGHYsEItydyKDT%2FvmhS8VqeCS3Mf719fVMjDTCT8LrJBjqkAfQTGT%2Fs9MjD6z%2BwJvaGpYM%2F%2Fj7dc8MdLQBOe1TXVGUugJIFO3k9RJBOnpGAcJ8iORYMTxNiQmlpchi%2FeJ%2FloxMKo9KLYsP51i8IawGdvOfcd7gPws3WPQglaWdiRbMl%2BsIKoY3ltOxuyzwHnFe3odYH9Jk7H15EvVy4X7KZns8dNnyZMF19aidySWh55J%2Byb%2BSI0fDuPaOd75%2BN97EwLFgvXSKB&X-Amz-Signature=10f2e76341a5b95b387a7537285d41aa5d73f789611b6e3f7291d5e48bf31b7f&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject",{"id":303,"name":304,"image":3384,"linkedin":306,"x":14},"https:\u002F\u002Fprod-files-secure.s3.us-west-2.amazonaws.com\u002F5863e833-64f2-4f13-9f7a-2c92c72b5bbf\u002Fc88f5dfa-16db-4e6f-acf1-34dd80ee8766\u002Femma_hoppr.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ASIAZI2LB466Y3X2BERO%2F20251202%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20251202T100206Z&X-Amz-Expires=3600&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEEoaCXVzLXdlc3QtMiJHMEUCIHRw%2FuSZy28SiwpPOCs76n11i%2F1NJe6CZ%2BsRL3AWO%2B2fAiEA4vhBhGzEMfJI4snF1OloxuWCCMbRf1PDwUR5mDJ9XhMq%2FwMIExAAGgw2Mzc0MjMxODM4MDUiDFG70SUdJEiGKkM5bSrcAw9rPmsJGzwqShqiv0%2BeWtdSAO1vDBF77Pr3fo57wA6onGBTD13Mb6SFRhQ9%2Fra6mwI6ViUxzjAKm12NSy5iUxqlpE7OCeRIo9Anm1I3%2BeCrcf9sgDbmjO9%2Fq0CVRI%2FU5IZdPCJ33TU8DMeMHEqWABPbQu2JgRA08oGE7VhNIyxEibEDVBt2efeb9Lo5jxMEz%2FWlDtk3PoQhL%2FLS5Z%2F3VJ46ZG%2FjmqYw0w7eL3RTXvpO3F8ba8FwLP%2BPox3DLRsE%2Bb7RZip03wWeSyGpIyQrk%2Fk%2F5G3jj7VUUplHpHhT5D1Wqy5cXNWNlTczPw5oVN2IUc50L5iFv5LS4fAd8pFkfN62EjccKbWW0KnK539jxa9NktNFfLvcYD%2F6vLcDNwyfQgGP8yceEsSpjcPO0qHzchwhu3DNi7CIZe6US62dUslZUaUrSBMOsmUn%2B9ddPbtRSMqOY%2Bm%2FtLRJg%2FViOt1WXTF3IbqHZ4NJdCtZACK05FQhMzGqqH2dD2ItGI4Omx34fVPkSaT9o4dYKTix8VDrwD5EhMNmYrjOp7D%2BV8xhKoDoiW8JlW1VuSG6lVBEwLYkuwaHxUACflNG8bSl2YauKHvUTet%2FfaANzQSi%2F9UCf9y%2FPrn5IcGO2wdGGRxoMO%2FvuskGOqUBkceK1DQegSzZ4IUtEx%2B4PllbY2t6tdvBH15yyh4%2B%2FGCAcS9vea00xBAgUT4sC5YvyzMBR5INtwcv8At2vEauvXRTSiRU%2B5v13rmi1RpZpgRNRpspuzp4m9IRPeludo%2B%2FPgFsi%2FJ5dUfWIr1kzF%2F6ElvWLADEI9Chpz%2BvdUDbn%2F6ysbTgkF%2F8X4vIJraEEIdfrTio7kDfiOb%2BelfK7YochB5tFNJG&X-Amz-Signature=48a8f72788c038f6fc6755f0a2dd5a263a644eb8957eb8922c1068162f4056db&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject",{"title":2927,"description":3373},"blogs\u002F2025-12-02-alors-ctait-comment-ce-premier-devfest-lyon\u002Findex",[540,3388,311,2160,310],"ia","sCW66ulOtCP9_c_OAQWwJLKRWm825rxal5BWlrgds-A",{"id":3391,"title":3392,"alt":3393,"authors":3394,"body":3401,"date":3704,"description":3705,"extension":290,"image":291,"meta":3706,"navigation":293,"ogImage":291,"path":3707,"published":293,"reviewers":3708,"seo":3717,"stem":3718,"tags":3719,"__hash__":3722},"blogs\u002Fblogs\u002F2025-12-23-alors-ctait-comment-ce-premier-devfest-lyon-la-suite\u002Findex.md","Alors ? C’était comment ce premier DevFest Lyon ? (la suite)","L’équipe HoppR au Devfest lyon",[3395,3396],{"id":297,"name":298,"image":2758,"linkedin":300,"x":301},{"id":3397,"name":3398,"image":3399,"linkedin":3400,"x":14},"2c0f4462-cd38-80e0-8142-c3de50d521c1","Anaïs Cousin",".\u002Fassets\u002Fauthor-anas-cousin.webp","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fana%C3%AFscousin\u002F",{"type":31,"value":3402,"toc":3692},[3403,3416,3422,3429,3435,3440,3445,3450,3456,3471,3478,3495,3501,3511,3514,3534,3537,3540,3543,3547,3554,3560,3563,3566,3578,3582,3585,3588,3598,3602,3605,3608,3612,3625,3628,3634,3640,3643,3650,3657,3670,3673,3676,3687],[39,3404,3405,3406,3411,3412,3415],{},"Pour faire suite à ",[139,3407,3410],{"href":3408,"rel":3409},"https:\u002F\u002Fblog.hoppr.tech\u002Fblogs\u002F2025-12-02-alors-ctait-comment-ce-premier-devfest-lyon",[143],"l’article de Michaël"," sur la très bonne première édition du ",[139,3413,2940],{"href":2938,"rel":3414},[143],", nous vous présentons deux autres talks auxquels nous avons pu assister et qui nous ont marqué.",[56,3417,3419],{"id":3418},"chaos-monkey-et-si-netflix-révolutionnait-aussi-la-résilience-de-vos-applications",[356,3420,3421],{},"Chaos Monkey : et si Netflix révolutionnait aussi la résilience de vos applications ?",[39,3423,3424],{},[366,3425,3426],{},[356,3427,3428],{},"Écrit par Anaïs",[39,3430,3431],{},[45,3432],{"alt":3433,"src":3434},"Illustration style synthwave aux néons violets montrant un singe holographique débranchant un câble serveur, ouvrant une faille numérique glitchée. Au premier plan, des ingénieurs surveillent calmement la situation, protégés par un bouclier énergétique bleu. Titre : CHAOS MONKEY.","\u002Fcontent-assets\u002F2025-12-23-alors-ctait-comment-ce-premier-devfest-lyon-la-suite\u002Fassets\u002Fimg1.webp",[39,3436,3437],{},[366,3438,3439],{},"En ce début décembre 2025, impossible d’y échapper : la sortie de la saison 5 de Stranger Things fait vibrer les réseaux.",[39,3441,3442],{},[366,3443,3444],{},"Mais saviez-vous que Netflix, en plus de captiver des millions de spectateurs, a aussi révolutionné la façon dont on teste la robustesse des applications ?",[39,3446,3447],{},[366,3448,3449],{},"Rencontre avec le Chaos Monkey, un outil né dans les coulisses du géant du streaming, et qui pourrait bien sauver votre infrastructure du prochain “Démogorgon” technologique…",[101,3451,3453],{"id":3452},"quand-netflix-inspire-la-résilience-it",[356,3454,3455],{},"Quand Netflix inspire la résilience IT",[39,3457,3458,679,3461,679,3468],{},[356,3459,3460],{},"Lors du DevFest Lyon 2025,",[139,3462,3465],{"href":3463,"rel":3464},"https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Ferwan-le-tutour\u002F",[143],[356,3466,3467],{},"Erwan Le Tutour",[356,3469,3470],{},"a présenté le Chaos Engineering, une pratique inspirée de Netflix.",[39,3472,3473,3474,3477],{},"L’idée ? ",[356,3475,3476],{},"Provoquer des pannes contrôlées"," (coupures réseau, latences, arrêts de serveurs) pour détecter les faiblesses d’un système avant qu’elles ne deviennent critiques.",[39,3479,3480,3481,3484,3485,3488,3489,3494],{},"À l’origine, Netflix utilisait le ",[356,3482,3483],{},"Chaos Monkey",", un outil interne pour tester la résilience de son infrastructure de production face à des millions de requêtes. Aujourd’hui, des solutions comme le ",[356,3486,3487],{},"Chaos Monkey for Spring Boot"," permettent à tous les développeurs d’intégrer cette approche, en simulant des scénarios chaotiques pour renforcer leurs applications. (",[139,3490,3493],{"href":3491,"rel":3492},"https:\u002F\u002Fjavaoperatorsdk.io\u002Fdocs\u002F",[143],"Cliquez ici",", pour les curieux!)",[101,3496,3498],{"id":3497},"pourquoi-adopter-le-chaos-engineering",[356,3499,3500],{},"Pourquoi adopter le Chaos Engineering ?",[39,3502,3503,3504,3507,3508,569],{},"Les systèmes modernes sont de plus en plus complexes, distribués et interconnectés. Dans ce contexte, la question n’est plus ",[366,3505,3506],{},"si"," une panne va survenir, mais ",[366,3509,3510],{},"quand",[39,3512,3513],{},"Le Chaos Engineering permet de :",[64,3515,3516,3522,3528],{},[67,3517,3518,3521],{},[356,3519,3520],{},"Détecter les points de fragilité"," avant qu’ils n’impactent les utilisateurs.",[67,3523,3524,3527],{},[356,3525,3526],{},"Améliorer la réactivité"," des équipes en situation de crise.",[67,3529,3530,3533],{},[356,3531,3532],{},"Renforcer la confiance"," dans l’infrastructure, même face à l’inattendu.",[39,3535,3536],{},"Malheureusement personne n’est à l’abri, comme l’attestent les événements récents (AWS\u002FCloudfare)",[39,3538,3539],{},"Alors, prêt à lâcher un Chaos Monkey dans votre environnement pour en tester la solidité ? 🐒💥",[39,3541,3542],{},"Pour conclure cet article : bien moins technique que l’excellent article de Michael (et que celui qui arrive juste après !), ce retour reflète surtout mon regard côté business. Même si je ne suis pas développeuse, c’est justement ce genre de conférences qui me permet de mieux comprendre les enjeux tech du quotidien de mes collègues.",[56,3544,3546],{"id":3545},"développer-un-opérateur-kubernetes-en-java-challenge-accepted","Développer un opérateur Kubernetes en Java : Challenge Accepted !",[39,3548,3549],{},[366,3550,3551],{},[356,3552,3553],{},"Écrit par Maxime",[39,3555,3556],{},[45,3557],{"alt":3558,"src":3559},"Illustration isométrique style tech-fantasy. Une développeuse injecte une énergie lumineuse orange, générée par du code Java et Quarkus, dans une machine Kubernetes géante en forme de gouvernail qui organise des conteneurs logiciels. Au sol, un panneau 'GO LANGUAGE ONLY ZONE' est brisé. Le titre en haut indique : 'JAVA OPERATOR: CHALLENGE ACCEPTED","\u002Fcontent-assets\u002F2025-12-23-alors-ctait-comment-ce-premier-devfest-lyon-la-suite\u002Fassets\u002Fimg2.webp",[39,3561,3562],{},"Si vous travaillez dans l'écosystème Cloud Native, vous avez forcément ressenti cette pression implicite : pour faire du Kubernetes sérieusement, il faut faire du Go. C'est le langage de l'orchestrateur, c'est le langage de la plupart des outils, et par extension, on finit par croire que c'est le seul choix viable pour étendre son cluster.",[39,3564,3565],{},"J'ai assisté à une conférence qui tord le cou à cette idée reçue, et je pense qu'elle mérite votre attention si votre équipe est majoritairement composée de développeurs Java.",[39,3567,3568,3569,931,3572,3577],{},"Dans son talk ",[356,3570,3571],{},"\"Développer un opérateur Kubernetes en Java, challenge accepted !\"",[139,3573,3576],{"href":3574,"rel":3575},"https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fphilippartstephane\u002F?originalSubdomain=fr",[143],"Stéphane Phillipart"," s'attaque à un sujet souvent intimidant : les Opérateurs.",[101,3579,3581],{"id":3580},"pourquoi-ce-talk-est-important","Pourquoi ce talk est important",[39,3583,3584],{},"Pour rappel, un opérateur est ce qui permet d'automatiser la gestion d'applications complexes dans Kubernetes. Jusqu'à récemment, la documentation et les exemples étaient quasi exclusivement en Go. Pour une équipe Java, cela voulait dire : apprendre un nouveau langage et une nouvelle toolchain juste pour écrire de l'outillage.",[39,3586,3587],{},"Ce que Stéphane démontre brillamment, c'est que cette barrière n'a plus lieu d'être.",[39,3589,3590,3591,3597],{},"Le cœur de sa présentation repose sur le ",[139,3592,3594],{"href":3491,"rel":3593},[143],[356,3595,3596],{},"Java Operator SDK",". Loin d'être une solution de bricolage, il montre que l'outillage est désormais mature. Ce que j'ai particulièrement apprécié dans sa démarche, c'est le pragmatisme. Il ne s'agit pas de faire du Java pour le plaisir de faire du Java, mais de capitaliser sur les compétences existantes des équipes. Pourquoi forcer des experts JVM à écrire du Go médiocre alors qu'ils pourraient écrire du code Java robuste et testable ?",[101,3599,3601],{"id":3600},"de-la-théorie-au-code","De la théorie au code",[39,3603,3604],{},"La conférence n'est pas qu'une suite de slides théoriques. On passe rapidement au concret avec du live coding. On y voit la création d'un opérateur, la gestion de la boucle de réconciliation (le cœur du réacteur de Kubernetes) et le déploiement.",[39,3606,3607],{},"Il aborde aussi implicitement un point qui fait souvent peur aux Ops : la lourdeur du Java. En combinant le SDK avec des frameworks modernes comme Quarkus (souvent utilisé pour la compilation native), on obtient des opérateurs légers, rapides au démarrage et peu gourmands en mémoire. L'argument de la performance du Go ne tient plus vraiment la route face au Java moderne.",[101,3609,3611],{"id":3610},"mon-avis","Mon avis",[39,3613,3614,3615,3620,3624],{},"Si vous êtes un développeur ou développeuse Java et que vous regardez Kubernetes comme une boîte noire réservée aux Ops ou aux développeurs Go, prenez une heure pour regarder ce talk disponible sur ",[139,3616,3619],{"href":3617,"rel":3618},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=1GUvH3zDsDA&pp=ygVDRMOpdmVsb3BwZXIgdW4gb3DDqXJhdGV1ciBLdWJlcm5ldGVzIGVuIEphdmEgOiBDaGFsbGVuZ2UgQWNjZXB0ZWQgIQ%3D%3D",[143],"Y",[139,3621,3623],{"href":3617,"rel":3622},[143],"ouTube"," via d’autres conférences.",[39,3626,3627],{},"Il dédramatise complètement le développement système sur Kubernetes. C'est une excellente ressource pour convaincre votre CTO ou votre Lead Tech qu'il est possible d'industrialiser vos déploiements sans changer toute votre stack technique.",[56,3629,3631],{"id":3630},"en-conclusion-linnovation-se-partage-surtout-au-devfest-lyon",[356,3632,3633],{},"En conclusion : l’innovation se partage, surtout au DevFest Lyon !",[39,3635,3636,3637],{},"Notre participation à cette première édition du DevFest Lyon a été une véritable source d’inspiration. Entre le Chaos Engineering, qui nous rappelle que la résilience se construit en osant tester nos limites, et la démonstration que Java a toute sa place dans l’écosystème Kubernetes, ces conférences ont confirmé une chose : ",[356,3638,3639],{},"l’innovation naît souvent là où on ne l’attend pas.",[39,3641,3642],{},"Chez HoppR, nous sommes convaincus que partager ces retours d’expérience, ces outils et ces bonnes pratiques est essentiel pour faire progresser toute la communauté tech.  C’est pourquoi nous avons mis en place une véritable culture de l'apprentissage continu.",[39,3644,3645,3646,3649],{},"En interne, cela se traduit par nos ",[356,3647,3648],{},"Maker Days"," : des journées dédiées où nos consultant.es sortent de la production pour tester de nouvelles technos (comme ce fameux Chaos Monkey !), prototyper ou approfondir des concepts complexes. C'est notre laboratoire R&D, et c'est ce qui permet à nos équipes de rester à la pointe.",[39,3651,3652,3653,3656],{},"Mais nous sommes convaincus que le savoir ne doit pas rester cloisonné. Nous avons donc transformé ces retours d’expérience et cette expertise terrain en un ",[356,3654,3655],{},"catalogue de formations concret et pragmatique",". Que vous soyez une entreprise cherchant à faire monter vos équipes en compétences ou un développeur avide d'apprendre, nous partageons ce que nous maîtrisons au quotidien.",[39,3658,3659,3662,3663],{},[356,3660,3661],{},"➡️"," ",[139,3664,3667],{"href":3665,"rel":3666},"https:\u002F\u002Fwww.hoppr.tech\u002Fformations-hoppr",[143],[356,3668,3669],{},"Découvrez nos programmes de formation HoppR",[39,3671,3672],{},"Alors, prêt à libérer votre propre Chaos Monkey ou à développer votre premier opérateur Kubernetes en Java ?",[39,3674,3675],{},"N’hésitez pas à nous faire part de vos retours, de vos questions, ou à nous rejoindre pour en discuter lors de nos prochains événements !",[39,3677,3678,679,3681,679,3684],{},[366,3679,3680],{},"Un grand merci à l’équipe du DevFest Lyon pour l’organisation de cet événement, et à tous",[366,3682,3683],{},"les speakeuses",[366,3685,3686],{},"et speakers pour leurs présentations inspirantes.",[39,3688,3689],{},[366,3690,3691],{},"À l’année prochaine pour de nouvelles découvertes !",{"title":277,"searchDepth":278,"depth":278,"links":3693},[3694,3698,3703],{"id":3418,"depth":278,"text":3421,"children":3695},[3696,3697],{"id":3452,"depth":284,"text":3455},{"id":3497,"depth":284,"text":3500},{"id":3545,"depth":278,"text":3546,"children":3699},[3700,3701,3702],{"id":3580,"depth":284,"text":3581},{"id":3600,"depth":284,"text":3601},{"id":3610,"depth":284,"text":3611},{"id":3630,"depth":278,"text":3633},"2025-12-23T16:39:49.164Z","Pour faire suite à [l’article de Michaël](https:\u002F\u002Fblog.hoppr.tech\u002Fblogs\u002F2025-12-02-alors-ctait-comment-ce-premier-devfest-lyon) sur la très bonne première édition du [DevFest Lyon](https:\u002F\u002Fdevfest.gdglyon.com\u002F)",{},"\u002Fblogs\u002F2025-12-23-alors-ctait-comment-ce-premier-devfest-lyon-la-suite",[3709,3711,3713,3715],{"id":16,"name":17,"image":3710,"linkedin":19,"x":14},"https:\u002F\u002Fprod-files-secure.s3.us-west-2.amazonaws.com\u002F5863e833-64f2-4f13-9f7a-2c92c72b5bbf\u002F53946b9e-3bb9-45bd-a8b4-429c51156179\u002FT04PC176TGB-U05EW3YF61Z-5e129f612df3-512.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ASIAZI2LB466W4AXLVRW%2F20251223%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20251223T163948Z&X-Amz-Expires=3600&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEEYaCXVzLXdlc3QtMiJIMEYCIQDPnpGUn%2BqCpnFIqIGXJYm%2FKun2CwO%2FbkU43MWV3kn4ugIhAKSC4Vj6uKRG%2FQsbi35ldAUoJu3J%2BfVrpYehzOrAiUNdKv8DCA8QABoMNjM3NDIzMTgzODA1IgxYOnhHP8q1QNPcr9kq3AMQKG7RZkAyakc0hW8rdOKKYFwnri04Ycy4M2kPAP1zxZ4OAygqjWbe5fUytfCr%2BvqFCtuuoAh%2FbrIdduFm7FspNBpBTD%2BtJ1U%2BsU0c4maBvii7Kazur7y0ZrkYDtKZBHlzsP6KVQEJkFjZM8MPFQ0IxZl8u6eXEX1ZYAzbb91vpaJyFhh8sWhIrxK1QYnSFhNdlyLgl5sc7vN1zipqTj%2BFModWCOhTUuK5lHOKbyHB4ErulD8RKgspA%2BHz1b1ePM4vmEDt5EzjW%2BbY%2FOqQJp%2BiT9gERS0fRhn%2BSmYSZcUyZw8FzLUU9AuZTL%2BxABNx4A0sPjzHfHEX08Ck66%2F0B%2BlE1Sj1qoJlCM2mQXR9RU1eK1BnHDGMYy41HASbHKLetFPo7zXFk2AW6RAgAiXbvvoAl8NKrqJ4tscKivfT8nremJsHxemWNDgZaPf2Holdx8LHwV7CqfZ9j%2FLTf4q2vsbSqKN5ctxe9evJFapDOjU%2B6fdlyLXYrd9Cgu0I7qTXQID2Wk51QMsMwdAkPkS2QTf2xYgjfWgfsbXtv5NBJIycrJL4rkwNRs03UUD3XgWyEQQ67F6fiTsm3GaXnKaCMrnXZCiwd6eXFE%2F9TTJqMvQRjcNh7TkiqdIMjHa%2FXDC8vqrKBjqkASyWZD3FD4b6CgVchADndQ37fY59BuPUOM8%2F83rNgyLCA%2FyItYB9bNyO%2FbGgmW6WbFlgmFdTlSAzP8t6u%2FDNfHvn2PTWp7FSjnRRK6FvFKQSQvIk%2B1EzEkJEYDg0%2BzmmUrSZsXbpKC77QuqQ0klW5aDR6GIu9P8Fti6rjXrRPRCeWDn9C4fz24VI%2FjrKLMnlgdyipLMinNsSvlyrdGnWWDN4K%2Fmz&X-Amz-Signature=4e276c2fda930baf8991e7206d80c6d9d9dcab8f47c8bfc8fbb35bd93848d9b0&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject",{"id":303,"name":304,"image":3712,"linkedin":306,"x":14},"https:\u002F\u002Fprod-files-secure.s3.us-west-2.amazonaws.com\u002F5863e833-64f2-4f13-9f7a-2c92c72b5bbf\u002Fc88f5dfa-16db-4e6f-acf1-34dd80ee8766\u002Femma_hoppr.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ASIAZI2LB4666XAIVRTN%2F20251223%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20251223T163948Z&X-Amz-Expires=3600&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEEYaCXVzLXdlc3QtMiJGMEQCIEnuOAJUf2Rshe07mNIw0LrH9EpjYKRzEhhhnrv%2FiJL4AiBlBMKpY%2BOuKCkAtBj%2BuA5fIcjRdGBpguWngb9qHAq69ir%2FAwgPEAAaDDYzNzQyMzE4MzgwNSIM5Sf9fQcuCCRMo963KtwDVI0FP8okepoMVcy8fPdIC1JVqsKcYxvSllUIDvz3bVWZyIW0CCsx59p7dp3inN6GnbfUaJNtn9BElzJK9dBwcKzFutAx6xV8tE4s25a0VG1INlhJzwOGq%2FtE%2BGc3zl8WGZe2Mf4erdDFjsM20auMlhExfMB3fNlppYb%2Bs15wgKr%2BNmZzRN55ci65DlKR6OU6b%2F9n0NoODE5pGo1clLXMsbss5U51C1ROHUVJsZR6ZwY1Hqqwrq1Y722xXQzAetGDsdXGoFpiwmcWIJlEAldVpiCWgArYhi54vWNWjQVOgNjVsHl2gSl4dBoju%2FkNl3ijqRJlat0d3D1tVkAdsb2iRZiElHexwcVQlpx1qHeIXq0Rd5j0DQuvyAxj1ktuh92xWZNcM91W%2BfP2Gk3qNR1d0Olnw4i7R0rKQvEuDlDuWG6578afo7v1s125krKupL6nTUetdKU%2Fz3QXrmlrj7SZEXPhqZ%2FmvqLO7HFOOaFiFuqirixmhAW6Ha2pa5D5VHZKHsPVFT91xXNElJpOADSpSAhvZvcLjE94rK%2FF2NyvjxGS8lDyV7rS39WJ8VSq1A04RzYphSEYF3L21W2tBaGc5VIhyLpBB3V5YtrIHO6C3UwfwDPGb3MviRw8JxYwwb6qygY6pgG2MUSsukjvYCzXqgwgHF5KhJIkGs28W7phlzQm0icRuywpO2S%2BzHPuOOV9WIrq0hlzmQP5RkkImvr2533TECOiLPDi5t7k0SsXZ8q48g%2ByWx36uxniARZ7uhReOOjy1vYTRG6PhGEAffVnypy0YyJCo5zb8b0%2F%2F4fSj1OY3fvqxDa14rEJpgRHpvLQsMYtOA1JVm8RSta8mAivuf%2FFrabCN%2FfL4q%2FA&X-Amz-Signature=4a14b9fbd70617e2be2d0878b3392f914e0c912c875fe99c8fb653d2e132cb87&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject",{"id":1737,"name":1738,"image":3714,"linkedin":1740,"x":14},"https:\u002F\u002Fprod-files-secure.s3.us-west-2.amazonaws.com\u002F5863e833-64f2-4f13-9f7a-2c92c72b5bbf\u002F82ebd0fe-de28-43f3-ab7b-0431af41baad\u002FPhoto_HoppR.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ASIAZI2LB466TGENWUUW%2F20251223%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20251223T163949Z&X-Amz-Expires=3600&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEEYaCXVzLXdlc3QtMiJHMEUCIQDdbYlpqTUS3MHKXr294zzRuZ5yQznmEEbKsUbTKHxKwwIgbaNEO5L%2BsbyYJWP%2BXSsrT6p%2BQ8JHG5pVRE67vmA2SQQq%2FwMIDxAAGgw2Mzc0MjMxODM4MDUiDHyZQznaVyJGBMnPMSrcA0AqnPpDZeHzIFm5ctGDLP6MMk9oxka5WD9HcgCfxZhpbpJZbrvuspt8g8kWPyEBYVMJvTO7SMJvEQysNwGHm%2BlX%2FEgaKTzcPATTKFxtom8WP4YyTOHAhXYmV1PU43kUU32KZXQfDXeglBzNR3Nn7xxx0ewP82r02pcSdwkyQamIQ%2FfcqRDZ2nVtKi1Ghl%2B3dJ07BjYVe3frTc%2FxwqQxG6w%2FTisKdoxeAkplW8GRC8l6K6nmLOjpD%2F4dDthsFKvqOXI6z8NO3AwEjYO2wf6DoJD28PLSPtgaPDCSCdLULjlmWZMMeEXLYkSx5I6YCRXvl30uzPsia2pxCwag352B8aTcMNE3cN2nqmTmBTXJvYkau%2Fp0PBBObSgbHWqB3rlxe0VV%2Bf5lrWQiILnkMviSOf1b00LcSqoX8VSwYJKJWikH3Awrr5FPMZnOq%2F%2Bqyxm58Ibxb83hZT6JKIl8rbSBRfN%2F7K01krEffQv1xu5DhA91VlC15uwvFFdxGIKAVi%2Bt5sZh%2BXoIhQdKCX0U1fQ%2BL9q6%2BRfzsT4eERWe655piTwoSQQYWMNoeJxImF3zMS1b4D%2FUbQLUtxR7w%2Bomf1r4X76m%2FB3VM6UAgJl76pfHcDEuVCgUDx2GyNC2uh4TMMK%2BqsoGOqUBRe1GhYU7oRbpaObDN69zVFXh9zQjmAm0804TLzpDIlGwFgPAydmy7uAcmDHynkOrYrpo0Y5ejB%2BkSddGXtGWMX0Cj40u7CcS6D37%2FYAMOIX0VfQOOPPnVnrkS%2FgTKzvD%2BaL4ZUXQ3ePH9ueM4VgxnVBwkz6aglCUz4u11Pw6SAUQIz69Wb2I5OqdCd1JZZADIlBO8y1jb8TYV8HqLOVgk1%2F2HZR9&X-Amz-Signature=d2dfeaa7ca1b4ff8a41b6ed6783f396a5513ed9173bf5e9026a3a283f6ab1e2c&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject",{"id":10,"name":11,"image":3716,"linkedin":13,"x":14},"https:\u002F\u002Fprod-files-secure.s3.us-west-2.amazonaws.com\u002F5863e833-64f2-4f13-9f7a-2c92c72b5bbf\u002Ff8f82a79-9d41-4302-b1a5-37882985167f\u002Fnicoz_hoppr.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ASIAZI2LB466QHSO5NSN%2F20251223%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20251223T163948Z&X-Amz-Expires=3600&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEEYaCXVzLXdlc3QtMiJIMEYCIQDZnNiqwJP6%2BrX28Xzb2IJ0%2BVzaXNFUsPrqaZ967PZU%2FAIhANKWFV8toBQHdFYmnBVpBY4jP3vcGA5lFDozIUegTgfPKv8DCA8QABoMNjM3NDIzMTgzODA1IgzOsYpSA9QgtStzyKwq3AO0cbAzyrq%2FgkP18Y5TYaN1DJ1%2BFkrZMK1xm%2FASjOCnPbi1LJ%2FH6%2FxIKnUv%2FvjGKTd%2F1j17x7%2FA1XLAFyuPUd6GAdq%2Bm8vIyOTBiFyMuiIkxu4aqACChZmQDqI2ZuR1t1IokTUq2gTo5%2BALvQREnMT%2BDPTHFQkOTrsUSiyoZr6Otv5VQQL6H8eRHzZrOA5XvB75Gm9rCI1HZiig7AhHrsQ%2F%2FLBcVEPKvj7l9Vy%2FlGQ3iby4BcvzTHPD6cdLiqpyz3951P9JJsB%2FLY7QGu8CNaVtajNVRG%2BuVBKGG9DQNmASGjQ1RyizEFZtq%2F2s%2FtaqWBbGnjep9ApfglIkqyP2NwFn5zsKZVMpuC7N586lYjrQxgXCXjZt5%2BMU2SAgLyJL7zK9XD75ylVTkjJw1YBcnKjj%2BFS3iW6NpKcS0b62gjVjxQ1XFFmo5B%2BWnQCpiHa5Yn3aXFLk%2BZd4mNEB6X28YtYAxOzI1KTFMKCAENTvevFyW3xet5JSqFD%2B1eOVaJSSZray6a4jyo7DxGJgM4s6qtWYzZ%2F1%2BIUMaaE1nHGcX%2Bu5e7cdPTn39ofxY4xbtB9dzP7dTbViLUzgD2gEF0QGHCuIWexj4OfzvdoL0sbh5TyJKy2B8GLvb1C1ujt4CTCtvqrKBjqkASM8jkG%2BtIFYSWk8zpbN06aWBful2xBsKkm%2F5SMLnIs%2FScsfD5Ruqrq1%2F8DigO%2FRod2MlWhKFp9DI%2B8ea9E9HltSm6z6zC4bAQei6ZShQ8hodi3Ymx8vAWaBRznJC%2FxYlBp%2FL5wamxFNqlynpFieFzeDeqsSVdvVc7Ws7GIWk7tkT1fF0auFTQpIXwQhrS1qo7N7msdyjg1APpk%2Bt4ahP60bBKN3&X-Amz-Signature=d020731e6a1b744c7006df2f027f9ab49a03c5bb0efdbb6d5d8760772cb23471&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject",{"title":3392,"description":3705},"blogs\u002F2025-12-23-alors-ctait-comment-ce-premier-devfest-lyon-la-suite\u002Findex",[3720,312,311,2160,3721,2922,310],"kubernetes","java","3nvslMeLl3YYAQrpXzL9yuAthKCweU7Nz46T0ykRK1M",1777898852509]