L’article aborde la pratique des Architecture Decision Records (ADR) en les présentant comme un outil de documentation utile, loin de la simple bureaucratie. Il met en avant leur utilité pour tracer les décisions techniques, justifier les choix auprès des parties prenantes, faciliter l’intégration des nouveaux membres et éviter le bus factor. Deux concepts clés sont expliqués : le modèle ACED, qui structure la réflexion en quatre quadrants (Pourquoi/Comment, Technique/Fonctionnel), et le framework Cynefin, qui aide à catégoriser le contexte décisionnel pour adapter la méthode de résolution.
L’auteur s’appuie sur une conférence (DevLille 2026) où Nicolas Delsaux et Logan Hauspie ont démontré comment rendre les ADR plus pertinents en intégrant ces outils. Plutôt que de se limiter à des détails techniques, les ADR doivent capturer les enjeux fonctionnels et l’environnement cognitif de l’équipe au moment de la décision, comme le permet Cynefin.
Enfin, l’article propose une méthodologie en sept étapes pour concevoir un ADR, en insistant sur l’importance de clarifier le contexte et de poser la bonne question dès le départ. L’exemple donné illustre comment formuler une problématique concrète, comme le stockage d’indicateurs de popularité de librairies.
L'article explore l'utilisation du pattern ADR (Action-Domain-Responder) dans Symfony, en remplacement du traditionnel MVC (Model-View-Controller). L'auteur présente une approche où chaque contrôleur, nommé avec le suffixe "Action", est responsable d'une seule tâche, utilisant la méthode __invoke() pour simplifier le routage et le rendu des templates. Cette méthode, bien que complexe à mettre en place, offre une organisation claire et une génération d'URLs simplifiée dans Twig.
Une explication de ce que sont les Architecture Decision Record
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
L'auteur présente le pattern Action-Domain-Responder et comment l'utiliser avec Symfony. Il montre aussi les différences avec MVC
Présentation du pattern ADR (Action Domain Responder) avec application à Symfony