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. Architecture Agile et
    développement durable
    FÉLIX-ANTOINE BOURBONNAIS
    B.ING., M.SC., PSM
    Version 1.2 – Avril 2015

    View Slide

  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

    View Slide

  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
    [email protected]

    View Slide

  4. © 2015 Elapse Technologies
    Formations
    Image de Eyesplash
    http://commons.wikimedia.org/wiki/File:Welkom _willkomme n_Welcome_Bienvenue_Be nvenut o.jpg

    View Slide

  5. © 2015 Elapse Technologies
    Formations
    Scrum sans pratiques de développement pour
    soutenir le rythme
    6

    View Slide

  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

    View Slide

  7. © 2015 Elapse Technologies
    Formations
    Nos prochains 90 minutes…
    8

    View Slide

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

    View Slide

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

    View Slide

  10. © 2015 Elapse Technologies
    Formations
    Ça bougeait vite…
    Et ça bouge encore plus vite !
    11

    View Slide

  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

    View Slide

  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

    View Slide

  13. © 2015 Elapse Technologies
    Formations
    Le défi moderne…
    La maintenabilité !
    16

    View Slide

  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 !

    View Slide

  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!

    View Slide

  16. © 2015 Elapse Technologies
    Formations
    Comment augmenter
    ma maintenabilité alors ?
    19
    Les principes
    d’architecture
    durable existent!

    View Slide

  17. LES DÉFIS
    Partie 1
    20
    Architecture durable

    View Slide

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

    View Slide

  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

    View Slide

  20. © 2015 Elapse Technologies
    Formations
    Mais…
    Ceci n’est pas une
    invitation au BDUF !
    (Big Design Up Front)
    24

    View Slide

  21. © 2015 Elapse Technologies
    Formations
    Architecture évolutive
    Tout est à propos de
    casser les vagues
    de modifications!
    25

    View Slide

  22. © 2015 Elapse Technologies
    Formations
    On ne peut pas tout prévoir…
    On veut des digues à
    différents niveaux !
    … des conteneurs
    de vagues!
    26

    View Slide

  23. © 2015 Elapse Technologies
    Formations
    « A good architect maximizes the
    number of decisions not made »
    -- Robert C. Martin
    27

    View Slide

  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

    View Slide

  25. QUELQUES PISTES
    2e partie
    29
    Architecture durable

    View Slide

  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

    View Slide

  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

    View Slide

  28. © 2015 Elapse Technologies
    Formations
    Résultat…
    32

    View Slide

  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

    View Slide

  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

    View Slide

  31. © 2015 Elapse Technologies
    Formations
    LES PRINCIPES
    Quelques pistes
    35

    View Slide

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

    View Slide

  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

    View Slide

  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!

    View Slide

  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!

    View Slide

  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

    View Slide

  37. © 2015 Elapse Technologies
    Formations
    Notre objectif…
    Contenir les vagues causées par les modifications !

    View Slide

  38. © 2015 Elapse Technologies
    Formations
    TELL DON’T ASK
    42

    View Slide

  39. © 2015 Elapse Technologies
    Formations
    Le « Tell don’t Ask »
    43
    Image: sheelamohan et jscreationzs / FreeDigitalPhotos.net

    View Slide

  40. © 2015 Elapse Technologies
    Formations
    DOMAINE ANÉMIQUE…
    ou PEUT-ÊTRE PAS…
    Avoir un
    44

    View Slide

  41. © 2015 Elapse Technologies
    Formations
    2 grands contextes

    View Slide

  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

    View Slide

  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

    View Slide

  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 ??

    View Slide

  45. © 2015 Elapse Technologies
    Formations
    Active Record ?
    49
    Mêmes questions!
    Est-ce un choix conscient et pour quel type d’application?

    View Slide

  46. © 2015 Elapse Technologies
    Formations
    Alternatives s.v.p. ?!?
    Domaine riche
    DDD
    Repository

    50

    View Slide

  47. © 2015 Elapse Technologies
    Formations
    Le sous-titre dit tout…
    Tackling Complexity in the
    Heart of Software
    Domain
    Driven Design (DDD)

    View Slide

  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 !

    View Slide

  49. © 2015 Elapse Technologies
    Formations
    Le danger sinon…
    53
    L’effet d’avalanche !

    View Slide

  50. © 2015 Elapse Technologies
    Formations
    PRINCIPES « SOLID »
    Les
    54

    View Slide

  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/

    View Slide

  52. © 2015 Elapse Technologies
    Formations
    LES PATRONS MAL CONNUS
    Quelques pistes
    56

    View Slide

  53. © 2015 Elapse Technologies
    Formations
    La Factory
    Factory
    =
    Usine
    57

    View Slide

  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

    View Slide

  55. © 2015 Elapse Technologies
    Formations
    Pourquoi ?
    Trop souvent, la
    création est
    mélangéeavec
    l’entreposage ou la
    logique d’affaires
    59

    View Slide

  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

    View Slide

  57. © 2015 Elapse Technologies
    Formations
    Astuce
    61
    Ces concepts servent également pour attaquer le
    code patrimonial 

    View Slide

  58. © 2015 Elapse Technologies
    Formations
    LES GRANDS MODÈLES ET CHOIX
    ARCHITECTURAUX
    Quelques pistes
    62

    View Slide

  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…

    View Slide

  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

    View Slide

  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.

    View Slide

  62. © 2015 Elapse Technologies
    Formations
    Les « micro-services »
    66

    View Slide

  63. © 2015 Elapse Technologies
    Formations
    Modèles architecturaux
    Clean Architecture
    67
    http://blog.8thlight.com/uncle-bob/2012/08/13/the-clean-architecture.html

    View Slide

  64. CONCLUSION
    68
    Architecture durable

    View Slide

  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!

    View Slide

  66. © 2015 Elapse Technologies
    Formations
    Mais l’architecture durable n’est pas suffisante…
    70
    Il reste les pratiques durables…

    View Slide

  67. © 2015 Elapse Technologies
    Formations
    72
    ArchitectureAgile.com
    Diapositives et références

    View Slide

  68. © 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

    View Slide

  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?

    View Slide

  70. © 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

    View Slide

  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?

    View Slide