Mathieu Desnouveaux

Architecture

36 sketchnotes disponibles pour ce thème

🏗️

Architecture logicielle et conception système

Sketchnote illustrant les filtres API Platform présentée lors d'un meetup AFUP Lorraine. Le schéma explique qu'un filtre permet de limiter des ressources selon des critères par des attributs sur nos entités (ORM/ODM & Elastic Search). Il y a une refonte suite à l'arrivée de la compatibilité avec Laravel. Le découpage d'un filtre fourre-tout (SearchFilter avec IRI Filter, Exact Filter, Partial Filter, OR Filter, etc.) devient plus simple et respectueux. Les filtres plus simples montrent l'usage d'objets > tableaux pour la maintenance du framework et la possibilité de créer ses filtres personnalisés avec un Query Builder. Le Parameter Provider permet de transformer un paramètre (URI + parent + chain + resource) et la documentation automatique. La génération par Maker ainsi que la migration sans BC break avec les commandes Maker & Rector pour migrer.

API Platform : repenser les filtres

Publié le 30 novembre 2025
Par Vincent Amstoutz
🐘 PHP 🔗 API 🏗️ Architecture
📅 AFUP Lorraine
Sketchnote illustrant les principes SOLID et l'injection de dépendances pour la performance au Forum PHP 2025. Le schéma montre les 5 principes SOLID (S-Responsabilité unique n'avoir qu'une seule raison de changer, O-Ouvert/Fermé ouvert à l'extension fermé à la modification on peut empiler des couches sans tout changer, L-Substitution de Liskov permet d'utiliser n'importe quelle classe fille, I-Ségrégation des interfaces réduit les interfaces et évite le couplage, D-Inversion de dépendance dépendre d'abstraction). Deux moments d'utilisation: 1-Au build (chercher les implémentations, ajout dans un fichier PHP), 2-Au runtime (on utilise le fichier). Extensions via décorateur (compiler pass) ou un attribut. L'injection de dépendance utilise les attributs pour identifier, configurer et décorer les dépendances. Pour résoudre des problèmes de perf, la solution est Lazyness avec un paresseux qui dit 'voir les détails dans la doc'.

PERF & Injection de dépendance - Êtes-vous assez paresseux-ses

