Documente Academic
Documente Profesional
Documente Cultură
7, 8 et 9 fvrier 2012
Les logiciels cest comme les cathdrales, dabord on les construit, et ensuite on prie
Dveloppeur anonyme
Agenda
Rappels Patterns et Antipatterns
Organiser les logiques mtier Accder aux donnes Grer la distribution Exemples dimplmentation Introduction DDD et CQRS Conclusion Questions / Rponses
Rappels
Redessinons le contexte
Rappels
Rappels
Architecture
Lensemble des aspects techniques qui sont importants pour le logiciel Les choix architecturaux influent sur la russite ou lchec dun projet
Rappels
Patterns
Formalisation de solutions courantes des problmes rcurrents Moyen efficace de partager les connaissances Pratiques prouves et considres comme bonnes Diffrentes catgories (design, analyse, architecture etc.)
Rappels
Antipatterns
Pratiques courantes mais contreproductives Rsulte souvent de patterns mal utiliss Conduit des cots levs de dveloppement
Rappels
Patterns et Antipatterns
Rutilisons ce qui marche
Les couches
Presentation
Communication interprocessus
Service
Patterns pour laccs aux donnes Patterns pour les problmes de distribution
Communication interprocessus
Service
Service layer
Business
Points faibles
Antipatterns frquents :
Communication interprocessus
Service
Service layer
Business
Domain model
Requte Client
Commande
Domain Logic
Application Logic
Points faibles
Exploite le paradigme objet = extensibilit et rutilisabilit Convient bien aux logiques complexes Testabilit amliore (TDD etc.)
Mise en place plus longue Ncessite de vrais comptences objets Mappage complexe avec la persistance
Antipatterns frquents :
Communication interprocessus
Service
Domain Logic
Client
Application Logic
Reclamation
Requte Client
Choisir ?
Transaction script
Domain model
Communication interprocessus
Service
Service layer
Business
Domain model
Client Achat
Data mapper
ClientFidele
NouveauClient
Pattern : Repository
Presentation
Communication interprocessus
Service
Service layer
Business
Pattern : Repository
Isole le Domain model de laccs aux donnes rendant ainsi le Domain Model indpendant, rutilisable et facilement testable.
Data mapper
Domain model
Repository
DB
Grer la distribution
Communication interprocessus
Service
Service layer
Business
Tier 1
Tier 2
Presentation
Service
DTO
Communication interprocessus
Service
Service layer
Business
Remote Facade
DTO
Service Layer
Preentation
En thorie, il ny a pas de diffrence entre la thorie et la pratique, mais en pratique, il y en a ( Loi de Murphy)
Rsum
Presentation
Communication interprocessus
Service
Patterns pour laccs aux donnes Patterns pour les problmes de distribution
Constats :
La vraie complexit rside dans le domaine lui mme et non dans les aspects techniques. Le design conditionne jusquou un projet peut devenir complexe ou non.
Pourquoi DDD ?
Nous aider dvelopper des logiciels qui sattaquent des domaines complexes.
CQRS
Origine :
Issu de la communaut mais popularis par Greg Young (2009) et dautres ( Udi Dahan etc..).
Pourquoi CQRS ?
Rduire la complexit des Domain Model quon utilise Faciliter lextensibilit de lapplication (scalability) Amliorer la performance Et tout ce quon na pas encore dcouvert
CQRS
Mais quest ce que cest ?
Application au niveau architectural de Command Query Separation (CQS) Command : change ltat visible du systme
void CommanderUnArticle (int idClient, int idArticle); void InscrireNouveauClient (string nom, int age);
CQRS
Architecture Standard
Presentation
DTO Lecture
Service
DTO Ecriture
Lecture
Business
Domain model
Data access
Ecriture
DB
CQRS
Lecture
Query
Service
Presentation
Ecriture
Command
Service
Business
Data access
Domain model
Data access
DB
CQRS
Presentation
Command Query
Service Service
Business
Domain model
Data access Data access
DB
DB
CQRS
Presentation
Command Query
Service Service
Business
Domain model
Data access Data access
DB
DB
Conclusion
Conclusion
Si vous navez pas tout retenu, pas de panique !
Conclusion
Les technologies changent, les grands concepts restent.
Rfrences
Patterns of Enterprise Application Architecture (PoEAA) Martin Fowler ( 2003 )
Rfrences
DDD
Communaut :
http://domaindrivendesign.org
http://tech.groups.yahoo.com/group/domaindrivendesign/
Livres :
Rfrences
CQRS
Communaut :
http://www.cqrsinfo.com/ http://abdullin.com/wiki/command-query-responsibility-segregationcqrs.html http://groups.google.com/group/dddcqrs
Livre :
Questions ?
Live Meeting
Live Meeting Live Meeting Live Meeting Live Meeting Live Meeting Live Meeting Live Meeting Live Meeting Live Meeting Live Meeting Live Meeting Live Meeting
Open Data - Dvelopper des applications riches avec le protocole Open Data
Azure series - Dvelopper des applications sociales sur la plateforme Windows Azure Comprendre le canvas avec Galactic et la librairie three.js La production automatise de code avec CodeFluent Entities Comprendre et mettre en oeuvre le toolkit Azure pour Windows Phone 7, iOS et Android Nuget et ALM Kinect - Bien grer la vie de son capteur Sharepoint series - Automatisation des tests TFS Health Check - vrifier la bonne sant de votre plateforme de dveloppement Azure series - Dvelopper pour les tlphones, les tablettes et le cloud avec Visual Studio 2010 Applications METRO design - Dsossage en rgle d'un template METRO javascript Retour d'exprience LightSwitch, Optimisation de l'accs aux donnes, Intgration Silverlight OAuth - la cl de l'utilisation des rseaux sociaux dans votre application
Jusqu 35% de rduction sur Visual Studio Pro, avec labonnement MSDN
www.visualstudio.fr