<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Benjamin Legrand</title>
    <description>The latest articles on DEV Community by Benjamin Legrand (@benjilegnard).</description>
    <link>https://dev.to/benjilegnard</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2160786%2Fd13ea9bf-875c-4a79-8f4c-80df0f30b968.png</url>
      <title>DEV Community: Benjamin Legrand</title>
      <link>https://dev.to/benjilegnard</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/benjilegnard"/>
    <language>en</language>
    <item>
      <title>NG BAGUETTE CONF 2025 : un compte-rendu</title>
      <dc:creator>Benjamin Legrand</dc:creator>
      <pubDate>Tue, 27 May 2025 14:34:00 +0000</pubDate>
      <link>https://dev.to/onepoint/ng-baguette-conf-2025-un-compte-rendu-3akc</link>
      <guid>https://dev.to/onepoint/ng-baguette-conf-2025-un-compte-rendu-3akc</guid>
      <description>&lt;p&gt;Le 24 mai 2025, &lt;a href="https://www.groupeonepoint.com" rel="noopener noreferrer"&gt;onepoint&lt;/a&gt; hébergeait la première conférence 100% &lt;a href="https://angular.dev" rel="noopener noreferrer"&gt;Angular&lt;/a&gt; de France.&lt;/p&gt;

&lt;p&gt;La première dans tous les sens du terme, car autant nos voisins européens ont déjà leur conférence Angular nationale (les allemands ont la &lt;a href="https://ng-de.org/" rel="noopener noreferrer"&gt;NG-DE&lt;/a&gt;, les belges ont la &lt;a href="https://ng-be.org/" rel="noopener noreferrer"&gt;NG-BE&lt;/a&gt;, les polonais ont &lt;a href="https://ng-poland.pl/" rel="noopener noreferrer"&gt;ngPoland&lt;/a&gt;, les italiens sont gâtés avec &lt;a href="https://ngrome.io/" rel="noopener noreferrer"&gt;ngRome&lt;/a&gt; et &lt;a href="https://ng-venice.org/" rel="noopener noreferrer"&gt;ng-venice&lt;/a&gt;, et j'en passe...). &lt;/p&gt;

&lt;p&gt;Par contre, en France, il n'existait pas ce genre d'évènement spécialisé en Angular, jusqu'à maintenant, c'était donc la grande première de la &lt;a href="https://ngbaguette.angulardevs.fr/en/" rel="noopener noreferrer"&gt;ng baguette conf&lt;/a&gt; 🥖&lt;/p&gt;

&lt;p&gt;Organisée par l'équipe d'&lt;a href="https://www.youtube.com/@AngularDevsFrance" rel="noopener noreferrer"&gt;@Angular Devs France&lt;/a&gt;, cette journée de conférences fut l'occasion d'accueillir quelques pointures internationales de la communauté Angular, mais également des orateurs et oratrices français moins connues.&lt;/p&gt;

&lt;h2&gt;
  
  
  Les talks
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Building Angular - The Perks of working a monorepo.
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Speaker: Matthieu Riegler&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Déjà actif au sein de l'écosystème Angular, Matthieu travaille désormais à 100% pour la core team Angular, il nous a présenté dans quel contexte était développé Angular chez Google.&lt;/p&gt;

&lt;p&gt;Quelques chiffres impressionnants sur leur mono-repo principal, google3 : 3 MILLIARDS de lignes de code, plus de 4000 applications Angular.&lt;/p&gt;

&lt;p&gt;Chose assez incroyable, il n'y a pas de versions différentes d'Angular au sein du monorepo, toutes les applications utilisent la dernière version du framework. La core-team est donc extrêmement responsabilisée en cas de changements cassant, et il ne faut que quelques heures au maximum pour que les problèmes soient remontés. Un excellent exemple de &lt;a href="https://en.wikipedia.org/wiki/Eating_your_own_dog_food" rel="noopener noreferrer"&gt;dog-fooding&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;On comprend mieux pourquoi certains changements en apparence simples (tels qu'arrêter d'utilise &lt;code&gt;any&lt;/code&gt; dans certains types génériques), sont compliqués à faire passer, quand ils impliquent des changements manuels dans plus 4000 applications : c'est tout de suite un autre coût. Et pourquoi avec Angular la &lt;strong&gt;montée de version&lt;/strong&gt; est complétement décorrélée de la &lt;strong&gt;migration&lt;/strong&gt; (le fait d'utiliser les dernières fonctionnalités), et comment cette dernière est souvent automatisée grâce aux &lt;a href="https://angular.dev/tools/cli/schematics" rel="noopener noreferrer"&gt;&lt;strong&gt;schematics&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Quelques nouveautés d'Angular 20 en guise de bonus / conclusion, notamment la "piste spéciale" dans les outils d'inspection de performance de Chrome...&lt;/p&gt;

