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

Transcript

  1. Architecture Agile et développement durable FÉLIX-ANTOINE BOURBONNAIS B.ING., M.SC., PSM

    Version 1.2 – Avril 2015
  2. © 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
  3. © 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 fbourbonnais@elapsetech.com
  4. © 2015 Elapse Technologies Formations Image de Eyesplash http://commons.wikimedia.org/wiki/File:Welkom _willkomme

    n_Welcome_Bienvenue_Be nvenut o.jpg
  5. © 2015 Elapse Technologies Formations Scrum sans pratiques de développement

    pour soutenir le rythme 6
  6. © 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
  7. © 2015 Elapse Technologies Formations Nos prochains 90 minutes… 8

  8. © 2015 Elapse Technologies Formations FUTUR DU DÉVELOPPEMENT Le 9

  9. © 2015 Elapse Technologies Formations L’informatique est l’ADN de nos

    entreprises 10
  10. © 2015 Elapse Technologies Formations Ça bougeait vite… Et ça

    bouge encore plus vite ! 11
  11. © 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
  12. © 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
  13. © 2015 Elapse Technologies Formations Le défi moderne… La maintenabilité

    ! 16
  14. © 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 !
  15. © 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!
  16. © 2015 Elapse Technologies Formations Comment augmenter ma maintenabilité alors

    ? 19 Les principes d’architecture durable existent!
  17. LES DÉFIS Partie 1 20 Architecture durable

  18. © 2015 Elapse Technologies Formations L’ARCHITECTURE LOGICIELLE DURABLE 21

  19. © 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
  20. © 2015 Elapse Technologies Formations Mais… Ceci n’est pas une

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

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

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

    the number of decisions not made » -- Robert C. Martin 27
  24. © 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
  25. QUELQUES PISTES 2e partie 29 Architecture durable

  26. © 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
  27. © 2015 Elapse Technologies Formations Le constat Les bases de

    l’orientation objet ne sont peut-être pas aussi solides qu’on le pense… 31
  28. © 2015 Elapse Technologies Formations Résultat… 32

  29. © 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
  30. © 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
  31. © 2015 Elapse Technologies Formations LES PRINCIPES Quelques pistes 35

  32. © 2015 Elapse Technologies Formations POLYMORPHISME et les DÉPENDANCES Le

    36
  33. © 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
  34. © 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!
  35. © 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!
  36. © 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
  37. © 2015 Elapse Technologies Formations Notre objectif… Contenir les vagues

    causées par les modifications !
  38. © 2015 Elapse Technologies Formations TELL DON’T ASK 42

  39. © 2015 Elapse Technologies Formations Le « Tell don’t Ask

    » 43 Image: sheelamohan et jscreationzs / FreeDigitalPhotos.net
  40. © 2015 Elapse Technologies Formations DOMAINE ANÉMIQUE… ou PEUT-ÊTRE PAS…

    Avoir un 44
  41. © 2015 Elapse Technologies Formations 2 grands contextes

  42. © 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
  43. © 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
  44. © 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 ??
  45. © 2015 Elapse Technologies Formations Active Record ? 49 Mêmes

    questions! Est-ce un choix conscient et pour quel type d’application?
  46. © 2015 Elapse Technologies Formations Alternatives s.v.p. ?!? Domaine riche

    DDD Repository … 50
  47. © 2015 Elapse Technologies Formations Le sous-titre dit tout… Tackling

    Complexity in the Heart of Software Domain Driven Design (DDD)
  48. © 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 !
  49. © 2015 Elapse Technologies Formations Le danger sinon… 53 L’effet

    d’avalanche !
  50. © 2015 Elapse Technologies Formations PRINCIPES « SOLID » Les

    54
  51. © 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/
  52. © 2015 Elapse Technologies Formations LES PATRONS MAL CONNUS Quelques

    pistes 56
  53. © 2015 Elapse Technologies Formations La Factory Factory = Usine

    57
  54. © 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
  55. © 2015 Elapse Technologies Formations Pourquoi ? Trop souvent, la

    création est mélangéeavec l’entreposage ou la logique d’affaires 59
  56. © 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
  57. © 2015 Elapse Technologies Formations Astuce 61 Ces concepts servent

    également pour attaquer le code patrimonial 
  58. © 2015 Elapse Technologies Formations LES GRANDS MODÈLES ET CHOIX

    ARCHITECTURAUX Quelques pistes 62
  59. © 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…
  60. © 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
  61. © 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.
  62. © 2015 Elapse Technologies Formations Les « micro-services » 66

  63. © 2015 Elapse Technologies Formations Modèles architecturaux Clean Architecture 67

    http://blog.8thlight.com/uncle-bob/2012/08/13/the-clean-architecture.html
  64. CONCLUSION 68 Architecture durable

  65. © 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!
  66. © 2015 Elapse Technologies Formations Mais l’architecture durable n’est pas

    suffisante… 70 Il reste les pratiques durables…
  67. © 2015 Elapse Technologies Formations 72 ArchitectureAgile.com Diapositives et références

  68. © 2015 Elapse Technologies Formations 73 Merci Mon nom Félix-Antoine

    Bourbonnais Mon courriel fbourbonnais@elapsetech.com Notre blogue developpementagile.com Nos Twitter @fbourbonnais | @elapsetech Mon LinkedIn linkedin.com/in/fbourbonnais/fr
  69. © 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?
  70. © 2015 Elapse Technologies Formations 75 Merci Mon nom Félix-Antoine

    Bourbonnais Mon courriel fbourbonnais@elapsetech.com Notre blogue developpementagile.com Nos Twitter @fbourbonnais | @elapsetech Mon LinkedIn linkedin.com/in/fbourbonnais/fr
  71. © 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?