Développer un projet
fonctionnellement complexe
En face de vous
●
Jean-François Lépine
●
Consultant technique chez Alter Way
●
@Halleck45
●
http://blog.lepine.pro
Jeu concours : qui a déjà entendu ...
“Techniquement et fonctionnellement, c'est super !
On est même largement en avance.....
Il était une fois...
●
“J'ai besoin d'une voiture pour des petits trajets, aller au travail et transporter
ma famille”
Il était une fois...
●
“J'ai besoin d'une voiture pour des petits trajets, aller au travail et
transporter ma famille”
●
E...
Communiquez
Une langue commune
●
Éviter les ambiguïtés
●
Est élaborée en commun
●
Est parlée par tous
●
Glossaire du projet
UBIQUITOUS...
Une grammaire commune
Fonctionnalité: acheter un chiot
  En tant que client du magasin
  Je peux acheter un chiot
  Afin d...
Gherkin
Fonctionnalité: acheter un chiot
  (…)
  Scénario: acheter un chiot trop jeune
  
    Etant donné qu'un chiot est ...
Développement piloté par le comportement
●
Exercice agile quotidien
●
Les scénarios sont établis en commun
●
Tests automat...
Accepter le changement
Domain Driven Design
●
Le code source est le reflet du besoin fonctionnel
●
Le code source adopte le vocabulaire fonctionn...
Isolation
Spécialisation
Testabilité
Testabilité
Keep It Simple and Stupid !
●
Un objet simple par règle métier
●
La complexité se fait par
l'assemblage de composants
simp...
Complexité vs
performance
Web = Schizophrène
●
Effectuer un traitement métier
●
Complexe
●
Lent
●
Intégrité et cohérence
●
A intégrer dans un systèm...
Commands / Query
●
Séparer la logique de traitement
(Commands) de la logique de lecture
(Query)
●
Command Query Responsibi...
Performance
●
Alléger la lecture
Consolidation
●
Les données sont consolidées
●
La consolidation est asynchrone
●
Event sourcing
Conclusion
Bilan
●
Les solutions pour gérer de la complexité métier dans un projet existent :
●
Communication (agile)
●
Développement...
Questions ?
●
Twitter : @Halleck45
●
http://communiquez.lepine.pro
●
Merci !
Prochain SlideShare
Chargement dans…5
×

Owf2013 developper-projet-fonctionnellement-riches

423 vues

Publié le

Présentation rapide de méthodologies qui facilitent le développement de projets fonctionnellement complexes : Développement piloté par le comportement, Domain Driven Design et Command Query Responsability Seggregation

Publié dans : Technologie
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
423
Sur SlideShare
0
Issues des intégrations
0
Intégrations
5
Actions
Partages
0
Téléchargements
4
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Owf2013 developper-projet-fonctionnellement-riches

  1. 1. Développer un projet fonctionnellement complexe
  2. 2. En face de vous ● Jean-François Lépine ● Consultant technique chez Alter Way ● @Halleck45 ● http://blog.lepine.pro
  3. 3. Jeu concours : qui a déjà entendu ... “Techniquement et fonctionnellement, c'est super ! On est même largement en avance...” “Génial ! C'est une chance que vous soyez télépathe ; c'est exactement ce à quoi je pensais, il n'y a rien à reprendre. “Ah oui, je me souviens bien : c'est en page 28 de l'annexe 2 des spécifications fonctionnelles détaillées”
  4. 4. Il était une fois... ● “J'ai besoin d'une voiture pour des petits trajets, aller au travail et transporter ma famille”
  5. 5. Il était une fois... ● “J'ai besoin d'une voiture pour des petits trajets, aller au travail et transporter ma famille” ● Et en plus il a perdu de l'argent● Le client n'a pas eu ce qu'il voulait
  6. 6. Communiquez
  7. 7. Une langue commune ● Éviter les ambiguïtés ● Est élaborée en commun ● Est parlée par tous ● Glossaire du projet UBIQUITOUS LANGAGE
  8. 8. Une grammaire commune Fonctionnalité: acheter un chiot   En tant que client du magasin   Je peux acheter un chiot   Afin de avoir un compagnon     tout mignon (ou pas ^^)
  9. 9. Gherkin Fonctionnalité: acheter un chiot   (…)   Scénario: acheter un chiot trop jeune        Etant donné qu'un chiot est trop jeune pour être vendu     Quand j'essaye de l'acheter     Alors je suis informé que c'est impossible
  10. 10. Développement piloté par le comportement ● Exercice agile quotidien ● Les scénarios sont établis en commun ● Tests automatisés ! (Behat, Cucumber, Jbehave...) ● Suivi en temps réel de l'avancée des scénarios
  11. 11. Accepter le changement
  12. 12. Domain Driven Design ● Le code source est le reflet du besoin fonctionnel ● Le code source adopte le vocabulaire fonctionnel ● Le code source facilite : – Le changement – La gestion des règles métiers – La maintenabilité – La testabilité ● Appliquer à la lettre les principes de la programmation orientée objets
  13. 13. Isolation
  14. 14. Spécialisation
  15. 15. Testabilité
  16. 16. Testabilité
  17. 17. Keep It Simple and Stupid ! ● Un objet simple par règle métier ● La complexité se fait par l'assemblage de composants simples et réutilisables
  18. 18. Complexité vs performance
  19. 19. Web = Schizophrène ● Effectuer un traitement métier ● Complexe ● Lent ● Intégrité et cohérence ● A intégrer dans un système global ● Fournir une information ● Immédiat ● Spécifique
  20. 20. Commands / Query ● Séparer la logique de traitement (Commands) de la logique de lecture (Query) ● Command Query Responsibility Segregation (CQRS)
  21. 21. Performance ● Alléger la lecture
  22. 22. Consolidation ● Les données sont consolidées ● La consolidation est asynchrone ● Event sourcing
  23. 23. Conclusion
  24. 24. Bilan ● Les solutions pour gérer de la complexité métier dans un projet existent : ● Communication (agile) ● Développement piloté par le comportement ● Domain Driven Design ● Command query responsibility segregation ● Certaines pratiques peuvent mises en place facilement, même si elles ne sont pas des recettes miracles
  25. 25. Questions ? ● Twitter : @Halleck45 ● http://communiquez.lepine.pro ● Merci !

×