&lt;h3&gt;
  
  
  Next-Level Angular SSR: Exploring Hydration Enhancements
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Speaker: Soumaya Erradi&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Des débuts d'Angular Universal, jusqu'à l'intégration récente dans son écosystème avec &lt;code&gt;@angular/ssr&lt;/code&gt; en tant que module principal. Soumaya nous a fait un bon historique et tour d'horizon des fonctionnalités d'Angular permettant de faire du rendu serveur.&lt;/p&gt;

&lt;p&gt;On a pu voir les nouveautés du framework concernant l'hydratation de composant, les différents types de rendus que nous permet Angular aujourd'hui, (SSR,SSG,CSG)&lt;/p&gt;

&lt;p&gt;Pour avoir souffert sur des projets en rendu serveur, surtout de son incompréhension et sa mauvaise utilisation par les gens, j'ai été très content de voir un sujet remettre un peu à plat tout ça.&lt;/p&gt;

&lt;h3&gt;
  
  
  Quo Vadis State management ?
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Speaker : Rainer Hahnekamp&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Rainer nous a présenté un petit historique des librairies de gestion d'état en Angular. Et puis une présentation et démonstration de &lt;a href="https://ngrx.io/guide/signals/signal-store" rel="noopener noreferrer"&gt;@ngrx/signals&lt;/a&gt;, de ses principes et de son API &lt;code&gt;SignalStore&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Utilisant déjà la librairie quotidiennement (et déjà fervent convaincu), je n'ai pas appris grand-chose, mais c'était bien présenté, et ça en a convaincu d'autres :).&lt;/p&gt;

&lt;p&gt;En bonus, à la fin, lancement d'une nouvelle librairie de test avec &lt;a href="https://marmicode.io" rel="noopener noreferrer"&gt;Younes Jaaidi&lt;/a&gt; : &lt;a href="https://testronaut.github.io/testronaut/" rel="noopener noreferrer"&gt;testronaut&lt;/a&gt;, un lanceur de tests basé sur &lt;a href="https://playwright.dev/" rel="noopener noreferrer"&gt;playwright&lt;/a&gt;. (Younes était d'ailleurs Maître de Cérémonie durant toute la conférence, pas un boulot facile, et bien réussi)&lt;/p&gt;

&lt;p&gt;Petit point négatif pour la maltraitance de clavier en direct, un scandale 😅, je fus choqué.&lt;/p&gt;

&lt;h3&gt;
  
  
  L'injection de dépendances : le trésor caché d'Angular
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Speaker: Arthur Lannelucq&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Arthur nous a présenté différents cas d'usage de l'injection de dépendance, une fonctionnalité primordiale du framework.&lt;/p&gt;

&lt;p&gt;Devant plusieurs examples et applications concrètes: ce sont souvent les principes de base dont on oublie la puissance. Les cas d'usages étaient pertinents et bien expliqués.&lt;/p&gt;

&lt;p&gt;Rien de neuf sur le fond, le concept n'est pas nouveau, mais ça fait du bien de le rappeler.&lt;/p&gt;

&lt;h3&gt;
  
  
  Comment tester l'accessibilité d'un site internet sur Angular ?
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Speaker: Emmanuelle Aboaf&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Au travers d'une session de live-coding, et d'utilisation à base de clavier et lecteurs d'écran, Emmanuelle nous a montré plusieurs problèmes d'accessibilité, et surtout comment les corriger.&lt;/p&gt;

&lt;p&gt;Évidemment les cas problématiques les plus courants ont été abordés, absence d'indicateur de focus, contrastes de couleurs, lecture d'informations manquantes ou superflues par un lecteur d'écran etc...&lt;/p&gt;

&lt;p&gt;Moi, ce que je retiens principalement, c'est &lt;strong&gt;"La souris est prohibée"&lt;/strong&gt; dans un des slides :) (Et réellement, la plupart des problèmes les plus simples à corriger en accessibilité sont détectables en utilisant uniquement son clavier)&lt;/p&gt;

