Mathieu Desnouveaux

L'ensemble de mes sketchnotes

J'ai regroupé ci-dessous l'ensemble des sketchnotes que je partage depuis 2019.

160 sketchnotes disponibles
Sketchnote illustrant la conception de TUI en PHP avec le composant Symfony Terminal, présentée par Fabien Potencier au Symfony Live Paris 2026. Le schéma montre que l'interface de terminal fonctionne aussi pour les agents. Les widgets s'écrivent en PHP ou Twig, avec une collection native et une customisation facilitée. La boucle asynchrone via PHP Fiber et Revolt rend le rendu non bloquant. L'architecture propose de séparer comportements et interfaces : Console d'un côté, TUI de l'autre. Le composant exploite les fonctionnalités natives des terminaux : Focus Event, Key Binding et Mouse (expérimental). Le stress test passe par la création de jeux comme 2048 et Tetris, mais aussi les slides.

Concevoir des TUI en PHP : le composant Symfony Terminal

Publié le 31 mars 2026
Par Fabien Potencier
🐘 PHP 🛠️ Tools
📅 Symfony Live
Sketchnote illustrant le chiffrement de données avec Doctrine tout en restant recherchable, présentée par Jérôme Tamarelle au Symfony Live Paris 2026. Le schéma distingue informations personnelles directes et indirectes. Le chiffrement peut être aléatoire ou déterministe. Le mécanisme montre : données → clé par donnée → master clé. La question "où chiffrer ?" propose trois options : DB, Infra ou Code. Dans Doctrine, un nouveau Type implémente le chiffrement et le déchiffrement. La recherche s'effectue par chiffrement des éléments des recherches.

Chiffrez vos données avec Doctrine, en restant recherchable

Publié le 31 mars 2026
Par Jérôme Tamarelle
🐘 PHP 🔒 Security 📊 Data
📅 Symfony Live
Sketchnote illustrant le Symfony Scheduler présentée par Jérémie Augustin au Symfony Live Paris 2026. Le schéma montre les tâches automatisées et programmées, avec les risques associés : pas d'exécution ou exécution multiple, visibilité manquante, scalabilité imparfaite, accès limité. La gestion de l'automatisation pointe vers Symfony Scheduler avec la mention "Merci Symfony pour les composants". La progression technique va de Monothread vers Multi Worker, puis Monitoring et Alerte. Le cas Legacy est traité avec les apports Symfony en DX, Test et Visibilité.

100 crons par seconde, le Scheduler se venge

Publié le 31 mars 2026
Par Jérémie Augustin
🐘 PHP 🚀 Performance
📅 Symfony Live
Sketchnote illustrant le JsonStreamer de Symfony présentée par Gary Pegeot au Symfony Live Paris 2026. Le schéma compare le Serializer classique au JsonStreamer : le Serializer utilise un normaliseur custom et crée un goulot d'étranglement en normalisant les entités vers JSON. Le JsonStreamer promet des performances x10 en POC, en passant par Objet → DTO → JSON via un Object Mapper. La garantie de migration s'appuie sur trois piliers : validation humaine, test snapshot et regression gate.

Passez à la vitesse supérieure avec le JsonStreamer

Publié le 31 mars 2026
Par Gary Pegeot
🐘 PHP 🚀 Performance
📅 Symfony Live
Sketchnote illustrant le développement d'un Coding Agent en PHP présentée par Fabien Potencier au Symfony Live Paris 2026. Le schéma montre trois acteurs : l'IA (modèle et agent de code), les Tasks (Spec, Code, Debug, Test, Refactor, Code Review) et l'Humain (dans la boucle, responsable). Le mode YOLO combiné avec un Sandbox est recommandé. Les bonnes pratiques : utiliser Bash et des outils optimisés, créer des Skills avec des instructions ciblées dès que possible. Le System Prompt impacte le résultat et doit définir le rôle de l'agent, les outils disponibles, les guidelines du projet et le fichier AGENT.md du projet.

Développer un Coding Agent en PHP : dans les coulisses du « Harness »

Publié le 31 mars 2026
Par Fabien Potencier
🐘 PHP 🤖 AI/ML 🛠️ Tools
📅 Symfony Live
Sketchnote illustrant le passage du web au mobile avec Symfony et Hotwire Native, présentée par Imad Zairig au Symfony Live Paris 2026. Le schéma montre comment transformer une app web en app mobile sans Swift/Kotlin, sans React Native et sans Store. Symfony UX et Hotwire Native donnent Symfony Native, qui utilise une WebView avec accès à la couche native. Le remplacement des composants web par des composants natifs passe par un Bridge Component. L'exemple d'un bouton illustre comment selon le support (Web ou App), le rendu adapte le composant entre version web et version native.

Du web au mobile avec Symfony & Hotwire Native