Publié le 30 novembre 2025
Par Nicolas Grekas
🐘 PHP 🏗️ Architecture 🚀 Performance
📅 Forum PHP
Sketchnote illustrant Kubernetes de manière visuelle présentée au Forum PHP 2025. Le schéma explique comment représenter un Pod (Pokeball avec Kube logo - un chef d'orchestre). Le Node peut être une machine physique ou virtuelle, contenant la plus petite unité déployable (Pod avec containers). Le Service permet DNS, IP, Alias pour accéder au Pod. Le Namespace permet l'isolation des ressources. Les Jobs sont des processus longs (ponctuel, séquentiel, parallel) et les CronJobs sont des jobs périodiques. Le ConfigMap contient Config (clé) avec Pod et Secret (cadenas). Tout le monde est différent est illustré au bas.

Understanding Kubernetes The Visual Way

Publié le 30 novembre 2025
Par Aurélie Vache
🔧 DevOps 🏗️ Architecture
📅 Forum PHP
Sketchnote illustrant 4 design patterns pour la résilience présentée au Forum PHP 2025. Le schéma commence par 'tout échoue tout le temps' avec le principe de réduire le blast radius et ne laisser pas un processus attendre pour rien. La corrélation entre les requêtes est expliquée (tout le monde en même temps mène à différer les requêtes et différer les retry). Quatre stratégies sont présentées: étaler les crons et multiplier les queues avec introduction de l'aléatoire (ampoule), constant work (engrenage - préparer les réponses avant de recevoir les requêtes), attention à la variabilité avec pic d'activité aléatoire et préparer les réponses, découper en cellules indépendantes (ciseaux), et shuffle sharding (dé - répartir aléatoirement les ressources).

4 design patterns avancés pour améliorer la résilience d'une application

Publié le 30 novembre 2025
Par Pascal Martin
🏗️ Architecture 🚀 Performance
📅 Forum PHP
Sketchnote illustrant l'utilisation des monades pour archiver efficacement de grands volumes de données, présentée au Forum PHP 2025. Le schéma montre le contexte d'archivage de documents avec métadata et binaire, l'idée initiale de streaming de données avec Generator puis logique puis foreach, mais cela mène à une composition de générateurs qui rend le système complexe. Pour simplifier, les monades sont présentées comme une solution de programmation fonctionnelle divisée en préparation, action et testable sans contexte lourd (stateless). Des composants utiles sont présentés: ORM monadisé, Filesystem monadisé, et Encoding monadisé.

Archiver efficacement de grands volumes de données grâce aux monades

Publié le 30 novembre 2025
Par Baptiste Langlade
🐘 PHP 🏗️ Architecture 📊 Data
📅 Forum PHP
Sketchnote retraçant l'évolution de l'injection de dépendances dans Symfony. Chronologie: Vanilla PHP (instanciation directe), Symfony 1 (2007, sfContext), Symfony 2 (2011, conteneur de services), Symfony 2.7 (autowiring), API Platform 1 (2015), API Platform 2 (2016), Symfony 3.3 (2017, 'magic' API resource basée sur le conteneur de services + tag manuel), Symfony 4 (configuration automatique, service privé avec optimisation), Symfony 5.3 PHP8 (2019, arrivée des attributs), Symfony 6 (2021, les attributs deviennent la norme), API Platform 3 (2022, state processor), Symfony 7 (2023, autowire, iterator). Flèche descendante indique 'un parcours évolutif vers une simplification'.

Symfony & l'injection de dépendances : du passé au futur

Publié le 29 novembre 2025
Par Imen Ezzine
🐘 PHP 🏗️ Architecture
📅 API Platform Conference
Sketchnote sur l'Event Storming appliqué aux projets API Platform. Le schéma montre l'objectif d'apporter de la valeur via un atelier collaboratif avec toutes les parties prenantes. L'Event Storming décrit l'application (actions, acteurs, données, systèmes externes) et produit des résultats: agrégats, documentation de l'application, porte l'intention, rassemble code et métier. La distinction Command/Query par rapport à CRUD est expliqué avec la disctinction intention/valeur vs data. L'objectif rappelé est la diffusion de l'intention par propagation d'événements qui conservent l'intention.

Et si on utilisait l'Event Storming dans nos projets API Platform

Publié le 29 novembre 2025
Par Grégory Planchat
🏗️ Architecture 👥 Management
📅 API Platform Conference
Sketchnote illustrant les design patterns essentiels . Sept patterns sont présentés avec leurs diagrammes: Strategy (permet de gérer des algorithmes similaires), Adapter (transformation d'interface vers API/DB), Factory (options vers objet), Builder (utile dans les tests, chaîne de construction d'objet), Proxy (objet intermédiaire), Observer (regarde l'objet, exécute le code de l'observer si l'observé bouge), Decorator (pour ajouter un comportement à un objet), Facade (masque la complexité), et Chain of Responsibility (pour enchaîner les comportements).

Design Pattern: le trésor est dans le vendor

Publié le 29 novembre 2025
Par Smaine Milianni
🏗️ Architecture 🐘 PHP
📅 API Platform Conference
Cette sketchnote représente la conférence 'Le lazy-loading est plus que vous ne le pensez !' présentée par Baptiste Leduc lors de l'AFUP Day Lille le 16 mai. En haut, le titre 'Lazy Loading' est affiché en gros caractères avec le sous-titre 'Charger les données quand on en a besoin'. À gauche, des illustrations représentent '4 Patterns' avec des icônes pour 'Initialization', 'Value Holder', 'Virtual Proxies', et 'Ghost Object'. Au centre, des annotations comme 'Intégré à PHP 8.4' sont illustrées. À droite, des icônes représentent 'Usages' avec 'Injection de dépendance chez Symfony' et 'Entité Doctrine'. En bas, des icônes illustrent 'Cas concret PIM' avec 'Retour des produits par API', 'Les appels sont exécutés en tâche de fond', 'Bloquant uniquement si on accède réellement aux données immédiatement', 'Un listener charge les données', 'Chargement asynchrone avec HTTP client', et 'Batch des requêtes multiples'.

Le lazy-loading est plus que vous ne le pensez !

Publié le 19 mai 2025
🚀 Performance 🐘 PHP 🏗️ Architecture
📅 AFUP Day
Cette sketchnote représente la conférence 'Mise en œuvre d'une architecture multi-tenant avec Symfony, API Platform et PostgreSQL' présentée par Mehdi Zaidi lors de l'AFUP Day Lille le 16 mai. En haut, le titre 'Architecture Multi-Tenant' est affiché en gros caractères. À gauche, des illustrations représentent 'Groupes d'utilisateurs données cloisonnées' avec des utilisateurs et des bases de données. Au centre, des annotations comme 'Type de Multi-Tenant' avec des types 1, 2, et 3 sont illustrées. À droite, des icônes représentent 'DB', 'DB Globale', et 'Vue' avec des flèches pour l'accès aux données et l'ajout de code pour corriger les bugs. En bas, des icônes illustrent 'User Tenant X', 'Kernel Request' avec l'identification du tenant et la connexion à la bonne base, et 'Controller' avec le même code et des données séparées.

Mise en œuvre d'une architecture multi-tenant

Publié le 19 mai 2025
🏗️ Architecture
📅 AFUP Day
Cette sketchnote représente la conférence 'Retour d'expérience sur la migration d'un RAD vers une Clean Architecture' présentée par Nathan Pretot lors de l'AFUP Day Lille le 16 mai. En haut, le titre 'Clean Architecture' est affiché en gros caractères avec le sous-titre 'Retour d'expérience'. À gauche, un personnage avec une bulle de dialogue dit 'Le code raconte le métier'. Au centre, des flèches relient des concepts comme 'Ubiquitus Language', 'Permet de représenter le métier', 'Service pour la logique', et 'Représente des services métiers'. À droite, des annotations comme 'Entité Valeur Object' et 'Système par couche' sont illustrées. En bas, des hexagones représentent 'Architecture Hexagonale' et 'CQRS'. Des icônes illustrent 'Pour la lecture & écriture', 'Préparer la séparation', et 'Port / Adapter'.

Retour d'expérience sur la migration d'un RAD vers une Clean Architecture

Publié le 19 mai 2025
Par Nathan Pretot
🏗️ Architecture
📅 AFUP Day
Cette sketchnote représente la conférence 'REX : Comment reprendre en main son legacy' présentée par Nicolas Fatrez lors de l'AFUP Day Lille le 16 mai. En haut, le titre 'REX : Comment reprendre en main son legacy' est affiché en gros caractères avec des mots comme 'Pas d'env simple à installer', 'Pas de docs', et 'Pas de bonnes fondations' en dessous. Au centre, le mot 'LEGACY' est écrit en grandes lettres orange avec des annotations autour. À gauche, une illustration de Docker avec une flèche pointant vers 'Réconcilier Prod & Git' et 'Formation de l'équipe'. Au centre, des icônes représentent 'Ajout de Composer', 'Migration & mise à jour des technos', et 'Script de migration automatique'. À droite, des icônes illustrent 'Migration d'encodage', 'Gestion des secrets', 'Déploiement automatisé', 'Migration sur Symfony par briques', et 'Application de design pattern'. En bas, des illustrations de bâtiments décorent l'image.

REX : Comment reprendre en main son legacy

Publié le 19 mai 2025
Par Nicolas Fatrez
🏗️ Architecture 🚀 Performance
📅 AFUP Day