&lt;p&gt;La démonstration était efficace et assez révélatrice de la facilité avec lequel on peut faire du code inaccessible. Vous pouvez retrouver les différents cas pratiques présentés par Emmanuelle sur &lt;a href="https://github.com/emma11y/tester-a11y" rel="noopener noreferrer"&gt;son github&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Rethinking Data Access: The New httpResource in Angular
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Speaker: Manfred Steyer&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Manfred nous a parlé de la nouvelle API d'Angular permettant de faire des appels HTTP : la méthode &lt;a href="https://next.angular.dev/api/common/http/httpResource" rel="noopener noreferrer"&gt;&lt;code&gt;httpResource&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Cette fonction étant basée sur les signaux, elle permet de gérer les requêtes asynchrones sans passer par des &lt;code&gt;rxMethods&lt;/code&gt; pour faire la conversion Observable ⇄ Signal.&lt;/p&gt;

&lt;p&gt;À partir d'un exemple de niveau de Super Mario, nous avons pu voir comment repenser le graphe réactif de signal pour inclure des notions de ressources lentes à charger.&lt;/p&gt;

&lt;p&gt;Un passage également par les fonctionnalités avancées, on a désormais une manière simple et "fonctionnelle" (dans le sens orienté fonction, pas dans le sens que ça ne fonctionnait pas avant).&lt;/p&gt;

&lt;p&gt;Bref, la fonctionnalité est vraiment complète, et n'a rien à envier au client HTTP historique. Vous pouvez retrouver la plupart de ce dont Manfred nous a parlé dans &lt;a href="https://www.angulararchitects.io/en/blog/learning-httpresource-with-super-mario/" rel="noopener noreferrer"&gt;son article sur le sujet&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;NDLA: J'étais persuadé qu'on allait toujours garder RxJS dans nos clients HTTP, j'avais tort, il est dorénavant possible de gérer la progression simplement, et c'est cool 😎 !&lt;/p&gt;

&lt;h3&gt;
  
  
  Instant Navigation in Angular Applications
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Speaker: Christopher Holder&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Christopher, après des rappels bons à prendre sur les métriques de performance ou encore les différences entre MPA et SPA, nous a présenté plusieurs techniques pour améliorer les performances des navigations entre pages.&lt;/p&gt;

&lt;p&gt;Certaines basées sur une nouvelle API Expérimentale : les &lt;a href="https://developer.mozilla.org/en-US/docs/Web/API/Speculation_Rules_API" rel="noopener noreferrer"&gt;règles de spéculation&lt;/a&gt;, qui vont permettre de précharger des pages en fonctions de règles.&lt;/p&gt;

&lt;p&gt;Un cas criant d'optimisation pré-maturée à mes yeux, à ne pas appliquer partout, mais bon à connaître au besoin.&lt;/p&gt;

&lt;p&gt;Et tout est bon à prendre pour améliorer les performances, même si c'est uniquement la performance perçue.&lt;/p&gt;

&lt;p&gt;Le github d'une des librairies abordées : &lt;a href="https://github.com/push-based/ngx-speculative-link" rel="noopener noreferrer"&gt;ngx-speculative-link&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Sous le capot : Un débugueur sous stéroïdes pour accélérer la résolution de bug
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Seaker: Laura Pedenaud&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Laura nous a présenté, une méthodologie de résolution de problèmes que l'on connaît tous et toutes : le &lt;strong&gt;débogage&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;Après être rentré dans les entrailles d'un débugueur, comment interagir avec un débugueur en mode REPL, puis se connecter. L'exercice de la démo live n'est pas facile, et toujours très risqué, mais Laura s'en est plutôt bien sorti.&lt;/p&gt;

&lt;p&gt;Le talk était intéressant, mais ne faites pas ça en production les enfants, utilisez des solutions d'observabilité plutôt que d'appeler directement l'API du débugueur :)&lt;/p&gt;

&lt;h3&gt;
  
  
  Bulletproof Unit Tests
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Speaker: Cédric Exbrayat&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Cédric, qui officie sur le blog &lt;a href="https://blog.ninja-squad.com/" rel="noopener noreferrer"&gt;ninja-squad&lt;/a&gt; et est contributeur de la team Angular, est venu nous parler de tests unitaires.&lt;/p&gt;

&lt;p&gt;Et particulièrement de plusieurs techniques pour les améliorer. Éviter les &lt;code&gt;detectChanges()&lt;/code&gt;, préférer &lt;code&gt;autoDetectChanges&lt;/code&gt; une fois en début de suite, utiliser &lt;code&gt;await fixtures.whenStable()&lt;/code&gt; etcetaera &lt;/p&gt;

&lt;p&gt;Également une présentation du principe de "page object" et les quelques nouveautés sur le &lt;code&gt;provideRouter()&lt;/code&gt; et le &lt;code&gt;RouterTestingHarness&lt;/code&gt; qui nous permettent de simplifier les tests utilisant le Router.&lt;/p&gt;

&lt;p&gt;Pleins de bons petits conseil pour terminer la journée.&lt;/p&gt;

