Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Retour opérationnel sur la clean architecture

1,123 views

Published on

Retour opérationnel sur la Clean Architecture. OpenClassrooms utilise la Clean Architecture depuis près de 5 ans d'utilisation, il est temps de faire un bilan opérationnel.

Published in: Internet
  • Be the first to comment

  • Be the first to like this

Retour opérationnel sur la clean architecture

  1. 1. Janvier 2018, Romain Kuzniak
  2. 2. Retour Opérationnel sur la Clean Architecture
  3. 3. ROMAIN KUZNIAK • CTO • Arrivée en 2012 chez OpenClassrooms (à l’époque le Site Du Zéro) • Passionné d’agilité et de design applicatif • @romainkuzniak
  4. 4. OpenClassrooms
  5. 5. Nous délivrons des cours en ligne.
 
 Nous délivrons des formations dont le diplôme est reconnu par l’état entièrement en ligne
  6. 6. • 3 millions de membres • 30 millions de pages vues / mois • PHP, React, iOS • PostgreSQL • AWS
  7. 7. Contexte
  8. 8. 2012 • Site legacy =>Refonte • Rigidité (difficulté de faire les changements) • Fragilité (bugs issus des changements) • Immobilité (réutilisation) • Viscosité (design, difficulté de faire les bonnes choses; environnement, temps de compilation, déploiements, tests …)
  9. 9. • Baisse de productivité • Inaptitude au changement
  10. 10. Qu’est ce que la Clean Architecture
  11. 11. • Robert C. Martin, 2008 • Aggregation des travaux d’Ivar Jacobson (UseCase Driven Design, 1992) ou d’Alistair Cockburn (Hexagonal Architecture, Ports and Adapters, 2005) • Objectifs : • Gérer des architectures complexes • Indépendance avec le framework • Indépendance avec l’UI • Indépendance avec la base de données • Testable
  12. 12. • Principes : • Placer le domaine au centre de l’application • Communication entre les couches à travers des abstractions • Application des principes S.O.L.I.D • Architecture révélant son intention
  13. 13. Use Case Controller Presenter View Model View Request Model <I>
 Boundary Response Model <I>
 Boundary <I>Entity Gateway <A>Entity Entity Implementation Gateway Implementation
  14. 14. Retour d’experience 4 ans après
  15. 15. PROS • Suppression de la rigidité, fragilité, immobilité, viscosité • Infrastructure, Frameworks et librairie parfaitement découplés • Périmètre des tests adapté • Environnement (déploiements, temps execution des tests …) • Compétences des développeurs /Rétention des développeurs • Orientation fonctionnelle • Productivité linéaire • Aptitude au changement
  16. 16. CONS • Courbe d’apprentissage longue et complexe • Peu de documentation • Peu de retours d’expérience • Peu de développeurs formés • Quantité de code • Plomberie • Beaucoup de code pour générer un Use Case
  17. 17. Avez vous besoin de la Clean Architecture ?
  18. 18. PROBABLEMENT
  19. 19. • Vous vous retrouvez dans ce que j’ai dit ! • Rigidité, fragilité, immobilité, viscosité • Baisse de productivité • Inaptitude au changement
  20. 20. Devez vous implémenter la Clean Architecture ?
  21. 21. PROBABLEMENT PAS
  22. 22. • Langage (pas tous adaptés) • Courbe d’apprentissage trop importante pour le moment
  23. 23. Merci

×