Publié le 31 mars 2026
Par Imad Zairig
🐘 PHP 🎨 Frontend
📅 Symfony Live
Sketchnote illustrant un assistant IA de code review présentée par Thomas Boileau au Symfony Live Paris 2026. Le schéma montre que la code review est un rituel existant avec des impacts collectifs, indépendant du niveau IA de chacun. La question Build or Buy est posée avec les critères vitesse d'expérimentation, maîtrise et réglementation, avec un bonus : intégrer facilement les standards. Le pipeline est : Merge Request → Context → Standard → Finding → Auditor (qui propose de nouveaux standards). Les Findings contiennent niveau de risque, problème, impact et solution, notés avec des emojis pour un échange conversationnel. Les Standards passent par MCP et Skills (get, create, update). Le System Matter s'adapte au contexte, le User Matter inclut code, ticket et doc. L'objectif est d'itérer sur les usages en pensant à la DX.

L'IA au service des devs : anatomie d'un assistant de code review

Publié le 31 mars 2026
Par Thomas Boileau
🐘 PHP 🤖 AI/ML 🛠️ Tools
📅 Symfony Live
Sketchnote illustrant la DX Symfony avec FrankenPHP présentée par Kévin Dunglas au Symfony Live Paris 2026. Le schéma définit la DX comme un ensemble de pratiques pour simplifier le développement d'app et se concentrer sur la valeur. FrankenPHP est un binaire tout compris compatible Mac, Linux et Windows, utilisable avec ou sans Docker (Image Docker avec Symfony et FrankenPHP). Les Development Containers permettent d'avoir l'environnement de dev fonctionnel dans le code, utilisable par Claude Code. La configuration montre : cache en prod, parsé en dev. Le mode Worker en dev avec hot reload via Mercure. Le résultat : une DX améliorée.

Symfony + FrankenPHP : une DX comme vous n'en avez jamais vu

Publié le 31 mars 2026
Par Kévin Dunglas
🐘 PHP 🔧 DevOps 🛠️ Tools
📅 Symfony Live
Sketchnote illustrant les sidekicks applicatifs Symfony présentée par Nicolas Grekas au Symfony Live Paris 2026. Le schéma compare PHP (stateless by design, protégé mais difficile de toucher sa config) et FrankenPHP (Worker Mode, permet de lancer de l'action entre les requêtes). Le pipeline Worker HTTP montre : Sidekick → Tableau Blanc (set_vars, limité aux scalaires) → Thread HTTP (get_vars). Un exemple concret : un sidekick maintient à jour une liste de feature flags ou autre config en temps réel. Les usages incluent Health Monitoring, Service Discovery, Cache Invalidation et Feature Flags. L'intégration couvre Auto Configuration, Mode Hybride, FrankenPHP, Worker et Puppet. Les tâches à venir permettront de pousser des tâches aux workers.

Reconfigurer Symfony en temps réel avec des sidekicks applicatifs

Publié le 31 mars 2026
Par Nicolas Grekas
🐘 PHP 🏗️ Architecture 🚀 Performance
📅 Symfony Live
Sketchnote illustrant l'héritage Doctrine présentée par Rémi Janot au Symfony Live Paris 2026. Le schéma montre un exemple d'héritage PHP : Admin (login, password, permission), Customer (login, password, address) et User (login, password) avec héritage en PHP. La question "Comment en DB ?" est posée. Le discriminant est un type dans la table User mère avec des options : index, discriminator map, enum PHP, limiter les niveaux d'héritage. Il existe aussi la Mapped Superclass. Deux stratégies sont comparées : STI (Single Table Inheritance) avec une table unique, adapté pour peu de types, mais génère beaucoup de champs nullables par type. CTI (Class Table Inheritance) avec des tables filles jointes avec l'id de la table mère, sans champs en plus mais avec un coût des jointures, utiliser des index.

Doctrine Inheritance

Publié le 31 mars 2026
Par Rémi Janot
🐘 PHP 📊 Data 🏗️ Architecture
📅 Symfony Live
Sketchnote illustrant ClickHouse pour les développeurs Symfony présentée par Romain Neutron au Symfony Live Paris 2026. Le schéma présente ClickHouse comme solution d'observabilité, une série de points pour surveiller une app. L'objectif est d'utiliser une BDD colonnaire. Les données sont stockées en colonnes avec une table Events ordonnée par couleur. ClickHouse est très performant en lecture et écriture, les données sont facilement compressées, et il est efficace pour les données immuables (alter possible mais coûteux). ClickHouse est open source, utilise un SQL similaire (Sitili SQL), est facilement intégrable avec Symfony et Kafka.

ClickHouse pour les développeurs Symfony

Publié le 31 mars 2026
Par Romain Neutron
🐘 PHP 📊 Data 🚀 Performance
📅 Symfony Live
Sketchnote illustrant l'utilisation de JSON avec SQL présentée par Rémy Bonfils et Olivier Fourny au Symfony Live Paris 2026. Le schéma montre la promesse (données structurées) vs la réalité (CSV sans structure, 80 000 configs possibles, enrichissement futur). La fausse bonne idée EAV (1 table, 1 attribut par ligne, 1 item = x lignes) est écartée. La solution retenue : stocker une modélisation JSON. Les avantages : optimisation en mappant le JSON en objet, manipulation du JSON en BDD via JSON Function et Doctrine, et surtout la possibilité de faire évoluer les modèles sans modifier toute l'application.

JSON + SQL : hérésie ou élégance ? Retour d'expérience

Publié le 31 mars 2026
Par Rémy Bonfils & Olivier Fourny
🐘 PHP 📊 Data 🏗️ Architecture
📅 Symfony Live