&lt;h2&gt;
  
  
  Le lieu
&lt;/h2&gt;

&lt;p&gt;Dans la belle ville de Nantes, onepoint est localisée en centre-ville, les locaux sont très classieux et spacieux.&lt;/p&gt;

&lt;p&gt;Si vous souhaitez y organiser vos évènements, n'hésitez pas à contacter &lt;a href="https://www.onepoint.live/" rel="noopener noreferrer"&gt;onepoint.live&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;NDLA: Je ne suis pas objectif, j'y travaille. Mais j'avais rarement vu le LivePoint, cette grande salle sous les toits, aussi plein à craquer, ça fait plaisir.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7pexkv8z303l65cuj8eh.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7pexkv8z303l65cuj8eh.webp" alt="Grande salle sous les toits avec deux speakers présentant les sponsors de la conférence, et deux rangées de sièges pour le public avec plus d'une centaines de personnes" width="800" height="335"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Pour une première édition, c'était une belle réussite, les orateurs et oratrices nous ont offert des talks de qualité.&lt;/p&gt;

&lt;p&gt;La track unique et le format ni trop court, ni trop long (30 minutes) ont fait que je ne me suis pas ennuyé de la journée !&lt;/p&gt;

&lt;p&gt;C'était un vrai plaisir d'échanger et de croiser des gens suivis en vrai plutôt que sur LinkedIn ou autres réseaux sociaux.&lt;/p&gt;

&lt;p&gt;Merci à toute l'équipe organisatrice, aux bénévoles et aux speakers, c'était super.&lt;/p&gt;

&lt;p&gt;Un évènement qui ne demande qu'à grandir. Vivement les futures éditions !&lt;/p&gt;




&lt;p&gt;Sources des photos:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://x.com/AngularDevsFr/status/1926210477098479668" rel="noopener noreferrer"&gt;Angular Devs France sur twitter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.linkedin.com/posts/angular-devs-france_ngbaguette-ngbaguetteconf-ngbaguette-activity-7331961934117797888-MsdL" rel="noopener noreferrer"&gt;Angular Devs France sur linkedin&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>angular</category>
      <category>ngbaguetteconf</category>
      <category>conference</category>
    </item>
    <item>
      <title>NG-DE 2024, un compte rendu.</title>
      <dc:creator>Benjamin Legrand</dc:creator>
      <pubDate>Wed, 20 Nov 2024 13:00:00 +0000</pubDate>
      <link>https://dev.to/onepoint/ng-de-2024-un-compte-rendu-59mf</link>
      <guid>https://dev.to/onepoint/ng-de-2024-un-compte-rendu-59mf</guid>
      <description>&lt;p&gt;Cette année, j'ai eu la chance et l'honneur de participer à la &lt;a href="https://ng-de.org/" rel="noopener noreferrer"&gt;NG-DE&lt;/a&gt;, conférence spécialisée sur le framework Angular à Bonn, en Allemagne.&lt;/p&gt;

&lt;p&gt;Voici mon compte rendu de ces deux jours de conférence.&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F26k133f77fpmgzge3wr9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F26k133f77fpmgzge3wr9.png" alt="Un présentateur en conférence, sur scène, devant un slide projeté montrant un tableau Navigateur vs Serveur" width="800" height="600"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Moi, Benjamin Legrand, sur la scène de la NG-DE - &lt;a href="https://x.com/SantoshYadavDev/status/1844715975351935486" rel="noopener noreferrer"&gt;Crédit photo: @Santosh Yadav sur twitter&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;* record scratches * * freeze frame * "Yep, that's me. You're probably wondering how I ended up in this situation."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;C'est plutôt simple, j'ai proposé une conférence sur un sujet Angular, et j'ai été accepté.&lt;/p&gt;

&lt;p&gt;J'ai proposé sur un coup de tête en me disant : "Sur un malentendu, ça peut passer". Le niveau et la spécificité des speakers étant assez élevés, je pensais vraiment que ça ne passerait pas. Et c'est passé !&lt;/p&gt;

&lt;h2&gt;
  
  
  En route !
&lt;/h2&gt;

