La parole est aux speakers : Olivier Mairet

Publié le

Jusqu’au Forum PHP 2025, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils ou elles aborderont lors de leur conférence !

La conférence

10 ans de Clean Architecture chez OpenClassrooms : le rêve, la réalité, les leçons

Impossible de célébrer l’édition anniversaire du Forum PHP sans vous raconter notre propre aventure architecturale ! Il y a plus de 10 ans, nous avons fait un pari audacieux : implémenter la Clean Architecture sur le repo historique du Site du Zéro, devenu entre‑temps OpenClassrooms. Mais entre la théorie et la pratique, quels défis avons‑nous rencontrés au fil des années ? Venez découvrir un retour d’expérience sans filtre, alternant réussites concrètes, échecs enrichissants et choix techniques marquants.

Dans cette conférence, je vous propose un récit sincère, technique et pragmatique sur dix années d’itérations au sein d’une plateforme éducative à fort trafic et d’une équipe passée de quelques devs à plusieurs dizaines. Vous découvrirez :

  • Ce que nous avons réellement mis en œuvre de la Clean Architecture… et ce que nous avons abandonné en route 
  • Les bénéfices mesurables (maintenabilité, fiabilité, performance) et les limites rencontrées 
  • L’impact sur notre organisation : testabilité, scalabilité, gestion des dépendances, isolation des domaines métiers 
  • Ce qu’on referait différemment si c’était à refaire, avec les compromis qui valent (ou non) la peine

Au‑delà des dogmes et des schémas parfaits, ce talk montre comment une idée ambitieuse s’adapte – ou pas – à la réalité d’un produit qui sert des milliers d’apprenant•e•s chaque jour, d’une équipe en croissance et d’un contexte business en mouvement. Refactors réussis, ajustements assumés, ratés instructifs : tout y passe pour nourrir vos propres réflexions et vos architectures de demain.

Adrien GALLOU - ABCDEF
10/10/2025
15:55-16:35

Peux-tu, en quelques mots, définir ce qu’est la Clean Architecture ?

La Clean Architecture est une approche de conception logicielle qui vise à créer des applications robustes, faciles à maintenir et à faire évoluer. Popularisée par Robert C. Martin (Uncle Bob), elle agrège des concepts issus de designs comme le Use Case Driven Design et l’Hexagonal Architecture. Une fois qu’on a dit ça, on a rien dit. Il est important de comprendre les principes qui portent cette architecture pour en apprécier les bienfaits.

Elles servent plusieurs objectifs comme : isoler le domaine métier (le cœur de l’application) de toutes les dépendances externes (base de données, ORM, framework, etc…) ou assurer une bonne testabilité du code.

Le principe central est de placer le domaine (les règles métier) au centre de l’application, avec des couches d’abstraction qui communiquent via des interfaces avec les services ou dépendances externes. Et une application stricte des principes SOLID (Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, Dependency Inversion).

Avec plus de 10 ans de Clean Architecture, comment gérer au mieux la passation entre des équipes pouvant évoluer ?

L’expérience d’OpenClassrooms montre que la gestion de la Clean Architecture sur une longue période, avec l’évolution des équipes, est un défi important. Parmi les leçons clé pour une meilleure gestion, que l’on développera lors de ma conférence, on peut noter :

L’implémentation très stricte des débuts à OpenClassrooms a conduit à une complexité excessive, avec parfois un grand nombre de fichiers nécessaire à la moindre modification ou création d’une feature. Cette sur-ingénierie rend le code difficile à comprendre et à maintenir pour les nouveaux arrivants, en particulier les profils juniors.

Il est crucial d’adapter la Clean Architecture aux besoins réels du projet plutôt que d’appliquer dogmatiquement toutes ses règles.

Investir dans la formation et la compréhension des « pourquoi » : si les devs suivent “bêtement” les instructions pour créer un usecase avec la bonne architecture sans comprendre les principes sous-jacents, ça peut mener à des duplications, complications et une mauvaise utilisation.

Avec l’expérience de Clean Architecture, quel serait ton conseil pour commencer sur un projet legacy ou commencer sur un projet from scratch ?

Que l’on parle de legacy ou d’un nouveau projet, le conseil principal est le pragmatisme et l’adaptation aux besoins spécifiques du projet.

Pour un projet from scratch :

  • Ne pas y aller de manière dogmatique : Ne pas implémenter toutes les couches et abstractions de la Clean Architecture par défaut si elles ne sont pas nécessaires. 
  • Commencer par les principes fondamentaux : Se concentrer sur la séparation du métier de l’infrastructure, la clarté du code, la testabilité et la cohésion. 
  • Considérer les alternatives : Par exemple appliquer les principes SOLID en adoptant en plus une approche comme le Domain-Driven Design (DDD), qui offre déjà une bonne séparation du métier et des use cases peut être un bon début. 
  • Évaluer la durée de vie du projet : La Clean Architecture est plus pertinente pour des applications à long terme qui nécessiteront une grande capacité d’évolution et de scalabilité. Pour des projets temporaires ou des « proof of concept », elle peut être coûteuse en temps et en investissement initial.

Pour un projet legacy :

  • Identifier les problèmes spécifiques : plutôt que d’appliquer une architecture prédéfinie, diagnostiquer les problèmes concrets de l’équipe (bugs fréquents, lenteur de développement, difficulté d’onboarding, testabilité) et les résoudre un par un. 
  • Éviter l’ajout de complexité inutile : la cohabitation de différentes versions d’architecture peut créer une dette technique supplémentaire. 
  • Refactoriser progressivement : la refactorisation est essentielle pour maintenir la santé du projet. Utiliser des outils d’automatisation (comme Rector) peut aider à limiter cette dette.

En résumé, qu’il s’agisse d’un nouveau projet ou d’un projet existant, la clé est la simplicité et une approche itérative, en privilégiant les principes fondamentaux de la Clean Architecture et SOLID plutôt que l’application rigide d’un cadre défini. L’architecture doit servir le projet et non l’inverse.

Une conférence présentée par

Olivier MAIRET
Olivier MAIRET
Backend Engineer chez OpenClassrooms depuis 2021, Olivier y fait évoluer la plateforme PHP/Symfony qui forme des millions d’apprenant•e•s. Ancien conseiller en mobilité internationale, il s'est reconverti en 2017. Il aime partager ses connaissances comme il aurait voulu l'entendre quand il se formait lui-même à travers des confs ou des articles de blog.

Autres interviews