Slide 1

Slide 1 text

Architecture Agile et développement durable FÉLIX-ANTOINE BOURBONNAIS B.ING., M.SC., PSM Version 1.2 – Avril 2015

Slide 2

Slide 2 text

© 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

Slide 3

Slide 3 text

© 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]

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

© 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

Slide 7

Slide 7 text

© 2015 Elapse Technologies Formations Nos prochains 90 minutes… 8

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

© 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

Slide 12

Slide 12 text

© 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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

© 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 !

Slide 15

Slide 15 text

© 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!

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

LES DÉFIS Partie 1 20 Architecture durable

Slide 18

Slide 18 text

© 2015 Elapse Technologies Formations L’ARCHITECTURE LOGICIELLE DURABLE 21

Slide 19

Slide 19 text

© 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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

© 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

Slide 25

Slide 25 text

QUELQUES PISTES 2e partie 29 Architecture durable

Slide 26

Slide 26 text

© 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

Slide 27

Slide 27 text

© 2015 Elapse Technologies Formations Le constat Les bases de l’orientation objet ne sont peut-être pas aussi solides qu’on le pense… 31

Slide 28

Slide 28 text

© 2015 Elapse Technologies Formations Résultat… 32

Slide 29

Slide 29 text

© 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

Slide 30

Slide 30 text

© 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

Slide 31

Slide 31 text

© 2015 Elapse Technologies Formations LES PRINCIPES Quelques pistes 35

Slide 32

Slide 32 text

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

Slide 33

Slide 33 text

© 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

Slide 34

Slide 34 text

© 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!

Slide 35

Slide 35 text

© 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!

Slide 36

Slide 36 text

© 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

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

© 2015 Elapse Technologies Formations TELL DON’T ASK 42

Slide 39

Slide 39 text

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

Slide 40

Slide 40 text

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

Slide 41

Slide 41 text

© 2015 Elapse Technologies Formations 2 grands contextes

Slide 42

Slide 42 text

© 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

Slide 43

Slide 43 text

© 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

Slide 44

Slide 44 text

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

Slide 45

Slide 45 text

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

Slide 46

Slide 46 text

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

Slide 47

Slide 47 text

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

Slide 48

Slide 48 text

© 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 !

Slide 49

Slide 49 text

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

Slide 50

Slide 50 text

© 2015 Elapse Technologies Formations PRINCIPES « SOLID » Les 54

Slide 51

Slide 51 text

© 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/

Slide 52

Slide 52 text

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

Slide 53

Slide 53 text

© 2015 Elapse Technologies Formations La Factory Factory = Usine 57

Slide 54

Slide 54 text

© 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

Slide 55

Slide 55 text

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

Slide 56

Slide 56 text

© 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

Slide 57

Slide 57 text

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

Slide 58

Slide 58 text

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

Slide 59

Slide 59 text

© 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…

Slide 60

Slide 60 text

© 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

Slide 61

Slide 61 text

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

Slide 62

Slide 62 text

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

Slide 63

Slide 63 text

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

Slide 64

Slide 64 text

CONCLUSION 68 Architecture durable

Slide 65

Slide 65 text

© 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!

Slide 66

Slide 66 text

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

Slide 67

Slide 67 text

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

Slide 68

Slide 68 text

© 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

Slide 69

Slide 69 text

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

Slide 70

Slide 70 text

© 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

Slide 71

Slide 71 text

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