&lt;p&gt;Me voilà donc parti, par un mardi d'octobre à traverser la France, la Belgique et l'Allemagne pour arriver à Bonn, une petite ville universitaire à l'ouest de l'Allemagne, connue principalement pour être le lieu de naissance de Beethoven.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwyf1dv0zi8i923v5xrna.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwyf1dv0zi8i923v5xrna.png" alt="Statue de Beethoven à Bonn en Allemagne" width="768" height="1024"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Statue de Beethoven à Bonn&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;En passant, je ne peux que m'émerveiller devant la qualité d'affichage des trains et des gares allemandes. La SNCF devrait s'en inspirer ! Par exemple, dans les trains ICE, un indicateur visuel donne non seulement la disponibilité d'une place, mais également sur quel tronçon du trajet celle-ci allait être occupée.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpxis6o0hqu5fe0t909p2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpxis6o0hqu5fe0t909p2.png" alt="Afficheur de place disponible dans un train" width="800" height="600"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Afficheur de place disponible ou occupée dans un train ICE&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;La lisibilité des affichages a également touché mon petit cœur de dev front. Points bonus pour les écrans qui alternent les infos en anglais, en français, en néerlandais et en allemand.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkw89q87r1l2syh6atp7w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkw89q87r1l2syh6atp7w.png" alt="Panneau d'affichage de la gare de Cologne, montrant la disposition des trains à quais, le numéro des wagons et leur positions, la classe (1ère ou 2nde) des wagons etc..." width="800" height="600"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Clair net et précis, un panneau d'affichage en gare de Cologne&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  La conférence
&lt;/h2&gt;

&lt;p&gt;La &lt;strong&gt;NG-DE&lt;/strong&gt; est une conférence sur 3 jours, dont un d'ateliers. Elle est organisée parallèlement à la conférence &lt;a href="https://conf.vuejs.de" rel="noopener noreferrer"&gt;VueJS.de&lt;/a&gt;.&lt;br&gt;
C'est un peu comme si on avait deux salons de l'auto en même temps, un spécialisé Peugeot, l'autre Citroën&lt;/p&gt;

&lt;p&gt;Le lieu était assez impressionnant, une énorme salle au sein de l'hôtel Maritim de Bonn, avec une scène centrale et plein de petites tables, ambiance soirée de gala.&lt;/p&gt;

&lt;h2&gt;
  
  
  Les sujets Vue.js
&lt;/h2&gt;

&lt;p&gt;Vu que je déteste être en retard, je suis arrivé avec un jour d'avance et j'ai donc pu assister, tout en fignolant mes slides, à quelques sujets &lt;a href="https://vuejs.org/" rel="noopener noreferrer"&gt;Vue.js&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Devez vous créer votre propre librairie de composant UI ?&lt;/strong&gt; : Question intemporelle et qui traverse les frameworks :)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scalable forms&lt;/strong&gt; . par jpsohroeder, mainteneur de FormKit, Dynamic Forms avec Vue.js &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;You are going to need a test for that&lt;/strong&gt; &lt;a href="https://conf.vuejs.de/talks/you-are-going-to-need-a-test-for-that/" rel="noopener noreferrer"&gt;Lara Newsom&lt;/a&gt; : un bon éventail des différents tests possible dans une application Vue.JS et quel type de test doit tester quel type de composants. Très bon rappel sur les différents types de tests, la séparation des responsabilités et mention spéciale pour l'utilisation de testing-library, une super librairie de tests multi-frameworks aussi disponible pour Angular, que je recommande chaudement.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Composables&lt;/strong&gt; : je n'ai pas tout compris, mon niveau en vue.js datant de ... la v1&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Psychology and cognitive stuff&lt;/strong&gt; Un talk très intéréssant sur la manière dont on percoit les interfaces utilisateurs.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Les sujets Angular marquants
&lt;/h2&gt;

&lt;p&gt;Une sélection personnelle des talks les plus intéressants que j'ai retenus de la conférence.&lt;/p&gt;

&lt;h3&gt;
  
  
  Jeudi 10 octobre
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Keynote, Angular Momentum
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Speaker: &lt;a href="https://ng-de.org/speakers/emma-twersky/" rel="noopener noreferrer"&gt;Emma Twersky&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Un bon petit coup d'œil dans le rétroviseur depuis les débuts d'AngularJS jusqu'à aujourd'hui, les nouveautés du début des années 2020 et la "renaissance".&lt;br&gt;
Notamment la réécriture complète du moteur de rendu interne d'Angular (de son petit nom "Ivy"). Réécriture qui a permis un bon coup de nettoyage de dette technique, et a débloqué pas mal de choses depuis, y compris les fonctionnalités récentes.&lt;/p&gt;

