Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Architecture Agile et développement durable (v 1.2)

Architecture Agile et développement durable (v 1.2)

Beaucoup d’équipes ont embrassé Scrum sans considérer l’architecture nécessaire pour soutenir un tel rythme et minimiser la dette technique.

Comment adopter une architecture émergente, malléable et facile à changer? Bref, comment faire du développement logiciel durable?

Principes SOLID, patrons de conception d’entreprise, architecture émergente et pilotée par le domaine (DDD) seront au menu.

Tweet

More Decks by Félix-Antoine Bourbonnais

Other Decks in Programming

Transcript

  1. © 2015 Elapse Technologies Formations 3 Félix-Antoine Bourbonnais B.ing., PSM,

    M.Sc. Ma passion… / Faire progresser les règles de l’art de notre industrie et transmettre ma passion pour le génie logiciel Mon rêve… / Rendre le développement logiciel plus professionnel, humain et qu’il repose sur la compétence et la connaissance. Ce que je fais… / J’aide des entreprises et des professionnels à s’améliorer à l’aide d’outils techniques et humains pour développer durablement
  2. © 2015 Elapse Technologies Formations 4 Qui sommes-nous ? Je

    suis… / Formateur / Conférencier / Coach Agile et technique Expert en… / Tests automatisés / Pratiques de développement / Architecture évolutive / Agilité et Scrum Félix-Antoine Bourbonnais [email protected]
  3. © 2015 Elapse Technologies Formations Développement logiciel durable Gestion de

    projets durable + Architecture durable + Pratiques durables 7 Image : http://robclearyphoto.blogspot.ca/2012/06/green-roof-cookfox.html
  4. © 2015 Elapse Technologies Formations La réalité Le futur technologique

    est incertain et il faut livrer de plus en plus vite… 12 Cloud Big-Data NoSQL Distribué Mobile
  5. © 2015 Elapse Technologies Formations Pouvons-nous changer demain ? Est-ce

    que nos architecture permettent de changer et de nous adapter comme si de rien n’était en maintenant notre vélocité? 15
  6. © 2015 Elapse Technologies Formations Mais il ne faut surtout

    pas ralentir pour autant! 17 Il faut livrer vite, sans compromis sur la qualité Il faut un code malléable !
  7. © 2015 Elapse Technologies Formations Le développement logiciel est désormais

    un flot perpétuel… 18 Évitez de laisser la graisse s’accumuler dans le tuyau!
  8. © 2015 Elapse Technologies Formations Comment augmenter ma maintenabilité alors

    ? 19 Les principes d’architecture durable existent!
  9. © 2015 Elapse Technologies Formations Architecture durable 23 On veut

    concilier l’environnement avec l’économie pour que la croissance perdure Hum… On veut une architecture durable, modulaire et la plus indépendante que possible de la technologie
  10. © 2015 Elapse Technologies Formations Mais… Ceci n’est pas une

    invitation au BDUF ! (Big Design Up Front) 24
  11. © 2015 Elapse Technologies Formations Architecture évolutive Tout est à

    propos de casser les vagues de modifications! 25
  12. © 2015 Elapse Technologies Formations On ne peut pas tout

    prévoir… On veut des digues à différents niveaux ! … des conteneurs de vagues! 26
  13. © 2015 Elapse Technologies Formations « A good architect maximizes

    the number of decisions not made » -- Robert C. Martin 27
  14. © 2015 Elapse Technologies Formations OK… Et concrètement? Décollage… Notre

    petite abeille aura besoin d’une bonne carte pour repérer toutes les fleurs offrant les divers nutriments pour faire le meilleur miel. 28
  15. © 2015 Elapse Technologies Formations Avertissement Rien n’est noir ou

    blanc… Tout est une question de connaître pour appliquer ou non les concepts selon le contexte 30
  16. © 2015 Elapse Technologies Formations Le constat Les bases de

    l’orientation objet ne sont peut-être pas aussi solides qu’on le pense… 31
  17. © 2015 Elapse Technologies Formations Le problème Faire une architecture

    durable, distribuée, découplée, etc. demande de faire des choix… Mais sans maîtrise des modèles…? 33
  18. © 2015 Elapse Technologies Formations Notre objectif Pour s’adapter aux

    nouvelles réalités, il faut revisiter l’OO à la lumière de ces défis.. 34
  19. © 2015 Elapse Technologies Formations Inversion des dépendances La grande

    contribution de l’OO est la capacité à inverser la dépendance par rapport au flot d’exécution 37
  20. © 2015 Elapse Technologies Formations L’abstraction Le paradigme OO implique

    l’utilisation d’abstractions et d’interfaces 38 Chaque abstraction est un point d’inflexion qui permet de réduire le couplage et de développer durablement!
  21. © 2015 Elapse Technologies Formations Les dépendances Le polymorphisme est

    à la base même de l’OO C’est un « briseur de dépendances » puissant! 39 On veut brancher les dépendances, pas les souder!
  22. © 2015 Elapse Technologies Formations Briser les dépendances 40 X

    SQLDb MapDb if( dbType == SQL ) ... sqlDb.query("SELECT id ..." else ... mapDb.get(id) X MapRepo SqlRepo repository.findById(id) Repository
  23. © 2015 Elapse Technologies Formations Le « Tell don’t Ask

    » 43 Image: sheelamohan et jscreationzs / FreeDigitalPhotos.net
  24. © 2015 Elapse Technologies Formations Domaine anémique Domaine où les

    objets ont des données mais pas de comportements. Les comportements sont uniquement dans des objets « Managers » qui gèrent le domaine 46
  25. © 2015 Elapse Technologies Formations Conséquences courantes • Duplication de

    la logique (DRY) • Les « contrôleurs » et « Managers » deviennent gros. On voit la « God Class » approcher… • Une modification demande de modifier plusieurs « services » • Prévoir les effets des modifications devient difficile (fragilité d’un système) • Difficile d’étendre le système facilement sans avoir à modifier plusieurs classes 47
  26. © 2015 Elapse Technologies Formations Est-ce mauvais ? Non pas

    forcément (ex.: Rails) Mais est-ce un choix conscient ou par défaut? 48 Avez-vous mesuré les désavantages en fonction de votre contexte ??
  27. © 2015 Elapse Technologies Formations Active Record ? 49 Mêmes

    questions! Est-ce un choix conscient et pour quel type d’application?
  28. © 2015 Elapse Technologies Formations Le sous-titre dit tout… Tackling

    Complexity in the Heart of Software Domain Driven Design (DDD)
  29. © 2015 Elapse Technologies Formations Moralité Pour bénéficier d’une meilleure

    vitesse et d’une bonne maintenabilitéet d’une réduction de la complexité, vous avez intérêt à combiner les deuxdans le même système !
  30. © 2015 Elapse Technologies Formations Principes S.O.L.I.D. SRP Single Responsibility

    OCP Open Closed LSP Liskov Substitution ISP Interface Segregation DIP Dependency Inversion 55 Image http://lostechies.com/derickbailey/2009/02/11/solid-development-principles-in-motivational-pictures/
  31. © 2015 Elapse Technologies Formations Le « Repository » Repository

    = Un entrepôt 58 Image de toolstop Son but est de déshydrater et réhydrater des objets
  32. © 2015 Elapse Technologies Formations Pourquoi ? Trop souvent, la

    création est mélangéeavec l’entreposage ou la logique d’affaires 59
  33. © 2015 Elapse Technologies Formations Concepts associés 60 Image Bob

    Jagendorf, Yutaka Tsutano, SteelCityHobbies , Team 19 Créer Factory Utiliser Objets du domaine Persister Repository Transporter DTO
  34. © 2015 Elapse Technologies Formations Astuce 61 Ces concepts servent

    également pour attaquer le code patrimonial 
  35. © 2015 Elapse Technologies Formations Modèles architecturaux Hexagonal et Port

    & Adapter Le domaine d’affaires est au centre Les préoccupations bas-niveau sont des « plugins » 63 http://www.duncannisbet.co.uk/hexagonal-architecture-for-testers-part-1 Ce qui nous ramène à l’utilisation astucieuse de l’abstraction…
  36. © 2015 Elapse Technologies Formations Remarque Architecture hurlante de Bob

    Martin Les plans architecturaux d’une maison doivent crier: « Ceci est une maison » 64 Source: Robert C. Martin
  37. © 2015 Elapse Technologies Formations Modèles architecturaux DDD Destiné à

    résoudre des problèmes (logique) complexes de design Centré sur le domaine « client » 65 http://www.zankavtaskin.com/2013/09/applied-domain-driven-design-ddd-part-1.html * Diagramme non officiel. Retenir l’idée générale.
  38. © 2015 Elapse Technologies Formations Modèles architecturaux Clean Architecture 67

    http://blog.8thlight.com/uncle-bob/2012/08/13/the-clean-architecture.html
  39. © 2015 Elapse Technologies Formations Savez-vous ce que sera votre

    produit et la technologie dans 5 ans ? 69 Il n’est pas nécessaire de deviner. Il faut simplement s’outiller pour évoluer avec eux!
  40. © 2015 Elapse Technologies Formations Mais l’architecture durable n’est pas

    suffisante… 70 Il reste les pratiques durables…
  41. © 2015 Elapse Technologies Formations 73 Merci Mon nom Félix-Antoine

    Bourbonnais Mon courriel [email protected] Notre blogue developpementagile.com Nos Twitter @fbourbonnais | @elapsetech Mon LinkedIn linkedin.com/in/fbourbonnais/fr
  42. © 2015 Elapse Technologies Formations 74 Conception OO avancée Elapse

    Formations Le contenu de cette présentation est couvert dans notre formation: Vous voulez approfondir le sujet? Elapse Accompagnement et diagnostics Demandez à notre professionnel d’aller vous visiter pour une journée ou deux ! Besoin de conseils personnalisés?
  43. © 2015 Elapse Technologies Formations 75 Merci Mon nom Félix-Antoine

    Bourbonnais Mon courriel [email protected] Notre blogue developpementagile.com Nos Twitter @fbourbonnais | @elapsetech Mon LinkedIn linkedin.com/in/fbourbonnais/fr
  44. © 2015 Elapse Technologies Formations 76 Conception OO avancée Elapse

    Formations Le contenu de cette présentation est couvert dans notre formation: Vous voulez approfondir le sujet? Elapse Accompagnement et diagnostics Demandez à notre professionnel d’aller vous visiter pour une journée ou deux ! Besoin de conseils personnalisés?