<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Blog Liksi on Liksi - Tech &amp; Innovation</title>
    <link>/</link>
    <description>Recent content in Blog Liksi on Liksi - Tech &amp; Innovation</description>
    <generator>Hugo</generator>
    <language>fr</language>
    <lastBuildDate>Wed, 14 Oct 2026 10:00:00 +0200</lastBuildDate>
    <atom:link href="/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Et si la CI arrêtait de rejouer ce que l&#39;agent a déjà testé ?</title>
      <link>/2026/10/14/et-si-la-ci-arretait-de-rejouer-ce-que-lagent-a-deja-teste/</link>
      <pubDate>Wed, 14 Oct 2026 10:00:00 +0200</pubDate>
      <guid>/2026/10/14/et-si-la-ci-arretait-de-rejouer-ce-que-lagent-a-deja-teste/</guid>
      <description>&lt;p&gt;Regardez un agent de code travailler pendant cinq minutes. Il modifie un fichier, lance les tests, corrige, relance, ajuste un import, relance encore. Le temps de converger vers une version qui passe, il a exécuté la suite une dizaine de fois. Il pousse alors son commit, et la CI démarre la même suite sur un runner vierge, sans rien savoir de ce qui vient de se passer.&lt;/p&gt;&#xA;&lt;p&gt;Ce doublon existait déjà avec les développeur·euse·s, mais à petite dose : personne ne relance sa suite complète quinze fois en une heure. Un agent le fait sans y penser. Et comme il écrit aussi plus de code, il ouvre plus de pull requests, qui déclenchent chacune leur pipeline. La facture grossit des deux côtés : plus d&amp;rsquo;exécutions locales jetées aussitôt, et plus de minutes de CI derrière.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Comprendre le harness : ce qui transforme un LLM en agent</title>
      <link>/2026/09/24/comprendre-le-harness-ce-qui-transforme-un-llm-en-agent/</link>
      <pubDate>Thu, 24 Sep 2026 09:00:00 +0200</pubDate>
      <guid>/2026/09/24/comprendre-le-harness-ce-qui-transforme-un-llm-en-agent/</guid>
      <description>&lt;p&gt;Chez Liksi, on travaille surtout avec Claude Code, branché sur Sonnet ou Opus, et à force on ne se pose plus la question de l&amp;rsquo;outil. Jusqu&amp;rsquo;au jour où on confie la même tâche, au même modèle, dans un autre outil : l&amp;rsquo;un termine proprement, l&amp;rsquo;autre part en boucle ou oublie une consigne donnée dix minutes plus tôt. Même modèle, même prompt, deux issues opposées.&lt;/p&gt;&#xA;&lt;p&gt;Ce qui change, c&amp;rsquo;est tout ce qui entoure le modèle : comment on lui présente le contexte, quelles actions on lui permet (lire un fichier, lancer une commande), ce qu&amp;rsquo;on fait quand la conversation devient trop longue. Cette couche a un nom qui circule de plus en plus dans les discussions techniques : le &lt;strong&gt;harness&lt;/strong&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Gateway MCP : une gateway pour les gouverner tous</title>
      <link>/2026/07/30/gateway-mcp-une-gateway-pour-les-gouverner-tous/</link>
      <pubDate>Thu, 30 Jul 2026 10:00:00 +0200</pubDate>
      <guid>/2026/07/30/gateway-mcp-une-gateway-pour-les-gouverner-tous/</guid>
      <description>&lt;p&gt;Dans &lt;a href=&#34;/2026/04/21/transformer-vos-api-en-mcp-avec-spring-ai/&#34;&gt;un précédent article&lt;/a&gt;, on a montré comment exposer une API Spring existante comme serveur MCP avec Spring AI, pour brancher un agent dessus. Un serveur, un domaine, une équipe : le cas le plus simple.&lt;/p&gt;&#xA;&lt;p&gt;Mais un SI ne se résume pas à un seul domaine. Dès qu&amp;rsquo;on imagine plusieurs équipes reproduire la même démarche chacune sur son périmètre (RH, CRM, devops&amp;hellip;), un problème apparaît, et il n&amp;rsquo;est pas technique. Il est &lt;strong&gt;organisationnel&lt;/strong&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Déployer un marketplace privé de plugins Claude Code</title>
      <link>/2026/05/13/deployer-un-marketplace-prive-de-plugins-claude-code/</link>
      <pubDate>Wed, 13 May 2026 09:00:00 +0200</pubDate>
      <guid>/2026/05/13/deployer-un-marketplace-prive-de-plugins-claude-code/</guid>
      <description>&lt;p&gt;Quand une équipe adopte Claude Code, les outils s&amp;rsquo;accumulent vite : des MCP servers pour accéder aux APIs internes, des skills pour standardiser les revues de code, des agents spécialisés par domaine. Chaque développeur·se les configure manuellement, souvent en se basant sur un message Slack ou un README qui date un peu. Pas de source de vérité, pas de mise à jour automatique.&lt;/p&gt;&#xA;&lt;p&gt;Claude Code dispose depuis peu d&amp;rsquo;un mécanisme natif pour régler ce problème : les &lt;strong&gt;Plugin Marketplaces&lt;/strong&gt;. Le principe : un repo GitHub devient un catalogue de plugins que toute l&amp;rsquo;équipe peut installer en une commande, et que le projet peut activer automatiquement via son &lt;code&gt;settings.json&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Transformer vos API en MCP avec Spring AI</title>
      <link>/2026/04/21/transformer-vos-api-en-mcp-avec-spring-ai/</link>
      <pubDate>Tue, 21 Apr 2026 10:00:00 +0200</pubDate>
      <guid>/2026/04/21/transformer-vos-api-en-mcp-avec-spring-ai/</guid>
      <description>&lt;p&gt;Sur un projet client récent, on s&amp;rsquo;est retrouvés face à une API Spring conséquente, le genre qui s&amp;rsquo;est construite au fil des années, avec des dizaines d&amp;rsquo;endpoints, des modèles de données entrecroisés, et une documentation&amp;hellip; disons, optimiste. Onboarder un nouveau développeur dessus prenait du temps. Comprendre quelles ressources existaient, ce qu&amp;rsquo;on pouvait interroger, comment les données se reliaient entre elles : ça demandait de fouiller le code, de lire les tests, d&amp;rsquo;aller chercher le·la bon·ne expert·e.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Les impacts environnementaux de l&#39;IA</title>
      <link>/2025/11/21/les-impacts-environnementaux-de-lia/</link>
      <pubDate>Fri, 21 Nov 2025 14:00:00 +0100</pubDate>
      <guid>/2025/11/21/les-impacts-environnementaux-de-lia/</guid>
      <description>&lt;h2 id=&#34;ia--de-quoi-parle-t-on-&#34;&gt;IA : de quoi parle-t-on ?&lt;/h2&gt;&#xA;&lt;p&gt;L&amp;rsquo;Intelligence Artificielle est un domaine de recherche qui a connu plusieurs phases et qui englobe de multiples catégories de modèles. Or, le terme &lt;strong&gt;IA&lt;/strong&gt; est aujourd&amp;rsquo;hui parfois galvaudé, la majorité des discussions se concentrant sur une famille de modèles que sont les &lt;strong&gt;LLMs&lt;/strong&gt; comme ChatGPT, qui ont popularisé l&amp;rsquo;usage de l&amp;rsquo;&lt;strong&gt;IA générative&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Dans cet article, on va s&amp;rsquo;autoriser ce raccourci, car aujourd&amp;rsquo;hui c&amp;rsquo;est bien l&amp;rsquo;IA générative qui soulève les questions économiques et politiques, mais aussi le plus gros potentiel d&amp;rsquo;impacts à venir.&lt;/p&gt;</description>
    </item>
    <item>
      <title>L&#39;agentic AI au-delà de Python : le réveil de l&#39;écosystème JVM</title>
      <link>/2025/10/10/lagentic-ai-au-dela-de-python-le-reveil-de-lecosysteme-jvm/</link>
      <pubDate>Fri, 10 Oct 2025 10:00:00 +0200</pubDate>
      <guid>/2025/10/10/lagentic-ai-au-dela-de-python-le-reveil-de-lecosysteme-jvm/</guid>
      <description>&lt;p&gt;&lt;strong&gt;2025 marque un tournant décisif&lt;/strong&gt; : l&amp;rsquo;écosystème Java/Kotlin pour l&amp;rsquo;IA est désormais mature, avec des frameworks de niveau production qui rivalisent - et dans certains cas surpassent - leurs équivalents Python. Des frameworks comme &lt;strong&gt;LangChain4j&lt;/strong&gt;, &lt;strong&gt;Spring AI&lt;/strong&gt;, &lt;strong&gt;Embabel&lt;/strong&gt; et &lt;strong&gt;Koog&lt;/strong&gt; transforment radicalement la manière dont nous construisons des applications intelligentes.&lt;/p&gt;&#xA;&lt;p&gt;Cette évolution soulève des questions essentielles : &lt;strong&gt;pourquoi choisir Java/Kotlin plutôt que Python pour développer des agents IA ? Qu&amp;rsquo;est-ce qu&amp;rsquo;un système agentique exactement ? Et quel framework choisir selon son contexte ?&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Angular en 2025 (v20.2) : Top 10 des évolutions</title>
      <link>/2025/09/03/angular-en-2025-v20.2-top-10-des-evolutions/</link>
      <pubDate>Wed, 03 Sep 2025 12:01:00 +0200</pubDate>
      <guid>/2025/09/03/angular-en-2025-v20.2-top-10-des-evolutions/</guid>
      <description>&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;&#xA;&lt;p&gt;En 2025, alors qu&amp;rsquo;Angular fêtera bientôt ses 10 ans d’existence, le framework continue de surprendre. Longtemps critiqué pour sa lourdeur, son dogmatisme et sa complexité, il a pourtant su démontrer sa &lt;strong&gt;capacité d’adaptation&lt;/strong&gt;. La version &lt;strong&gt;20&lt;/strong&gt; marque un tournant : &lt;strong&gt;Angular&lt;/strong&gt; n’est plus seulement un choix “&lt;em&gt;historique&lt;/em&gt;” ou “&lt;em&gt;par défaut&lt;/em&gt;” pour les grands groupes. C’est un framework moderne, performant et pensé pour répondre aux vrais défis: formulaires complexes, flux d’interactions intenses, besoin de robustesse et d’outillage intégré.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Retour sur le Tremplin 2025</title>
      <link>/2025/09/01/retour-sur-le-tremplin-2025/</link>
      <pubDate>Mon, 01 Sep 2025 08:00:00 +0000</pubDate>
      <guid>/2025/09/01/retour-sur-le-tremplin-2025/</guid>
      <description>&lt;p&gt;Le 20 mars 2025, Liksi a organisé son événement interne &lt;strong&gt;Le Tremplin&lt;/strong&gt;, une demi-journée dédiée au partage de connaissances et à l&amp;rsquo;innovation technique. Cette édition 2025 a une nouvelle fois démontré la richesse de l&amp;rsquo;expertise technique présente au sein de nos équipes.&lt;/p&gt;&#xA;&lt;h2 id=&#34;le-concept-du-tremplin&#34;&gt;Le concept du Tremplin&lt;/h2&gt;&#xA;&lt;p&gt;Le Tremplin est né de la volonté de créer un espace de partage et d&amp;rsquo;échange au sein de Liksi. Dans la lignée de nos &lt;strong&gt;midi-techs&lt;/strong&gt; réguliers, cet événement permet à nos collaborateur·rice·s de prendre du recul sur leurs projets et de partager leurs découvertes, leurs retours d&amp;rsquo;expérience et leurs innovations avec l&amp;rsquo;ensemble de l&amp;rsquo;équipe.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Spring Framework 7 et Spring Boot 4 - les évolutions majeures de 2025</title>
      <link>/2025/08/25/spring-framework-7-et-spring-boot-4-les-evolutions-majeures-de-2025/</link>
      <pubDate>Mon, 25 Aug 2025 08:00:00 +0000</pubDate>
      <guid>/2025/08/25/spring-framework-7-et-spring-boot-4-les-evolutions-majeures-de-2025/</guid>
      <description>&lt;h2 id=&#34;spring-boot--kotlin--le-socle-technique-de-liksi&#34;&gt;Spring Boot + Kotlin : le socle technique de Liksi&lt;/h2&gt;&#xA;&lt;p&gt;Chez Liksi, nous avons fait le choix de &lt;strong&gt;Spring Boot et Kotlin&lt;/strong&gt; comme stack de référence pour nos développements backend. Cette combinaison nous offre :&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Productivité&lt;/strong&gt; - syntaxe concise de Kotlin et conventions Spring Boot&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Fiabilité&lt;/strong&gt; - null-safety native et écosystème mature Spring&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Performance&lt;/strong&gt; - optimisations JVM et intégration parfaite des deux technologies&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Maintenabilité&lt;/strong&gt; - code expressif et architecture robuste&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Cette approche nous permet de livrer rapidement des applications robustes et évolutives, parfaitement adaptées aux enjeux business de nos clients.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Être bénévole à la KotlinConf 2025</title>
      <link>/2025/06/10/etre-benevole-a-la-kotlinconf-2025/</link>
      <pubDate>Tue, 10 Jun 2025 13:31:00 +0000</pubDate>
      <guid>/2025/06/10/etre-benevole-a-la-kotlinconf-2025/</guid>
      <description>&lt;p&gt;J’ai, pour la deuxième année consécutive, eu la chance de participer à la &lt;strong&gt;KotlinConf&lt;/strong&gt;, organisée par JetBrains. Mais pas en tant que simple participant : j’y ai pris part en tant que &lt;strong&gt;bénévole&lt;/strong&gt;, pour aider au bon déroulement de l’événement.&lt;/p&gt;&#xA;&lt;h1 id=&#34;être-bénévole-à-la-kotlinconf&#34;&gt;Être bénévole à la KotlinConf&lt;/h1&gt;&#xA;&lt;h2 id=&#34;application&#34;&gt;Application&lt;/h2&gt;&#xA;&lt;p&gt;Pour devenir bénévole, il suffit de répondre à un appel à candidatures lancé par JetBrains, généralement quelques mois avant la conférence.&lt;/p&gt;&#xA;&lt;p&gt;Il faut notamment y indiquer sa motivation et son intérêt pour l’écosystème Kotlin.&lt;/p&gt;</description>
    </item>
    <item>
      <title> Retour sur WhoRunTheTech 2024</title>
      <link>/2024/12/05/retour-sur-whorunthetech-2024/</link>
      <pubDate>Thu, 05 Dec 2024 09:26:00 +0000</pubDate>
      <guid>/2024/12/05/retour-sur-whorunthetech-2024/</guid>
      <description>&lt;p&gt;Who run the tech ? Girls !&lt;/p&gt;&#xA;&lt;p&gt;La conférence &lt;a href=&#34;https://whorunthetech.com/&#34;&gt;WhoRunTheTech&lt;/a&gt; organisée par l&amp;rsquo;association &lt;a href=&#34;https://estimnumerique.com/&#34;&gt;Estim Numérique&lt;/a&gt; n&amp;rsquo;est pas qu&amp;rsquo;une simple conférence.&#xA;C&amp;rsquo;est un acte volontairement militant pour &lt;strong&gt;promouvoir la place des femmes dans le secteur de la tech&lt;/strong&gt;. Rappelons les chiffres : &lt;a href=&#34;https://www.egalite-femmes-hommes.gouv.fr/17-avril-journee-de-la-femme-digitale&#34;&gt;27% de femmes dans le secteur du numérique et environ 15%&#xA;dans la fonction technique&lt;/a&gt;. Ce n&amp;rsquo;est pas beaucoup. C&amp;rsquo;est pourquoi cet événement ne propose que des conférences et ateliers techniques animés par des femmes et minorités de genre.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Retours sur le Volcamp 2024</title>
      <link>/2024/11/13/retours-sur-le-volcamp-2024/</link>
      <pubDate>Wed, 13 Nov 2024 15:36:00 +0000</pubDate>
      <guid>/2024/11/13/retours-sur-le-volcamp-2024/</guid>
      <description>&lt;p&gt;Volcamp, c&amp;rsquo;est la conférence au cœur des volcans d&amp;rsquo;Auvergne faite pour les passionnés de tech, de dev et de terroir.&#xA;Et cette année, j&amp;rsquo;ai eu l&amp;rsquo;opportunité d&amp;rsquo;y participer en tant que speaker avec une &lt;a href=&#34;https://www.youtube.com/watch?v=jW0qxfgh-Lo&amp;amp;list=PLL-xGFWSe4-Ig7jp1yHMpbSe7jkQoKKta&amp;amp;index=5&amp;amp;pp=iAQB&#34;&gt;conférence&lt;/a&gt; pour parler de la gestion des commons au sein de nos SIs, et notamment du coût du code mutualisé qui est rarement évident à percevoir.&#xA;J&amp;rsquo;ai donc aussi pu en profiter pour assister à de nombreuses conférences et je vous partage mes recommandations dans cet article.&lt;/p&gt;</description>
    </item>
    <item>
      <title>L&#39;expérience de stage chez Liksi </title>
      <link>/2024/11/05/lexperience-de-stage-chez-liksi/</link>
      <pubDate>Tue, 05 Nov 2024 09:00:00 +0000</pubDate>
      <guid>/2024/11/05/lexperience-de-stage-chez-liksi/</guid>
      <description>&lt;p&gt;&lt;strong&gt;Bonjour Claire et Ophélia, pouvez-vous vous présenter ?&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Claire&lt;/strong&gt; : Hello, je m’appelle Claire et je suis actuellement étudiante à l’INSA de Rennes. J’effectue actuellement mon deuxième stage chez Liksi.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Ophélia&lt;/strong&gt; : Et moi je suis Ophélia, je suis étudiante en 4ème année à l’INSA de Rennes.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Vous êtes en stage chez Liksi depuis quand ?&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Claire&lt;/strong&gt; : Mon premier stage avait commencé en avril et terminé en septembre 2023, et je suis revenue en mars 2024 pour mon stage de fin d’étude.&lt;/p&gt;</description>
    </item>
    <item>
      <title>React a son compilateur !</title>
      <link>/2024/09/05/react-a-son-compilateur/</link>
      <pubDate>Thu, 05 Sep 2024 06:00:00 +0000</pubDate>
      <guid>/2024/09/05/react-a-son-compilateur/</guid>
      <description>&lt;p&gt;En avril 2024, la première Release Candidate de React 19 est publiée. Comme nouveauté, nous avons, de nouveaux &lt;code&gt;hooks&lt;/code&gt;, les &lt;code&gt;server components&lt;/code&gt; et d’autres améliorations très pratiques, comme &lt;code&gt;ref&lt;/code&gt; disponible comme propriété par défaut dans tous les composants fonctionnels.&lt;/p&gt;&#xA;&lt;p&gt;En parallèle de ces nouveautés pour la nouvelle version, React a annoncé l’introduction d’un compilateur !&lt;/p&gt;&#xA;&lt;h1 id=&#34;pourquoi-un-compilateur-&#34;&gt;Pourquoi un compilateur ?&lt;/h1&gt;&#xA;&lt;p&gt;La version 16.8 en 2019 de React introduit les hooks, rendant la réutilisation de code plus facile, et l’organisation de code plus flexible. Cependant avec cette amélioration viennent 2 hooks qui ne sont pas là pour faciliter la vie des développeurs, j’ai nommé &lt;code&gt;useMemo&lt;/code&gt; et &lt;code&gt;useCallback&lt;/code&gt;. Ces hooks sont avant tout destinés à améliorer les performances de React, en précisant quand il est nécessaire de recalculer une valeur ou de recréer une fonction.&lt;/p&gt;</description>
    </item>
    <item>
      <title> Retours sur le Devoxx Paris 2024</title>
      <link>/2024/06/05/retours-sur-le-devoxx-paris-2024/</link>
      <pubDate>Wed, 05 Jun 2024 13:05:00 +0000</pubDate>
      <guid>/2024/06/05/retours-sur-le-devoxx-paris-2024/</guid>
      <description>&lt;p&gt;Cette année ce sont 3 membres de Liksi qui ont eu l&amp;rsquo;occasion de participer à l&amp;rsquo;événement français incontournable pour les développeurs passionnés de nouvelles technologies et d&amp;rsquo;innovation : le &lt;a href=&#34;https://www.devoxx.fr/&#34;&gt;Devoxx&lt;/a&gt; Paris.&lt;/p&gt;&#xA;&lt;p&gt;Près de &lt;strong&gt;4500 visiteurs par jour&lt;/strong&gt; ont pu assister aux &lt;strong&gt;230 conférences&lt;/strong&gt; programmées lors de cette édition. Dans cet article, &lt;em&gt;Thomas&lt;/em&gt;, &lt;em&gt;Mathieu&lt;/em&gt; et &lt;em&gt;Antoine&lt;/em&gt; vous partagent leurs recommandations pour cette édition 2024.&lt;/p&gt;&#xA;&lt;h2 id=&#34;mercredi&#34;&gt;Mercredi&lt;/h2&gt;&#xA;&lt;h3 id=&#34;high-speed-ddd-revisited&#34;&gt;&lt;a href=&#34;https://www.youtube.com/watch?v=chOTMfhiNgs&#34;&gt;High-Speed DDD (revisited)&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;Dans cette conférence, &lt;em&gt;Thomas Pierrain&lt;/em&gt; aborde la notion de dette métier engendrée et explique qu&amp;rsquo;elle est créée presque automatiquement dans un contexte de développement logiciel soutenu.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Optimiser la Performance Web : Décryptage des Métriques et Bonnes Pratiques pour Développeurs</title>
      <link>/2024/02/13/optimiser-la-performance-web-decryptage-des-metriques-et-bonnes-pratiques-pour-developpeurs/</link>
      <pubDate>Tue, 13 Feb 2024 14:43:05 +0000</pubDate>
      <guid>/2024/02/13/optimiser-la-performance-web-decryptage-des-metriques-et-bonnes-pratiques-pour-developpeurs/</guid>
      <description>&lt;p&gt;Prendre en compte la performance web est crucial pour les développeurs.&lt;/p&gt;&#xA;&lt;p&gt;En effet, plus de 50 % des utilisateurs quittent un site web s’il met plus de 3 secondes à se charger.&lt;/p&gt;&#xA;&lt;p&gt;Cette performance se mesure selon différents indicateurs : FCP, LCP, TTI, etc.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Mais que signifient vraiment ces acronymes ? Comment les prendre en compte lors du développement et comment les mesurer ?&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;1. Comment évaluer les performances d&amp;rsquo;un site ?&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Mettre en place une authentification custom avec Keycloak</title>
      <link>/2024/02/06/mettre-en-place-une-authentification-custom-avec-keycloak/</link>
      <pubDate>Tue, 06 Feb 2024 09:31:59 +0000</pubDate>
      <guid>/2024/02/06/mettre-en-place-une-authentification-custom-avec-keycloak/</guid>
      <description>&lt;h1 id=&#34;authentification-custom-avec-keycloak&#34;&gt;Authentification custom avec Keycloak&lt;/h1&gt;&#xA;&lt;p&gt;Lors de la modernisation d&amp;rsquo;applications, il est très fréquent que l&amp;rsquo;on souhaite ajouter Keycloak à notre stack pour lui déléguer l&amp;rsquo;authentification de nos utilisateurs. Cependant, il peut être compliqué de migrer directement tous ses utilisateurs dans Keycloak afin de suivre le flow classique d&amp;rsquo;authentification. Souvent, une première version est mise en place qui a pour but d&amp;rsquo;authentifier notre utilisateur via Keycloak mais de conserver la base d&amp;rsquo;utilisateurs côté legacy. Je vous propose dans cet article d&amp;rsquo;implémenter cette logique.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Playwright - Le dramaturge de vos tests e2e</title>
      <link>/2024/01/25/playwright-le-dramaturge-de-vos-tests-e2e/</link>
      <pubDate>Thu, 25 Jan 2024 12:30:40 +0000</pubDate>
      <guid>/2024/01/25/playwright-le-dramaturge-de-vos-tests-e2e/</guid>
      <description>&lt;p&gt;Chez LIKSI, &lt;strong&gt;l&amp;rsquo;émulation technique&lt;/strong&gt; est forte et les moments de partages sont nombreux. C&amp;rsquo;est suite à une conférence de &lt;strong&gt;Florent VAUTION&lt;/strong&gt; (Head of QA @ Ouest-France) à nos bureaux de Rennes, que j&amp;rsquo;ai eu l&amp;rsquo;idée de regarder du côté de &lt;strong&gt;Playwright&lt;/strong&gt;, lui ayant préféré Cypress jusqu&amp;rsquo;à présent. Cet article n&amp;rsquo;a pas vocation à être exhaustif mais à vous présenter les grandes lignes et fonctionnalités principales.&lt;/p&gt;&#xA;&lt;p&gt;Le bien nommé Playwright (de l&amp;rsquo;anglais &amp;ldquo;dramaturge&amp;rdquo;) vous permet, à l&amp;rsquo;instar de &lt;a href=&#34;https://github.com/cypress-io/cypress&#34;&gt;Cypress&lt;/a&gt;, de mettre en scène des scénarios de tests end-to-end &lt;strong&gt;fiables et automatisables&lt;/strong&gt;. La release initiale de ce framework sous &lt;strong&gt;licence opensource&lt;/strong&gt; &lt;em&gt;Apache-2.0&lt;/em&gt; date du &lt;strong&gt;31/01/2020&lt;/strong&gt; et compte, à l&amp;rsquo;écriture de cet article, pas moins de &lt;strong&gt;56.8k&lt;/strong&gt; stars sur &lt;a href=&#34;https://github.com/microsoft/playwright&#34;&gt;Github&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>La révolution Silencieuse des Frameworks Front-End</title>
      <link>/2024/01/15/la-revolution-silencieuse-des-frameworks-front-end/</link>
      <pubDate>Mon, 15 Jan 2024 09:14:41 +0000</pubDate>
      <guid>/2024/01/15/la-revolution-silencieuse-des-frameworks-front-end/</guid>
      <description>&lt;h2 id=&#34;pourquoi-&#34;&gt;Pourquoi ?&lt;/h2&gt;&#xA;&lt;p&gt;En plongeant dans la préparation d&amp;rsquo;une présentation sur &lt;a href=&#34;https://www.solidjs.com/&#34;&gt;SolidJS&lt;/a&gt;, je me suis retrouvé à explorer les performances de ce framework ( &lt;em&gt;car c&amp;rsquo;est un de ses atouts majeurs )&lt;/em&gt; tout en le comparant aux mastodontes &lt;a href=&#34;https://fr.react.dev/&#34;&gt;React&lt;/a&gt;, &lt;a href=&#34;https://angular.io/&#34;&gt;Angular &lt;/a&gt;et &lt;a href=&#34;https://vuejs.org/&#34;&gt;Vue&lt;/a&gt;. Je suis ainsi retombé sur le site &lt;a href=&#34;https://github.com/krausest/js-framework-benchmark&#34;&gt;https://github.com/krausest/js-framework-benchmark&lt;/a&gt; dont je m&amp;rsquo;étais servi pour une précédente présentation sur Svelte. Je me suis donc amusé à comparer les principaux frameworks avec leurs déclinaisons les plus utilisées et fait un petit flash-back sur 2021 lorsqu&amp;rsquo;on avait fait cette présentation Svelte. On va ainsi pouvoir apprécier dans cet article comment les différents frameworks ont évolué en terme de performance.&lt;br&gt;&#xA;&lt;br&gt;&#xA;Le but ici n&amp;rsquo;est pas de dire quel est le meilleur framework  mais de parler de performances brutes sur des gestions lourdes comme un tableau de 1000 lignes (chose qu&amp;rsquo;on évite de faire, préférant &lt;em&gt;lazy-loader&lt;/em&gt;). S&amp;rsquo;il est clair que les différents frameworks cités dans cet article sont tous capables de le réaliser rapidement, il s&amp;rsquo;agit ici d&amp;rsquo;apprécier comment ils optimisent ces rendus un peu plus lourds.  Mais soyons certains que &lt;strong&gt;la majorité de vos utilisateurs ne fera aucune différence sur l&amp;rsquo;appréciation de votre application si ce tableau en React met &amp;ldquo;100ms&amp;rdquo; de plus à rendre que le même composant sur Svelte&lt;/strong&gt;. Les problèmes de performances sont bien plus souvent liés à un transfert excessif de données, une mauvaise gestion de la mémoire, une gestion de votre base de données inefficace et bien d&amp;rsquo;autres facteurs&amp;hellip;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Une journée à l&#39;Agile Tour Rennes 2023</title>
      <link>/2023/10/23/une-journee-a-lagile-tour-rennes-2023/</link>
      <pubDate>Mon, 23 Oct 2023 13:45:17 +0000</pubDate>
      <guid>/2023/10/23/une-journee-a-lagile-tour-rennes-2023/</guid>
      <description>&lt;p&gt;En plein cœur de Rennes au Couvent des Jacobins a eu lieu la &lt;strong&gt;14ème édition de l’Agile Tour&lt;/strong&gt; rennais les 19 et 20 octobre 2023. L’Agile Tour est un évènement réunissant des professionnels et des passionnés du monde de l’agilité autour de différents ateliers et conférences afin de promouvoir et d’échanger autour des pratiques agiles dans le domaine du développement de logiciels et de la gestion de projet.&lt;/p&gt;&#xA;&lt;p&gt;Marc-Antoine Touin et moi, Yoann Delion, tous deux développeurs chez Liksi et fraîchement certifiés PSM1, avons décidé de consacrer une journée à l&amp;rsquo;Agile Tour Rennes le 19 octobre 2023 et le 20 octobre 2023. Rejoignant l&amp;rsquo;événement avec Arwen, cheffe de projet chez Liksi, et Joffrey, développeur également à Liksi, nous avons exploré ensemble les dernières tendances en matière d&amp;rsquo;agilité.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Sortie de Bun v1.0 !</title>
      <link>/2023/09/26/sortie-de-bun-v1.0/</link>
      <pubDate>Tue, 26 Sep 2023 06:00:41 +0000</pubDate>
      <guid>/2023/09/26/sortie-de-bun-v1.0/</guid>
      <description>&lt;p&gt;Cela fait maintenant 1 an qu’on entend régulièrement parler de Bun et ce 8 septembre dernier, Bun sort sa première version “stable”, Bun v1.0.&lt;/p&gt;&#xA;&lt;p&gt;Mais alors Bun, c’est quoi ? À première vue, c’est un n-ième runtime javascript venu concurrencer Node.js et Deno. Mais en regardant de plus près, on se rend compte que c’est un vrai couteau suisse qui remplace la plupart des outils qu’on utilise actuellement dans l’écosystème Javascript.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Comment migrer un composant React/Redux vieillissant vers React-Query ?</title>
      <link>/2023/07/04/comment-migrer-un-composant-react/redux-vieillissant-vers-react-query/</link>
      <pubDate>Tue, 04 Jul 2023 10:24:34 +0000</pubDate>
      <guid>/2023/07/04/comment-migrer-un-composant-react/redux-vieillissant-vers-react-query/</guid>
      <description>&lt;p&gt;Dan Abramov, le créateur de Redux l’a dit lui-même : “You Might Not Need Redux” (vous n’avez peut-être pas besoin de Redux). Mais dans ce cas, on peut être tenté d’utiliser d&amp;rsquo;autres librairies tierces pour nous aider dans le développement de notre application, tout particulièrement pour gérer notre cache ou nos différents appels API. Je vais vous présenter dans cet article &lt;strong&gt;React-Query&lt;/strong&gt;, un gestionnaire de données nous donnant un contrôle simple et puissant sur la récupération et la mise en cache de nos données serveur, et une gestion simplifiée des erreurs.&lt;/p&gt;</description>
    </item>
    <item>
      <title> Retours sur le Devoxx Paris 2023</title>
      <link>/2023/04/25/retours-sur-le-devoxx-paris-2023/</link>
      <pubDate>Tue, 25 Apr 2023 07:23:31 +0000</pubDate>
      <guid>/2023/04/25/retours-sur-le-devoxx-paris-2023/</guid>
      <description>&lt;p&gt;Habitués du BreizhCamp, cette année, nous avons eu l&amp;rsquo;occasion de participer à l&amp;rsquo;événement français incontournable pour les développeurs passionnés de nouvelles technologies et d&amp;rsquo;innovation : le &lt;a href=&#34;https://www.devoxx.fr/&#34;&gt;Devoxx &lt;/a&gt;Paris.&lt;/p&gt;&#xA;&lt;p&gt;Près de &lt;strong&gt;3000 participants&lt;/strong&gt; ont assisté aux &lt;strong&gt;200 conférences&lt;/strong&gt; programmées lors de cette édition. Poulpi a été représenté par nos envoyés spéciaux, Yoann &amp;amp; Mathieu. Dans cet article, ils partageront leur expérience et les tendances qui ont marqué cette édition 2023.&lt;/p&gt;&#xA;&lt;h2 id=&#34;mercredi&#34;&gt;Mercredi&lt;/h2&gt;&#xA;&lt;h3 id=&#34;rendons-le-ddd-aux-devs&#34;&gt;&lt;a href=&#34;https://www.youtube.com/watch?v=3jI6TpzLU1c&#34;&gt;Rendons le DDD aux devs&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;div class=&#34;article-single__content__image__container&#34;&gt;&#xA;  &#xA;    &#xA;    &#xA;    &#xA;    &#xA;    &#xA;      &#xA;      &lt;img&#xA;        class=&#34;article-single__content__image&#34;&#xA;        src=&#34;/images/uploads/ddd_blue_book_hu_e922cd2b0fa1fb82.jpg&#34;&#xA;        alt=&#34;&#34;&#xA;      /&gt;&#xA;    &#xA;    &#xA;  &#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;Au cours de cette &amp;ldquo;University&amp;rdquo;, Dorra Bartaguiz et Arnaud Thiefaine nous proposent de refactoriser pas à pas une fonction en appliquant, à chaque étape, les principes du Domain-Driven Design (DDD). Afin d&amp;rsquo;effectuer ce refactoring en toute sécurité, nous nous appuyons sur des tests &amp;ldquo;golden master&amp;rdquo; qui garantissent que notre ancien code et notre nouveau code remplissent toujours la même fonction métier. Ensuite, le point d&amp;rsquo;entrée pour commencer le refactor est d&amp;rsquo;identifier les code smells.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Communiquez vos intentions avec les fonctions d&#39;extension Kotlin</title>
      <link>/2023/04/13/communiquez-vos-intentions-avec-les-fonctions-dextension-kotlin/</link>
      <pubDate>Thu, 13 Apr 2023 12:38:54 +0000</pubDate>
      <guid>/2023/04/13/communiquez-vos-intentions-avec-les-fonctions-dextension-kotlin/</guid>
      <description>&lt;p&gt;Les &lt;strong&gt;fonctions d&amp;rsquo;extension&lt;/strong&gt; Kotlin sont une des fonctionnalités les plus puissantes de Kotlin. Qui n&amp;rsquo;a jamais voulu rajouter une fonctionnalité à une librairie, se débarrasser de toutes ses classes &lt;code&gt;Util&lt;/code&gt;, améliorer la lisibilité du code dans un traitement complexe ? Les fonctions d&amp;rsquo;extension nous permettent de faire tout ça et plus.&#xA;Mais alors attention, l&amp;rsquo;oncle Ben nous le disait il y a bien longtemps déjà :&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;With great Power comes great Responsibility&lt;/p&gt;</description>
    </item>
    <item>
      <title>Miditech LIKSI : récap de l’année 2022</title>
      <link>/2023/04/05/miditech-liksi-recap-de-lannee-2022/</link>
      <pubDate>Wed, 05 Apr 2023 14:00:38 +0000</pubDate>
      <guid>/2023/04/05/miditech-liksi-recap-de-lannee-2022/</guid>
      <description>&lt;p&gt;Dans le secteur de la tech, travailler sa culture technique est un point essentiel. Plus que ça, en tant que développeur, il est indispensable de nourrir sa passion, mais aussi de s&amp;rsquo;améliorer continuellement pour s’adapter aux évolutions. Chez Liksi, on le revendique haut et fort : la passion et la “culture tech” sont deux notions chères à notre cœur. Voilà pourquoi nous avons mis en place les miditechs.&lt;/p&gt;&#xA;&lt;h2 id=&#34;miditech-kesako-&#34;&gt;Miditech kesako ?&lt;/h2&gt;&#xA;&lt;p&gt;&lt;br&gt;&#xA;Les miditechs sont des rendez-vous internes durant lesquels un ou plusieurs collaborateurs proposent une présentation sur le temps du midi ayant pour objet un sujet technique. Un moment de partage où l’ensemble de l’équipe peut poser ses questions, nourrir sa curiosité sur des sujets techniques pertinents et cela tous les 15 jours.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Personnaliser OpenAPI avec SpringDoc</title>
      <link>/2023/03/06/personnaliser-openapi-avec-springdoc/</link>
      <pubDate>Mon, 06 Mar 2023 12:49:26 +0000</pubDate>
      <guid>/2023/03/06/personnaliser-openapi-avec-springdoc/</guid>
      <description>&lt;h2 id=&#34;contexte&#34;&gt;Contexte&lt;/h2&gt;&#xA;&lt;p&gt;Nous développons une application pour notre bien aimé coffee shop local “Octopuccino”, nous avons un backend avec Kotlin Springboot exposant des endpoints. Chaque endpoint a une restriction de sécurité différente.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;le rôle &lt;em&gt;&lt;strong&gt;CUSTOMER&lt;/strong&gt;&lt;/em&gt; : peut consulter le menu des cafés que nous proposons (&lt;code&gt;GET /menu&lt;/code&gt;). Il peut ensuite passer une commande (&lt;code&gt;POST /orders&lt;/code&gt;) pour qu’elle soit ajoutée à la liste des commandes.&lt;/li&gt;&#xA;&lt;li&gt;le rôle &lt;em&gt;&lt;strong&gt;BARISTA&lt;/strong&gt;&lt;/em&gt; : prépare la commande (&lt;code&gt;/PUT /orders/{id}/prepare&lt;/code&gt;) et la sert (&lt;code&gt;/PUT /orders/{id}/serve&lt;/code&gt;).&lt;/li&gt;&#xA;&lt;li&gt;le rôle &lt;em&gt;&lt;strong&gt;OWNER&lt;/strong&gt;&lt;/em&gt; : le gérant du café, qui a un accès total à la BDD des employés.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;article-single__content__image__container&#34;&gt;&#xA;  &#xA;    &#xA;    &#xA;    &#xA;    &#xA;    &#xA;      &#xA;      &lt;img&#xA;        class=&#34;article-single__content__image&#34;&#xA;        src=&#34;/images/uploads/sch%C3%A9ma-coffeshop_hu_d20636c97c4ad4ea.png&#34;&#xA;        alt=&#34;&#34;&#xA;      /&gt;&#xA;    &#xA;    &#xA;  &#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;Dans notre équipe, la QA fait des tests end-to-end comprenant des appels à notre API. Notre API est déjà documentée grâce à une documentation &lt;a href=&#34;https://www.openapis.org/&#34;&gt;OpenAPI&lt;/a&gt; qu&amp;rsquo;elle consulte avec une &lt;a href=&#34;https://swagger.io/tools/swagger-ui/&#34;&gt;UI Swagger&lt;/a&gt;, le tout généré avec &lt;a href=&#34;https://springdoc.org/&#34;&gt;SpringDoc OpenApi&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Loisirs à LIKSI : récap de l’année 2022</title>
      <link>/2023/02/13/loisirs-a-liksi-recap-de-lannee-2022/</link>
      <pubDate>Mon, 13 Feb 2023 12:53:18 +0000</pubDate>
      <guid>/2023/02/13/loisirs-a-liksi-recap-de-lannee-2022/</guid>
      <description>&lt;p&gt;Les activités entre collaborateurs font partie de notre quotidien chez LIKSI. Plus que ça, c&amp;rsquo;est pour nous un rituel, un moment de partage, de cohésion qui permet de renforcer les liens entre les membres de l&amp;rsquo;équipe et de créer une culture d&amp;rsquo;entreprise positive et surtout bienveillante.&lt;/p&gt;&#xA;&lt;h2 id=&#34;du-coup-comment-ça-sorganise-&#34;&gt;Du coup, comment ça s’organise ?&lt;/h2&gt;&#xA;&lt;p&gt;Nous avons décidé de laisser les collaborateurs de LIKSI décider des loisirs qu’ils souhaitent faire. Ainsi, la mise en place de ce rituel se fait en interne grâce à des sondages. Tout le monde participe donc au choix des activités et peut en suggérer de nouvelles. L’objectif derrière tout ça, c&amp;rsquo;est évidemment de rassembler un maximum de personnes pour passer un moment agréable que ce soit avec une activité sportive ou bien intellectuelle (ou les deux !) !&lt;/p&gt;</description>
    </item>
    <item>
      <title>Pourquoi passer à Spring Boot 3</title>
      <link>/2023/01/16/pourquoi-passer-a-spring-boot-3/</link>
      <pubDate>Mon, 16 Jan 2023 09:57:14 +0000</pubDate>
      <guid>/2023/01/16/pourquoi-passer-a-spring-boot-3/</guid>
      <description>&lt;p&gt;À chaque sortie d&amp;rsquo;une nouvelle version majeure d&amp;rsquo;un framework, nous sommes tiraillés entre l&amp;rsquo;envie de mettre à jour notre stack au plus vite afin de bénéficier des nouvelles features et la peur du coût engendré par cette mise à jour à cause des changements non rétrocompatibles et/ou la survenue d&amp;rsquo;éventuelles régressions.&#xA;Dans cet article, nous allons étudier le bénéfice risque/gain de ce passage à Spring Boot 3 afin de pouvoir répondre à la question &amp;ldquo;Pourquoi passer à Spring Boot 3 ?&amp;rdquo;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Entretenir la culture technique en entreprise</title>
      <link>/2023/01/09/entretenir-la-culture-technique-en-entreprise/</link>
      <pubDate>Mon, 09 Jan 2023 13:40:24 +0000</pubDate>
      <guid>/2023/01/09/entretenir-la-culture-technique-en-entreprise/</guid>
      <description>&lt;h2 id=&#34;le-code-qui-marche-ou-après-moi-le-déluge&#34;&gt;Le &amp;ldquo;code qui marche&amp;rdquo; ou &amp;ldquo;après moi le déluge&amp;rdquo;&lt;/h2&gt;&#xA;&lt;p&gt;But premier des applications logiciels pendant de longues années, il est aujourd’hui clair que faire du &amp;ldquo;code qui marche&amp;rdquo;, c&amp;rsquo;est-à-dire qui se concentre uniquement sur la &lt;strong&gt;finalité&lt;/strong&gt; de la demande et non sur la &lt;strong&gt;manière d&amp;rsquo;y parvenir&lt;/strong&gt;, ne suffit plus. Le mouvement du &lt;em&gt;Software Craftsmanship&lt;/em&gt; étant passé par là, &lt;strong&gt;il apparaît aujourd&amp;rsquo;hui indispensable d’allier la qualité de fabrication de nos logiciels à son bon fonctionnement.&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Les propriétés méconnues du State of CSS 2022</title>
      <link>/2022/10/13/les-proprietes-meconnues-du-state-of-css-2022/</link>
      <pubDate>Thu, 13 Oct 2022 13:40:24 +0000</pubDate>
      <guid>/2022/10/13/les-proprietes-meconnues-du-state-of-css-2022/</guid>
      <description>&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;&#xA;&lt;p&gt;Ça y est le &lt;a href=&#34;https://survey.devographics.com/survey/state-of-css/2022/&#34;&gt;State of CSS 2022&lt;/a&gt; est tombé ! C’est le sondage annuel questionnant nos connaissances et utilisations du CSS. En le complétant, je me suis rendu compte que pas mal de fonctionnalités m’étaient inconnues.&lt;/p&gt;&#xA;&lt;p&gt;Cet article va donc passer en revue quelques propriétés CSS utiles qui vous sont peut-être méconnues.&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;&lt;strong&gt;Cet article contient des démos qui peuvent ne pas être compatible avec votre navigateur.&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;container&#34;&gt;@container&lt;/h2&gt;&#xA;&lt;p&gt;Le &lt;a href=&#34;https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Container_Queries&#34;&gt;CSS Container Queries&lt;/a&gt; permettent d&amp;rsquo;effectuer des &lt;a href=&#34;https://developer.mozilla.org/fr/docs/Web/CSS/Media_Queries/Using_media_queries&#34;&gt;Media Queries&lt;/a&gt; non pas en fonction du ViewPort, mais d&amp;rsquo;un élément HTML de notre DOM.&lt;/p&gt;</description>
    </item>
    <item>
      <title>L’onboarding à LIKSI</title>
      <link>/2022/09/29/lonboarding-a-liksi/</link>
      <pubDate>Thu, 29 Sep 2022 13:40:24 +0000</pubDate>
      <guid>/2022/09/29/lonboarding-a-liksi/</guid>
      <description>&lt;h2 id=&#34;une-carte-dembarquement-pour-liksi&#34;&gt;Une carte d’embarquement pour Liksi&lt;/h2&gt;&#xA;&lt;p&gt;Mais comment se déroule l’intégration au sein de la team LIKSI ? Ou bien comme on dit de nos jours “l’onboarding” ? Aujourd’hui on vous fait entrer dans les backstages, attachez bien votre ceinture et c’est parti !&lt;/p&gt;&#xA;&lt;h3 id=&#34;lonboarding-quésaco-&#34;&gt;L’onboarding quésaco ?&lt;/h3&gt;&#xA;&lt;p&gt;Une petite piqûre de rappel pour ceux à qui ce mot pourrait paraître étrange ou étranger : “Onboarding” ou embarquement en français, est un processus d’accueil et d’intégration, regroupant toutes les pratiques ainsi que l’organisation autour de l&amp;rsquo;arrivée d’un nouveau collaborateur. Si l’on veut surfer sur la métaphore de l’avion, ce sont tous les événements se trouvant AVANT le décollage.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Retour sur le BreizhCamp 2022 !</title>
      <link>/2022/07/08/retour-sur-le-breizhcamp-2022/</link>
      <pubDate>Fri, 08 Jul 2022 13:40:24 +0000</pubDate>
      <guid>/2022/07/08/retour-sur-le-breizhcamp-2022/</guid>
      <description>&lt;p&gt;On s’en remet tout juste !&lt;/p&gt;&#xA;&lt;p&gt;L’édition 2022 du BreizhCamp a bel et bien tenu ses promesses avec une organisation hyper qualitative et des conférences toujours au niveau.&lt;/p&gt;&#xA;&lt;h2 id=&#34;petit-retour-sur-ces-3-jours&#34;&gt;Petit retour sur ces 3 jours…&lt;/h2&gt;&#xA;&lt;p&gt;Si vous étiez présents au &lt;strong&gt;BreizhCamp&lt;/strong&gt;, peu de chance que vous soyez passés à côté du stand Liksi ! Toute la team s’était déplacée pour ces 3 jours. Une occasion assez unique de partager en équipe cet événement,  autant dans les amphis que sur notre stand. Ce sont donc tous les visages de Liksi qui se sont croisés sur notre stand, pour échanger entre dév (mais pas que !), partager les retours de conférences et présenter Liksi et ce qui fait notre ADN.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Des records dans mon code ? (Partie 1)</title>
      <link>/2022/07/07/des-records-dans-mon-code-partie-1/</link>
      <pubDate>Thu, 07 Jul 2022 13:40:24 +0000</pubDate>
      <guid>/2022/07/07/des-records-dans-mon-code-partie-1/</guid>
      <description>&lt;p&gt;&lt;strong&gt;Quoi ? Java évolue ?&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;div class=&#34;article-single__content__image__container&#34;&gt;&#xA;  &#xA;    &#xA;    &#xA;    &#xA;    &#xA;    &#xA;      &#xA;      &lt;img&#xA;        class=&#34;article-single__content__image&#34;&#xA;        src=&#34;/images/uploads/th%C3%A9orie-de-l-%C3%A9volution-homme-118185128_hu_9700abc732c3a525.jpg&#34;&#xA;        alt=&#34;La théorie de l&amp;#39;évolution&#34;&#xA;      /&gt;&#xA;    &#xA;    &#xA;  &#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;Une version tous les 6 mois, c&amp;rsquo;est aujourd&amp;rsquo;hui le cycle de sortie des versions de notre bon vieux Java. Force est de constater que le contenu de ces versions n&amp;rsquo;est pas révolutionnaire et que le langage peine à sortir des &lt;em&gt;features&lt;/em&gt; visibles au jour le jour dans notre développement sans avoir recours aux &lt;em&gt;release preview&lt;/em&gt; retardant, de fait, inexorablement leur arrivée dans notre IDE favori.&lt;/p&gt;</description>
    </item>
    <item>
      <title>BreizhCamp 2022 : le retour !</title>
      <link>/2022/06/25/breizhcamp-2022-le-retour/</link>
      <pubDate>Sat, 25 Jun 2022 13:40:24 +0000</pubDate>
      <guid>/2022/06/25/breizhcamp-2022-le-retour/</guid>
      <description>&lt;p&gt;On l’a attendu, il nous a manqué et nous sommes si heureux de le retrouver ! Le BreizhCamp est de retour et bien évidemment il nous était impossible de passer à côté.&lt;/p&gt;&#xA;&lt;p&gt;Plus que quelques jours avant cette 10ème édition qui se déroule du 29 juin au 1er juillet 2022 et promet déjà de très belles choses !&lt;/p&gt;&#xA;&lt;p&gt;Le programme est alléchant du côté de l’organisation globale, puisque nous aurons trois intenses journées pour mettre à jour nos compétences et découvrir les dernières news côté techno.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Des tests d&#39;intégration .NET avec Docker</title>
      <link>/2022/04/11/des-tests-dintegration-.net-avec-docker/</link>
      <pubDate>Mon, 11 Apr 2022 13:40:24 +0000</pubDate>
      <guid>/2022/04/11/des-tests-dintegration-.net-avec-docker/</guid>
      <description>&lt;h3 id=&#34;contexte&#34;&gt;Contexte&lt;/h3&gt;&#xA;&lt;p&gt;A vous développeurs qui pratiquez le .NET, vous êtes-vous déjà posé cette question : &amp;ldquo;Comment diable peut-on faire des tests d&amp;rsquo;intégration en .NET localement ?&amp;rdquo;.&lt;/p&gt;&#xA;&lt;p&gt;L’objectif de cet article va être de faire des tests intégrations en .NET. Ceux-ci vont utiliser une instance Docker en démarrant les conteneurs depuis le code. Le concept est repris de la librairie Testcontainers, en Java, qui permet de facilement démarrer des conteneurs Docker depuis le code.Si vous ne connaissez pas cette librairie, il y a ce très bon article qui détaille son fonctionnement : &lt;a href=&#34;https://www.liksi.tech/2020/11/12/isolez-vos-tests-sans-compromis-avec-testcontainers/&#34;&gt;https://www.liksi.tech/2020/11/12/isolez-vos-tests-sans-compromis-avec-testcontainers/&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Quand y en a pour un, y’en a pas toujours pour l’autre</title>
      <link>/2022/03/11/quand-y-en-a-pour-un-yen-a-pas-toujours-pour-lautre/</link>
      <pubDate>Fri, 11 Mar 2022 13:40:24 +0000</pubDate>
      <guid>/2022/03/11/quand-y-en-a-pour-un-yen-a-pas-toujours-pour-lautre/</guid>
      <description>&lt;p&gt;Avec l’émergence des services de PaaS ou d’IaaS, l’écosystème IT est en grand chamboulement ces dernières décennies. Les bénéfices apportés par ces solutions séduisent de nombreuses entreprises pour réduire leur coût opérationnel et délivrer de la valeur au plus vite.&lt;/p&gt;&#xA;&lt;p&gt;D’un point de vue purement technique, là où historiquement un service applicatif était un monolithe déployé sur une vm (ou un serveur bare-metal), l&amp;rsquo;actualité se trouve donc dans les architectures microservices déployées sur des orchestrateurs de conteneurs. Cette approche conceptuelle a plusieurs bénéfices:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Intégrer les Custom Elements dans les frameworks modernes</title>
      <link>/2022/02/10/integrer-les-custom-elements-dans-les-frameworks-modernes/</link>
      <pubDate>Thu, 10 Feb 2022 13:40:24 +0000</pubDate>
      <guid>/2022/02/10/integrer-les-custom-elements-dans-les-frameworks-modernes/</guid>
      <description>&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;&#xA;&lt;p&gt;Avec le temps, les frameworks frontend se multiplient. Ceci entraîne parfois une diversification de la stack technique Frontend, ce qui limite la possibilité de réutiliser du code, car il n’y a pas d’interopérabilité entre les différents frameworks.&lt;/p&gt;&#xA;&lt;p&gt;On pourrait se dire qu’une solution simple est d’être cohérent au niveau de la stack technique. Si un projet “A” a mis à disposition une bibliothèque de composants fait en React, tout nouveau Front n’a qu’à utiliser React. Malheureusement, ce n’est pas si simple. On peut avoir par exemple un legacy en AngularJS qu’il faut continuer à maintenir.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Chiffrer ses secrets avec Ansible Vault</title>
      <link>/2021/12/20/chiffrer-ses-secrets-avec-ansible-vault/</link>
      <pubDate>Mon, 20 Dec 2021 13:40:24 +0000</pubDate>
      <guid>/2021/12/20/chiffrer-ses-secrets-avec-ansible-vault/</guid>
      <description>&lt;p&gt;La gestion de secrets dans la CI/CD peut être compliquée : il est parfois difficile de trouver le bon compromis entre sécurité et facilité d&amp;rsquo;utilisation. Ansible Vault est un outil qui propose une mitigation de ce problème.&lt;/p&gt;&#xA;&lt;h2 id=&#34;étape-1--les-bases&#34;&gt;Étape 1 : Les bases&lt;/h2&gt;&#xA;&lt;p&gt;Je vais commencer avec un playbook simple, qui effectue une seule tâche : il affiche le mot de passe de notre service dans la console. Par souci de modularité (et plus tard de sécurité), le nom du service ainsi que le mot de passe sont stockés dans un fichier de variables, en dehors du playbook.&lt;/p&gt;</description>
    </item>
    <item>
      <title>JAVA 17 : les Sealed Classes</title>
      <link>/2021/11/30/java-17-les-sealed-classes/</link>
      <pubDate>Tue, 30 Nov 2021 13:40:24 +0000</pubDate>
      <guid>/2021/11/30/java-17-les-sealed-classes/</guid>
      <description>&lt;p&gt;&lt;strong&gt;Ca y est, Java 17 est là !&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;Cette nouvelle version apporte quelques nouveautés que nous avons suivi de près chez Liksi. Elle est d’autant plus importante qu’elle a le statut LTS, ce qui veut dire qu’elle servira de version de base pour les projets à venir. Nous avons souhaité vous partager dans cet article une des nouvelles features qu&amp;rsquo;elle embarque : la notion de &lt;em&gt;s__ealed classes&lt;/em&gt;, qui étaient en preview depuis Java 15.&lt;/p&gt;</description>
    </item>
    <item>
      <title>JAVA 17 : du Pattern Matching dans vos switchs</title>
      <link>/2021/10/21/java-17-du-pattern-matching-dans-vos-switchs/</link>
      <pubDate>Thu, 21 Oct 2021 13:40:24 +0000</pubDate>
      <guid>/2021/10/21/java-17-du-pattern-matching-dans-vos-switchs/</guid>
      <description>&lt;p&gt;&lt;strong&gt;Ca y est, Java 17 est là !&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;Cette nouvelle version apporte quelques nouveautés que nous avons suivi de près chez Liksi. Elle est d’autant plus importante qu’elle a le statut LTS, ce qui veut dire qu’elle servira de version de base pour les projets à venir. Nous avons souhaité vous partager dans cet article une des nouvelles features qu&amp;rsquo;elle embarque : la notion de &lt;em&gt;pattern matching dans les instructions switch&lt;/em&gt;, qui arrive flambant neuve en version preview.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Le télétravail chez LIKSI</title>
      <link>/2021/10/12/le-teletravail-chez-liksi/</link>
      <pubDate>Tue, 12 Oct 2021 13:40:24 +0000</pubDate>
      <guid>/2021/10/12/le-teletravail-chez-liksi/</guid>
      <description>&lt;p&gt;&lt;strong&gt;On voit enfin le bout de cette pandémie, il est donc temps de faire le point sur nos adaptations à la vie post covid19.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;avant-et-pendant-le-covid19&#34;&gt;Avant et pendant le covid19&lt;/h2&gt;&#xA;&lt;p&gt;Depuis sa création en 2017, et bien avant l’épisode pandémique, le télétravail a toujours été une composante de LIKSI. Il fait partie de l&amp;rsquo;ADN de l&amp;rsquo;entreprise de laisser un maximum d’autonomie à ses collaborateurs. Pour autant le full-remote n’est pas conseillé si nous voulons continuer à développer l’esprit d’équipe et la culture d’entreprise : les gens ont besoin de se voir, d’échanger, de blaguer, de passer du temps ensemble et pas forcément que du temps de travail.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Autoriser l’accès à vos APIs avec Keycloak</title>
      <link>/2021/01/14/autoriser-lacces-a-vos-apis-avec-keycloak/</link>
      <pubDate>Thu, 14 Jan 2021 13:40:24 +0000</pubDate>
      <guid>/2021/01/14/autoriser-lacces-a-vos-apis-avec-keycloak/</guid>
      <description>&lt;p&gt;Authentification &amp;amp; Autorisation&amp;hellip; Les deux vont souvent de paire mais il faut reconnaître qu&amp;rsquo;en tant que développeur on est souvent beaucoup plus à l&amp;rsquo;aise avec le premier que le second. Dans cet article, nous allons discuter d&amp;rsquo;autorisation, de la spécification UMA et des différentes options pour déléguer l&amp;rsquo;autorisation à Keycloak.&lt;/p&gt;&#xA;&lt;h2 id=&#34;keycloak-authentifie-vos-utilisateurs-mais-pas-que&#34;&gt;Keycloak authentifie vos utilisateurs, mais pas que&amp;hellip;&lt;/h2&gt;&#xA;&lt;p&gt;Authentifier un utilisateur vise à montrer qu’il est bien le titulaire de l’identité qu’il présente. Cette identité est souvent matérialisée par un simple identifiant (login) ou une adresse email. Il existe plusieurs moyens de réaliser une authentification, le plus fréquent consiste à vérifier que l’utilisateur connaît bien le mot de passe associé à son login. C’est un problème très connu, auquel la plupart des développeurs doivent apporter une solution un jour ou l’autre.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Comment utiliser du code natif avec Flutter ?</title>
      <link>/2020/12/10/comment-utiliser-du-code-natif-avec-flutter/</link>
      <pubDate>Thu, 10 Dec 2020 13:40:24 +0000</pubDate>
      <guid>/2020/12/10/comment-utiliser-du-code-natif-avec-flutter/</guid>
      <description>&lt;h2 id=&#34;comment-utiliser-du-code-natif-avec-flutter-&#34;&gt;Comment utiliser du code natif avec Flutter ?&lt;/h2&gt;&#xA;&lt;p&gt;Si vous n&amp;rsquo;avez jamais entendu parler de &lt;a href=&#34;https://flutter.dev/&#34;&gt;Flutter&lt;/a&gt;, voici un petit descriptif : Flutter est un framework open source créé par Google pour réaliser des applications multiplateformes (Android, iOS, Linux, Mac, Windows, Google Fuschia et web) à partir d&amp;rsquo;une seule base de code. C&amp;rsquo;est un &lt;em&gt;framework&lt;/em&gt; qui repose sur le langage &lt;a href=&#34;https://dart.dev/&#34;&gt;Dart&lt;/a&gt;, de quelques années son aîné. Ce langage qui parlera peut-être à ceux qui en ont entendu parler en 2013, a été repensé dans une version 2.0 pour la sortie de Flutter, n&amp;rsquo;ayez donc plus crainte. Flutter se différencie des autres solutions multiplateformes notamment grâce à la création d&amp;rsquo;applications qui n&amp;rsquo;utilisent pas de composants natifs ou de &lt;em&gt;webview&lt;/em&gt;. Voici un &lt;a href=&#34;https://www.technologies-ebusiness.com/solutions/pourquoi-flutter&#34;&gt;lien&lt;/a&gt; vers un article très sympathique, si vous souhaitez en savoir plus.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Au secours mon RestTemplate va être deprecated</title>
      <link>/2020/11/26/au-secours-mon-resttemplate-va-etre-deprecated/</link>
      <pubDate>Thu, 26 Nov 2020 13:40:24 +0000</pubDate>
      <guid>/2020/11/26/au-secours-mon-resttemplate-va-etre-deprecated/</guid>
      <description>&lt;p&gt;Pour les plus curieux ou informés d’entre vous il se peut que vous soyez tombés sur ce message dans la doc de notre cher et tendre RestTemplate.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;em&gt;NOTE: As of 5.0, the non-blocking, reactive org.springframework.web.reactive.client.WebClient offers a modern alternative to the RestTemplate with efficient support for both sync and async, as well as streaming scenarios. The RestTemplate will be deprecated in a future version and will not have major new features added going forward.&lt;/em&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Isolez vos tests sans compromis avec Testcontainers</title>
      <link>/2020/11/12/isolez-vos-tests-sans-compromis-avec-testcontainers/</link>
      <pubDate>Thu, 12 Nov 2020 13:40:24 +0000</pubDate>
      <guid>/2020/11/12/isolez-vos-tests-sans-compromis-avec-testcontainers/</guid>
      <description>&lt;p&gt;Si les tests d&amp;rsquo;intégration dans une architecture micro-services vous semblent complexes à mettre en œuvre (jeu de données, dépendance externe, &amp;hellip;) alors &lt;a href=&#34;https://www.testcontainers.org/&#34;&gt;Testcontainers&lt;/a&gt; est sûrement fait pour vous ! Dans ce billet, je vais tâcher de vous montrer comment, grâce à &lt;strong&gt;Testcontainers&lt;/strong&gt;, on peut facilement tester l&amp;rsquo;intégration d&amp;rsquo;un service dans son environnement cible avec toutes ses dépendances, j&amp;rsquo;illustrerai mes propos avec un cas simple d&amp;rsquo;une API avec une BDD.&lt;/p&gt;&#xA;&lt;h2 id=&#34;petit-rappel&#34;&gt;Petit rappel&lt;/h2&gt;&#xA;&lt;p&gt;Dans une architecture micro-services le test d&amp;rsquo;intégration automatisé est important, voire indispensable, pour vérifier l&amp;rsquo;intégration d&amp;rsquo;un micro-service dans son environnement tant les dépendances peuvent être nombreuses : interactions avec d&amp;rsquo;autres micro-services, sources de données, brokers de messages, etc.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Partie I : Introduction à Elasticsearch</title>
      <link>/2020/10/29/partie-i-introduction-a-elasticsearch/</link>
      <pubDate>Thu, 29 Oct 2020 13:40:24 +0000</pubDate>
      <guid>/2020/10/29/partie-i-introduction-a-elasticsearch/</guid>
      <description>&lt;p&gt;Qu&amp;rsquo;est ce que Elasticsearch ? Pourquoi devrais-je l&amp;rsquo;intégrer à mon système ? Si vous vous posez ces questions, ce billet vous apportera une partie des réponses !&lt;/p&gt;&#xA;&lt;p&gt;Ce sera le premier article d&amp;rsquo;une série, qui vous permettra d&amp;rsquo;obtenir une application fullstack de moteur de recherche musicale à.&lt;/p&gt;&#xA;&lt;p&gt;Vous apprendrez ici à :&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Mettre en place un cluster Elasticsearch basique&lt;/li&gt;&#xA;&lt;li&gt;Créer un index Elasticsearch pour vos fichiers musicaux&lt;/li&gt;&#xA;&lt;li&gt;Implémenter une recherche de type autocomplete sur les fichiers musicaux indexés&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;quest-ce-que-elasticsearch-&#34;&gt;Qu&amp;rsquo;est ce que Elasticsearch ?&lt;/h2&gt;&#xA;&lt;p&gt;Elasticsearch, c&amp;rsquo;est à la fois un moteur d&amp;rsquo;analyse sémantique, de recherche en temps réel - permettant d&amp;rsquo;effectuer des recherches &lt;em&gt;full-text&lt;/em&gt; ou une recherche auto-complétée, basé sur &lt;a href=&#34;https://lucene.apache.org/&#34;&gt;Apache Lucene.&lt;/a&gt; C&amp;rsquo;est également un système distribué et scalable.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Tester le rendu de vos composants avec les snapshots Jest</title>
      <link>/2020/09/24/tester-le-rendu-de-vos-composants-avec-les-snapshots-jest/</link>
      <pubDate>Thu, 24 Sep 2020 13:40:24 +0000</pubDate>
      <guid>/2020/09/24/tester-le-rendu-de-vos-composants-avec-les-snapshots-jest/</guid>
      <description>&lt;p&gt;La rédaction d&amp;rsquo;une batterie de tests complète est une bonne pratique qui est bien trop souvent délaissée lors du développement d&amp;rsquo;une application. Dans le meilleur des cas, on va retrouver des tests côté &lt;em&gt;backend&lt;/em&gt; mais il est certain que le &lt;em&gt;frontend&lt;/em&gt; est très souvent délaissé à ce niveau là. Ils sont pourtant tout aussi importants car ils permettent de vérifier le bon fonctionnement de l&amp;rsquo;interaction de l&amp;rsquo;utilisateur avec votre application (en plus d&amp;rsquo;assurer le bon comportement de vos méthodes comme c&amp;rsquo;est le cas pour votre serveur).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Le confinement chez LIKSI</title>
      <link>/2020/06/30/le-confinement-chez-liksi/</link>
      <pubDate>Tue, 30 Jun 2020 13:40:24 +0000</pubDate>
      <guid>/2020/06/30/le-confinement-chez-liksi/</guid>
      <description>&lt;p&gt;Trois mois après le début de cette période particulière qu’a été le confinement, voici mon bilan du vécu de cette crise du coronavirus au sein de LIKSI.&lt;/p&gt;&#xA;&lt;h2 id=&#34;le-télétravail&#34;&gt;Le télétravail&lt;/h2&gt;&#xA;&lt;p&gt;Le jeudi 11 mars, alors que j’étais en réunion avec les cinq fondateurs de LIKSI, nous avons pris la décision d’instaurer le “full remote” à compter du lendemain pour toute l’équipe. Lorsque Emmanuel Macron a annoncé le confinement à partir du 17 mars, nous étions déjà tous opérationnels.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Du DSL Kotlin pour vos tests</title>
      <link>/2020/06/22/du-dsl-kotlin-pour-vos-tests/</link>
      <pubDate>Mon, 22 Jun 2020 13:40:24 +0000</pubDate>
      <guid>/2020/06/22/du-dsl-kotlin-pour-vos-tests/</guid>
      <description>&lt;p&gt;Si le mot &lt;em&gt;test&lt;/em&gt; vous fait fuir et que le mot &lt;em&gt;DSL&lt;/em&gt; n’évoque pour vous que des mauvais souvenirs, restez quand même ! Dans ce billet, je vais tâcher de vous montrer comment, grâce à &lt;strong&gt;Kotlin&lt;/strong&gt;, on peut utiliser un &lt;strong&gt;DSL&lt;/strong&gt; pour structurer et rendre plus lisible vos tests… et sans les alourdir !&lt;/p&gt;&#xA;&lt;h2 id=&#34;petit-rappel&#34;&gt;Petit rappel&lt;/h2&gt;&#xA;&lt;p&gt;Ah le test automatisé… Indispensable élément fondateur de notre &lt;strong&gt;pyramide de tests&lt;/strong&gt;, il est aujourd&amp;rsquo;hui pleinement outillé de patterns, frameworks et autres sucreries.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Génération de clients REST avec Swagger et Maven dans un contexte Code-First</title>
      <link>/2020/06/15/generation-de-clients-rest-avec-swagger-et-maven-dans-un-contexte-code-first/</link>
      <pubDate>Mon, 15 Jun 2020 13:40:24 +0000</pubDate>
      <guid>/2020/06/15/generation-de-clients-rest-avec-swagger-et-maven-dans-un-contexte-code-first/</guid>
      <description>&lt;p&gt;Dans cet article, nous allons démystifier quelques idées fausses concernant l’implémentation des clients d&amp;rsquo;API REST :&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Non, ce n’est pas parce que l’on fait une API Rest qu’on ne doit pas spécifier les formats de données&lt;/li&gt;&#xA;&lt;li&gt;Non, ce n’est pas parce que l’on appelle une API Rest que l’on doit écrire les messages JSON à  la main&lt;/li&gt;&#xA;&lt;li&gt;Non, ce n’est pas parce que la description Swagger de l’API a été faite en mode Code-first qu’on ne peut pas l’utiliser pour générer du code&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;microservices-et-api-rest&#34;&gt;Microservices et api rest&lt;/h2&gt;&#xA;&lt;p&gt;Si vous avez suivi la tendance de ces dernières années, vous avez probablement remplacé vos vieux monolithes de 100 000 lignes de code par des “micro-services”. Et vous en avez profité pour remplacer vos vieilles APIs SOAP par des APIs REST toutes neuves. Vous avez donc sous la main tout un tas de petits projets Java qui essaient de se parler. Si vous travaillez à plusieurs sur ces projets, vous avez forcément été confronté à la problématique de communication entre les équipes de dev au sujet des APIs. C’est là que la première idée fausse intervient : &lt;strong&gt;même si votre API n’est plus aussi stricte qu’en SOAP, ça reste intéressant d’utiliser un formalisme pour la décrire :&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Vos dépendances toujours à jour avec DependaBot sur Gitlab</title>
      <link>/2020/06/08/vos-dependances-toujours-a-jour-avec-dependabot-sur-gitlab/</link>
      <pubDate>Mon, 08 Jun 2020 13:40:24 +0000</pubDate>
      <guid>/2020/06/08/vos-dependances-toujours-a-jour-avec-dependabot-sur-gitlab/</guid>
      <description>&lt;p&gt;Durant le développement, il n’est pas toujours simple de suivre les évolutions des nombreuses librairies dont nos projets dépendent. Cela participe à l’entropie des projets et la conséquence est au mieux une dette technique latente qui s’accumule petit à petit, au pire, l’inclusion de failles de sécurité ouvrant la porte à des exploits.&lt;/p&gt;&#xA;&lt;p&gt;Sur certains projets, on observait des efforts pour lutter contre cette dette. En exécutant des plugins dans le Delivery pour afficher les nouvelles versions disponibles, comme le &lt;a href=&#34;https://www.mojohaus.org/versions-maven-plugin/&#34;&gt;plugin maven Versions&lt;/a&gt;. Il fallait toutefois s’assurer du changelog et des impacts de la nouvelle version, faire d&amp;rsquo;éventuelles modifications à la main et finalement lancer une passe de non-régression sur le projet. Des efforts qui nécessitaient beaucoup d&amp;rsquo;énergie. Surtout dans certains langages dont le rythme des releases et le nombres de librairies explose rapidement.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Karate, le testing e2e automatisé human-readable</title>
      <link>/2019/07/08/karate-le-testing-e2e-automatise-human-readable/</link>
      <pubDate>Mon, 08 Jul 2019 13:40:24 +0000</pubDate>
      <guid>/2019/07/08/karate-le-testing-e2e-automatise-human-readable/</guid>
      <description>&lt;p&gt;Quand on revient de conférences, il arrive souvent qu’on ait une liste de choses à voir longue comme le bras. Et de mon côté, après avoir vu la conférence &lt;em&gt;“Architecture Hexagonale Level 2 : Comment bien écrire ses tests.”&lt;/em&gt; au &lt;em&gt;BreizhCamp 2019&lt;/em&gt; de &lt;a href=&#34;https://twitter.com/JulienTopcu&#34;&gt;Julien Topçu&lt;/a&gt; et &lt;a href=&#34;https://twitter.com/JkNourry&#34;&gt;Jordan Nourry&lt;/a&gt; et bien j’avais noté dans un coin de ma tête &lt;strong&gt;Karate&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;karate-cest-quoi-&#34;&gt;Karate c&amp;rsquo;est quoi ?&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/intuit/karate&#34;&gt;Karate&lt;/a&gt; est un framework &lt;em&gt;Open-source&lt;/em&gt; qui affiche comme promesse : &lt;em&gt;“API test-automation, mocks and performance-testing into a single, unified framework”&lt;/em&gt;. Dans un premier temps, on va s&amp;rsquo;intéresser uniquement à ce qu’il offre pour les tests d’API automatisés.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Séminaire 2019</title>
      <link>/2019/06/18/seminaire-2019/</link>
      <pubDate>Tue, 18 Jun 2019 13:40:24 +0000</pubDate>
      <guid>/2019/06/18/seminaire-2019/</guid>
      <description>&lt;h2 id=&#34;séminaire-2019--destination-ibiza&#34;&gt;Séminaire 2019 : Destination Ibiza&lt;/h2&gt;&#xA;&lt;h3 id=&#34;cest-parti-pour-le-soleil-&#34;&gt;C&amp;rsquo;est parti pour le soleil !&lt;/h3&gt;&#xA;&lt;p&gt;Vendredi matin le réveil est très matinal pour tout le monde, car le train part de Rennes à 6h direction aéroport Paris CDG. On mange et décollage direction Ibiza.&lt;/p&gt;&#xA;&lt;p&gt;Arrivés sur place vers 15h, direction l’hôtel pour prendre nos quartiers et se rafraîchir à la piscine. Deux groupes se forment ensuite, l’un pour visiter la ville d’Ibiza, ses terrasses et les remparts et l’autre pour aller de l’autre côté de l’île voir les plages paradisiaques et le coucher de soleil.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Kubernetes 101</title>
      <link>/2019/05/20/kubernetes-101/</link>
      <pubDate>Mon, 20 May 2019 13:40:24 +0000</pubDate>
      <guid>/2019/05/20/kubernetes-101/</guid>
      <description>&lt;h3 id=&#34;quest-ce-que-kubernetes-&#34;&gt;Qu’est-ce que Kubernetes ?&lt;/h3&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://kubernetes.io/&#34; title=&#34;Kubernetes&#34;&gt;Kubernetes&lt;/a&gt; est un système d’orchestration de conteneur open source. Il permet de gérer les applications conteneurisées sur un ensemble de serveurs et prend en charge le déploiement, la supervision et le passage à l’échelle.&lt;/p&gt;&#xA;&lt;p&gt;Créé à l’origine par Google, il a été donné en mars 2016 à la Cloud Native Computing Foundation (&lt;a href=&#34;https://www.cncf.io/&#34; title=&#34;CNCF&#34;&gt;CNCF&lt;/a&gt;). Kubernetes, ou «k8s» pour les intimes, apporte une abstraction d’une infrastructure pour gérer des systèmes d’information distribués en permettant aux utilisateurs de déclarer un état souhaité de l’ensemble des éléments constituant ses applications.&lt;/p&gt;</description>
    </item>
    <item>
      <title>BreizhCamp 2019</title>
      <link>/2019/04/11/breizhcamp-2019/</link>
      <pubDate>Thu, 11 Apr 2019 13:40:24 +0000</pubDate>
      <guid>/2019/04/11/breizhcamp-2019/</guid>
      <description>&lt;p&gt;Du 20 au 22 mars 2019 s’est tenu le &lt;a href=&#34;https://www.breizhcamp.org/&#34;&gt;BreizhCamp&lt;/a&gt; dans les universités de Rennes.&#xA;La &lt;strong&gt;conférence à l’ouest&lt;/strong&gt; permet de rassembler 600 développeurs et développeuses de nombreuses communautés autour d’une grande diversité de thèmes. Cette année, dans l’ensemble, pas de grosses révolutions dans les sujets (comme l’ont pu l’être Docker ou Kubernetes il y a quelques années de cela) mais de la consolidation, du REX, des best-practices, de l&amp;rsquo;outillage ou encore de la méthode.&lt;/p&gt;</description>
    </item>
    <item>
      <title>NLP et extraction d’intents</title>
      <link>/2018/07/16/nlp-et-extraction-dintents/</link>
      <pubDate>Mon, 16 Jul 2018 13:40:24 +0000</pubDate>
      <guid>/2018/07/16/nlp-et-extraction-dintents/</guid>
      <description>&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;&#xA;&lt;p&gt;Philippe le disait dans son &lt;a href=&#34;http://www.liksi.fr/2018/05/05/1207/&#34;&gt;article précédent&lt;/a&gt;, chez Liksi on aime les chatbots. Et même si on aime Dialogflow, on se dit qu&amp;rsquo;avoir une solution de repli en cas de changement tarifaire de Google peut être utile (cf Google Maps récemment). Il ne s&amp;rsquo;agit néanmoins pas seulement d&amp;rsquo;une problématique tarifaire. Comme je l&amp;rsquo;évoquais dans l&amp;rsquo;article sur le &lt;a href=&#34;http://www.liksi.fr/2018/04/30/breizhcamp-2018/&#34;&gt;BreizhCamp 2018&lt;/a&gt;, il n&amp;rsquo;est parfois pas possible de fournir ses données à un service tiers comme Dialogflow. Du coup, on s&amp;rsquo;est penché sur des projets qui permettent de faire ça nous même et on a trouvé plusieurs solutions, par exemple &lt;a href=&#34;https://github.com/RasaHQ/rasa_nlu&#34;&gt;Rasa&lt;/a&gt; avec sa solution rasa_nlu.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Dialogflow V2 &amp; Docker</title>
      <link>/2018/05/05/dialogflow-v2-docker/</link>
      <pubDate>Sat, 05 May 2018 13:40:24 +0000</pubDate>
      <guid>/2018/05/05/dialogflow-v2-docker/</guid>
      <description>&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;&#xA;&lt;p&gt;Chez Liksi, on aime bien les chatbots. Et on aime bien Docker. Du coup, on aime bien les chatbots dans Docker. Il se trouve que l&amp;rsquo;intégration de la dernière version en date de &lt;a href=&#34;https://dialogflow.com/&#34;&gt;dialogflow&lt;/a&gt; (0.64.0-alpha) nous a posé quelques soucis et on s&amp;rsquo;est dit qu&amp;rsquo;on vous ferait partager leurs résolutions.&lt;/p&gt;&#xA;&lt;p&gt;Pour ceux qui l&amp;rsquo;ignoreraient, dialogflow (autrefois api.ai) est un framework Natural Language Processing de Google (NLP). En clair, il peut vous aider à reconnaître le sens d&amp;rsquo;un message qu&amp;rsquo;un utilisateur écrit dans un langage non informatique, soit la langue de Molière par exemple.&lt;/p&gt;</description>
    </item>
    <item>
      <title>BreizhCamp 2018</title>
      <link>/2018/04/30/breizhcamp-2018/</link>
      <pubDate>Mon, 30 Apr 2018 13:40:24 +0000</pubDate>
      <guid>/2018/04/30/breizhcamp-2018/</guid>
      <description>&lt;p&gt;Les 28, 29 et 30 Mars 2018 au Campus de Beaulieu à Rennes, se déroulait la 8e édition du &lt;a href=&#34;http://www.breizhcamp.org/&#34;&gt;BreizhCamp&lt;/a&gt;. &lt;a href=&#34;http://www.liksi.fr/&#34;&gt;Liksi&lt;/a&gt; était présent pour cet événement en tant que sponsor et c&amp;rsquo;était l&amp;rsquo;occasion, entre autre, pour moi de rencontrer l&amp;rsquo;équipe avec qui j&amp;rsquo;ai décroché mon stage. Les conférences abordaient des thèmes variés allant du machine learning à la robotique en passant par la sécurité. Le &lt;a href=&#34;http://www.breizhcamp.org/conference/programme/&#34;&gt;programme&lt;/a&gt; de cette année donne accès à plusieurs ressources utiles pour revenir sur le contenu :&lt;/p&gt;</description>
    </item>
    <item>
      <title>10 raisons de se mettre à Spring Boot (2ème partie)</title>
      <link>/2018/03/09/10-raisons-de-se-mettre-a-spring-boot-2eme-partie/</link>
      <pubDate>Fri, 09 Mar 2018 13:40:24 +0000</pubDate>
      <guid>/2018/03/09/10-raisons-de-se-mettre-a-spring-boot-2eme-partie/</guid>
      <description>&lt;p&gt;La première partie de cet article est disponible &lt;a href=&#34;https://www.liksi.tech/10-raisons-de-se-mettre-%C3%A0-spring-boot-1%C3%A8re-partie/&#34;&gt;ici&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;6---la-sécurité-pour-les-nuls&#34;&gt;6 - La sécurité pour les nuls&lt;/h2&gt;&#xA;&lt;p&gt;La mise en oeuvre de mécanisme de sécurité est primordial ; pour autant, il s’agit toujours d’une étape fastidieuse que l’on a tendance à repousser. Spring Boot (encore une fois) nous simplifie la tâche.&lt;/p&gt;&#xA;&lt;p&gt;Prenons la mise en oeuvre d’une politique de sécurité simple et classique mais relativement performante : Authentication Basic + HTTPS.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;1ère étape : HTTP Basic authentication&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Ce mode d’authentification nécessite de fournir lors de l’appel d’une URL un nom d’utilisateur accompagné de son mot de passe. Dans Spring Boot, pour mettre en oeuvre ce mécanisme, il suffit de :&lt;/p&gt;</description>
    </item>
    <item>
      <title>Liksi est-elle une entreprise libérée ?</title>
      <link>/2018/02/13/liksi-est-elle-une-entreprise-liberee/</link>
      <pubDate>Tue, 13 Feb 2018 13:40:24 +0000</pubDate>
      <guid>/2018/02/13/liksi-est-elle-une-entreprise-liberee/</guid>
      <description>&lt;p&gt;Dans une entreprise libérée, on laisse les salariés prendre des initiatives individuelles plutôt que de leur imposer des directives suivies de contrôles. On substitue au système hiérarchique classique une structure où les collaborateurs s&amp;rsquo;auto-dirigent ce qui a pour effet d&amp;rsquo;accentuer le bien-être au travail en responsabilisant les gens.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Le postulat de base repose sur un climat de confiance et de reconnaissance des collaborateurs&lt;/strong&gt; dans lequel leurs compétences peuvent pleinement s&amp;rsquo;exprimer, si et seulement si, une liberté totale leur est accordée.&lt;/p&gt;</description>
    </item>
    <item>
      <title>10 raisons de se mettre à Spring Boot (1ère partie)</title>
      <link>/2018/01/19/10-raisons-de-se-mettre-a-spring-boot-1ere-partie/</link>
      <pubDate>Fri, 19 Jan 2018 13:40:24 +0000</pubDate>
      <guid>/2018/01/19/10-raisons-de-se-mettre-a-spring-boot-1ere-partie/</guid>
      <description>&lt;h2 id=&#34;1---vous-réconcilier-avec-spring&#34;&gt;1 - Vous réconcilier avec Spring&lt;/h2&gt;&#xA;&lt;p&gt;Je travaille depuis plusieurs années maintenant avec Spring Boot. Je dois avouer que l&amp;rsquo;idée de mettre en place ce nouvel outil ne m&amp;rsquo;enchantait guère à la base. Bien sûr j&amp;rsquo;avais eu de bons retours mais je m&amp;rsquo;étais lassé de l&amp;rsquo;écosystème Spring : trop lourd, trop de librairies, trop JEE &amp;hellip; Je continuais à utiliser Spring dans mes projets plus par habitude que par conviction.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Business model et perspectives d’évolution</title>
      <link>/2017/11/06/business-model-et-perspectives-devolution/</link>
      <pubDate>Mon, 06 Nov 2017 13:40:24 +0000</pubDate>
      <guid>/2017/11/06/business-model-et-perspectives-devolution/</guid>
      <description>&lt;p&gt;Quand vous évaluez votre futur employeur quels critères prenez vous en compte ? L’aspect stratégique sûrement (positionnement et image de la société, taille, pérennité…), le « court terme » également (rémunération, localisation, intérêt du job, tâches au quotidien, compétences acquises…) mais comment évaluez vous le « long terme » ?&lt;/p&gt;&#xA;&lt;p&gt;Le « long terme » est pourtant le plus important, il participe à la construction de votre carrière, il vous valorise. Le delta qui peut exister à T0 entre ce que vous allez gagner ou quel poste vous allez obtenir est dérisoire comparé au delta de rémunération et fonction auxquels vous pouvez prétendre après 10 ou 15 ans de carrière. Mais pour cela, il faut travailler son profil de carrière, faire les bons choix et investir dans les meilleures options.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