&lt;p&gt;Utilisation d'Angular en interne chez Google: ouvrir un ticket au help-desk passe par une appli Angular, consulter et naviguer dans la base de code passe par une application Angular, ouvrir une pull-request (ou changelist chez eux) passe par une application Angular. En plus évidemment des applications "user-facing" telles que Google Analytics, Firebase ou Google Cloud Platform. Le dog-fooding est total.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frh73eazlik2lz5m7dfte.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frh73eazlik2lz5m7dfte.png" alt="Emma Twersky, sur la scène de la NG-DE, plan large d'une grande salle avec plein de tables rondes pour le public" width="800" height="602"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Emma Twersky sur scène à la NG-DE - &lt;a href="https://x.com/LX_T/status/1844290437823320151" rel="noopener noreferrer"&gt;Crédit photo: @LX_T sur twitter&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  AI in the browser: Smarter Angular apps with WebGPU and WebNN
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Speaker: &lt;a href="https://ng-de.org/speakers/christian-liebel/" rel="noopener noreferrer"&gt;Christian Liebel&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Une belle démonstration des possibilités de reconnaissance vocales et de faire tourner un LLM en local dans un browser grâce à WebGPU.&lt;/p&gt;

&lt;p&gt;Au-delà de ça, je ne suis pas forcément convaincu du temps gagné, ni des cas d'utilisations.&lt;/p&gt;

&lt;h4&gt;
  
  
  Step-up Your Authentication Security.
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Speaker: &lt;a href="https://ng-de.org/speakers/alisa-duncan/" rel="noopener noreferrer"&gt;Alisa Duncan&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Talk un peu sponsorisé par OKTA (c'est le jeu), mais de très bons rappels et live-coding sur la manière de rajouter de l'authentification dans une application web.&lt;/p&gt;

&lt;p&gt;Sur comment gérer les erreurs HTTP 401, comment intercepter les erreurs de droits d'accès ou la péremption de jetons.&lt;/p&gt;

&lt;p&gt;Des indispensables de l'authentification / autorisation, présentés avec des implémentations concrètes en Angular.&lt;/p&gt;

&lt;h4&gt;
  
  
  Fake it til you mock it
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Speaker: &lt;a href="https://ng-de.org/speakers/younes-jaaidi/" rel="noopener noreferrer"&gt;Younes Jaaidi&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Younes, que j'ai déjà pu croiser dans plusieurs conférences en France, nous a présenté une explication sur les différents types de faux objets utilisés dans les tests unitaire ( Stub, dummy, fakes, mocks... ).&lt;/p&gt;

&lt;p&gt;La moitié du talk était un mini sketch sous la forme d’une audition d'acteurs, avec Younes dans le rôle du directeur de casting, assez drôle et original.&lt;/p&gt;

&lt;h4&gt;
  
  
  Modern Angular Architectures with Lightweight Stores
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Speaker: &lt;a href="https://ng-de.org/speakers/manfred-steyer" rel="noopener noreferrer"&gt;Manfred Steyer&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Manfred est très impliqué dans l'éco-système Angular, notamment en maintenant pas mal de librairies (&lt;a href="https://github.com/manfredsteyer" rel="noopener noreferrer"&gt;voir son GitHub&lt;/a&gt;), et sur pas mal de sujets comme les micro-frontends, et la fédération de module. &lt;/p&gt;

&lt;p&gt;C'est vraiment le G.O.A.T qu'il pense être, l'entendre expliquer comment les "signals" allaient changer la gestion d'état avec Angular, et surtout, l'architecture de nos fronts était très agréable et intéressant.&lt;/p&gt;

&lt;p&gt;Il nous montrait une manière plus légère de faire des fonctionnalités de store, en utilisant des "signals" plutôt que des Observables. Et surtout, des stores locaux aux composants plutôt que globaux.&lt;/p&gt;

&lt;p&gt;Tout ça en suivant l'architecture "Domain Driven Design" et le pattern de librairies "ui", "domain" et "data".&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0z0blznq7mmohp0dvfe5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0z0blznq7mmohp0dvfe5.png" alt="Manfred Steyer sur scène à la NG-DE, présentant un slide ou sont organisés des modules applicatifs front-end, en colonnes on a les " width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Une approche très orientée mono-repo et gros projets, mais également applicable à des projets plus petits.&lt;/p&gt;

&lt;h4&gt;
  
  
  DIY: Let’s write a signal from scratch.
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Speaker: &lt;a href="https://ng-de.org/speakers/eliran-eliassy" rel="noopener noreferrer"&gt;Eliran Eliassy&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Un Live coding de A à Z d'une implémentation de signal, la nouvelle primitive pour faire de la réactivité dans Angular.&lt;/p&gt;

&lt;p&gt;L'exercice du live-coding ou de la démo est toujours un peu risqué, mais là, c'était rythmé, et didactique.&lt;/p&gt;

&lt;p&gt;De la fonction signal(), du getter / setter de notre valeur, à la gestion des abonnements jusqu’aux effets. En 30 minutes chrono.&lt;/p&gt;

&lt;p&gt;Ça montrait bien toute la simplicité et la puissance du concept.&lt;/p&gt;

&lt;h4&gt;
  
  
  The hidden challenges of run-time integrated microfrontends
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Speaker : &lt;a href="https://ng-de.org/speakers/cathrin-moeller" rel="noopener noreferrer"&gt;Cathrin Möller&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Un talk très intéressant sur la fédération de modules, une technique qui permet de charger des petits bouts d'application dans vos applications angular, ces petits bouts venant d'un autre domaine.&lt;/p&gt;

&lt;p&gt;Les challenges sont nombreux, notamment sur la gestion des dépendances, des versions angular, et des routes d'URL.&lt;/p&gt;

&lt;p&gt;À retenir : éviter d'utiliser différentes versions d'Angular dans chaque micro-front. Et bien penser à son routage, à séparer les routes pour éviter les collisions, car même avec plusieurs micro-fronts, on n'a qu'une seule URL partagée entre chaque.&lt;/p&gt;

&lt;p&gt;Cela apporte également des considérations d'architecture de code, notamment sur la séparation des responsabilités, et comment faire communiquer tout ça harmonieusement. &lt;/p&gt;

&lt;h4&gt;
  
  
  Going deep with change detection
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Speaker: &lt;a href="https://ng-de.org/speakers/enea-jahollari" rel="noopener noreferrer"&gt;Enea Hahollari&lt;/a&gt;&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;Enea, qui est très actif sur le twitter Angular, souvent pour découvrir et partager de nouvelles fonctionnalités du framework avant même que la pull-request ne soit mergée, nous a fait un talk très technique sur les détails de l’implémentation de la détection de changement avec Angular&lt;/p&gt;

&lt;p&gt;À la fois avec zone.js et les signals. Seul point négatif, un peu dur à suivre à cause des slides sans contrastes, mais hyper intéressant.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffoa8cj2jqhi4yngcyz3x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffoa8cj2jqhi4yngcyz3x.png" alt="Un écran projetant un slide en conférence avec du code pas très lisible" width="800" height="600"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Enea sur scène qui présente la détection de changement, comme quoi, le contraste dans les slides, c'est important&lt;/em&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Make your app loud: Web maudio in UI
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Speaker: &lt;a href="https://ng-de.org/speakers/vitalii-bobrov" rel="noopener noreferrer"&gt;Vitalii Bobrov&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Un sujet un peu à part, sur l'utilisation du son dans les applications web. Vitalii nous a montré comment utiliser le son pour améliorer l'expérience utilisateur, et rajouter des informations de "feedback" aux actions. &lt;/p&gt;

&lt;p&gt;Une pratique peu répandue dans le web, j'ai en tête linkedin surtout qui a quelques actions qui provoquent des sons, mais c'est assez rare.&lt;/p&gt;

&lt;h3&gt;
  
  
  Vendredi 11 Octobre 2024
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Partial Hydration, the art of sending the bare minimum over the wire
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Speaker: &lt;a href="https://ng-de.org/speakers/matthieu-riegler" rel="noopener noreferrer"&gt;Matthieu Riegler&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Matthieu, qui fait partie de la core team Angular, nous a présenté toutes les nouveautés concernant l'hydratation partielle, une technique qui permet de ne renvoyer que le strict nécessaire pour le rendu initial d'une page, et de charger le reste en asynchrone.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7yvas1zrt3gfid1dsa14.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7yvas1zrt3gfid1dsa14.png" alt="Un écran projetant un slide en conférence avec la citation d'un développeur anonyme : " width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  AnalogJs: The Vite powered Angular meta-framework
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Speaker: &lt;a href="https://ng-de.org/speakers/robin-goetz" rel="noopener noreferrer"&gt;Robin Goetz&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Robin, membre de la core-team d'AnalogJS, nous a présenté les fonctionnalités de ce meta-framework.&lt;/p&gt;

&lt;p&gt;Connaissant le sujet (j'en ai parlé au &lt;a href="https://www.youtube.com/watch?v=mQujRWe_hNk" rel="noopener noreferrer"&gt;DevFest Nantes&lt;/a&gt;), j'ai quand même appris des choses, notamment sur les fonctionnalités avancées de Nitro, la boite à outils "Serveur" utilisée par AnalogJS&lt;/p&gt;

&lt;h3&gt;
  
  
  From material 2 to 3
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Speaker: &lt;a href="https://ng-de.org/speakers/ankita-sood" rel="noopener noreferrer"&gt;Ankita Sood&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Un talk intéressant, pour qui utilise Material, la librairie de composants de google pour angular, sur les changements de la v2 à la v3, comment migrer ses thèmes et pleins de petits conseils.&lt;/p&gt;

&lt;h3&gt;
  
  
  Horror stories from running angular universal in production.
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Speaker: &lt;a href="https://ng-de.org/speakers/benjamin-legrand" rel="noopener noreferrer"&gt;Benjamin Legrand&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;À mon tour, j'ai parlé des horreurs de rendu server en production, de toutes les fois où on a "cassé la prod", et comment éviter de le refaire.&lt;/p&gt;

&lt;h3&gt;
  
  
  Cut my tasks into pieces
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Speaker: &lt;a href="https://ng-de.org/speakers/julian-jandl" rel="noopener noreferrer"&gt;Julian Jandl&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Comment optimiser les taches de rendu dans le navigateur, en parallélisant l'affichage de chaque composant au niveau du rendu fait par Angular.&lt;/p&gt;

&lt;p&gt;Une approche intéressante, pour des besoins de perf avancée, j'ai beaucoup aimé les exemples à base d'utilisation du profiler (outils d'analyse de la performance de vos navigateurs).&lt;/p&gt;

&lt;h2&gt;
  
  
  Les bonnes idées de la conférence.
&lt;/h2&gt;

&lt;p&gt;Autour des talks, j'ai beaucoup apprécié l'approche verte et écolo-responsable. Par exemple : les t-shirts étaient imprimés "à la demande", avec un petit stand où on pouvait choisir son design et sa taille, et le t-shirt était imprimé en direct. Pas de gâchis.&lt;/p&gt;

&lt;p&gt;Les repas étaient non-seulement très bons, mais en plus végétariens (la nourriture la plus inclusive qui soit), et en quantité largement suffisante pour les gros mangeurs ou les carnistes frustrés.&lt;/p&gt;

&lt;p&gt;Des "snacks" étaient à disposition tout au long de la journée, des viennoiseries le matin, puis un échantillon varié l'après-midi : des chips de fruits aux glaces au chocolat, en passant par plein de fruits frais, tout cela faisait vraiment ressentir le côté "luxueux" de la conférence.&lt;/p&gt;

&lt;p&gt;Sur le format des talks, les sujets de 30 minutes sont vraiment agréables et mon opinion après avoir enchainé sur les deux jours, c'est que c'est le meilleur format possible pour une conférence.&lt;/p&gt;

&lt;p&gt;45/50 minutes telles qu'on les fait en France, c'est trop long, on s'ennuie vite, si le speaker n'est pas bon, on décroche. 30 minutes, c'est court, on n'a pas le temps de s'ennuyer, tout en ayant le temps de rentrer dans le sujet.&lt;/p&gt;

&lt;p&gt;La "track unique" (pas de conférence en parallèle) permet également d'enchainer 2 à 3 talks sans temps de pause, ni sans avoir à se déplacer, et ça change pas mal de chose sur le niveau de fatigue générale que ce genre d'évènements me procure d'habitude.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwlg38kt0monlps3ey1yr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwlg38kt0monlps3ey1yr.png" alt="Photo d'autocollants avec les logos de librairies populaires dans l'écosystème Angular: Nx, Rxjs, Nrwl" width="768" height="1024"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Comme à chaque conférence, je suis revenu avec mon petit lot de stickers&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Cette conférence m'a personnellement beaucoup plu, pour une première expérience non-francophone, c'était vraiment top. Au delà d'êter complétement dans mon coeur de métier et mon framework préféré, je ne pensais pas qu'une conférence de niche sur un framework aussi spécifique que Angular pouvait rassembler autant de monde.&lt;/p&gt;

&lt;p&gt;J'espère m'en être plutôt bien sorti avec mon talk, malgré mon accent Français à couper au couteau.&lt;/p&gt;

&lt;p&gt;Les vidéos des talks devraient être disponibles dans quelques semaines, je mettrai à jour cet article avec les liens.&lt;/p&gt;

&lt;p&gt;J'ai été ravi d'échanger avec des développeurs Angular de toute l'europe, même dans un anglais approximatif. Vivement un évènement similaire en France. (il existe la NG-DE, la NG-BE, ngPoland ou ngRoma, à quand un &lt;a href="https://angular-nexus.org/" rel="noopener noreferrer"&gt;NG-FR&lt;/a&gt; ?)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5vg9mgmkyuc9bhyedrt1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5vg9mgmkyuc9bhyedrt1.png" alt="Photo de groupe de tous les participants à la NG-DE sur scène" width="800" height="600"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Photo Bonus : Où est Charlie ?&lt;/em&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>techtalks</category>
      <category>angular</category>
    </item>
  </channel>
</rss>
