Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.
Tomorrow’s “Model” Driven
Development
JBCN Conf 2017 - Barcelona
About us
• Mario Romano
– Full Stack Developer
– Microservices
– Angular 2
– BPM
– Working @ Alfresco
• APS & ADF
– Twitte...
Agenda
• Software Development Approaches
– What is DDD?
– Other Approaches
• What do they share? What is different?
• Impl...
Theoretical
Point of View
What is
DDD?
• Domain Driven Design
“DDD is a software development approach to
create high quality software model design
t...
Core
Business
Value
• Domains, Sub-Domains and Core Domains
• (Bounded Context / Shared Language) = Model
• Context Maps
Concepts,
Best Practices
& Common
Pitfalls
• Entities
• Value Objects
• Domain Events
• Modules
• Aggregates
• Services
• ...
Recommended
Patterns
• CQRS
• Event Sourcing
• Abstraction Layers
• Eventual Consistency
• EDA
• Sagas
Key
Takeaways:
Business Value
• We focus on what is important
• Build a coherent Model (Developers & Domain
Experts togeth...
Key
Takeaways:
Best Practices
& Tools
• We gain a deep understanding about the
problems
• We apply the best tool for the j...
Other
Approaches
• Business Process Management
– Work with Domain Experts to create high level
abstractions about how they...
BPM
• Business Processes (Fire Emergency)
Decision
Management
• Decision Table
Similarities
• Centralized Knowledge is Key
– The org gains useful model of its own domain
– A refined understanding of th...
Differences
• “Model” means different things
– DDD: well crafted (Java) Model -> Technical
– BPM: Business Process -> Non-...
Implementation
Point of View
Emergency Dispatcher
Emergency
Request
Arrives
Emergency
Enriched &
Processed
Emergency
Procedure
Triggered
Emergency	
Source
Emergency	
Enricher
Emergency	
Dispatcher
-
(Complex)
Spring	Cloud	Data	Flow	- Message	Bus
Eureka
-
Proc...
Demo
• Emergency Dispatcher
• https://github.com/Salaboy/jbcnconf-2017-emergency-dispatcher
• Run it on your laptop!
Activiti 7
Community
OSS
• http://www.activiti.org
• New Rebooted Project
• Re-designed & Re-engineered on top of
Spring B...
Questions?
Prochain SlideShare
Chargement dans…5
×

JBCN conf 2017 Tomorrow Model Driven Development

2 962 vues

Publié le

more about this in: http://salaboy.com

Publié dans : Technologie
  • Login to see the comments

  • Soyez le premier à aimer ceci

JBCN conf 2017 Tomorrow Model Driven Development

  1. 1. Tomorrow’s “Model” Driven Development JBCN Conf 2017 - Barcelona
  2. 2. About us • Mario Romano – Full Stack Developer – Microservices – Angular 2 – BPM – Working @ Alfresco • APS & ADF – Twitter: @MagemelloMario • Mauricio Salatino (Salaboy) – BPM & Rules Background – Working @ Alfresco • Activiti 7 Technical Leader – Twitter: @salaboy – http://salaboy.com
  3. 3. Agenda • Software Development Approaches – What is DDD? – Other Approaches • What do they share? What is different? • Implementation – Architectural Point of view • Spring Cloud • Demo
  4. 4. Theoretical Point of View
  5. 5. What is DDD? • Domain Driven Design “DDD is a software development approach to create high quality software model design that meets core business objectives.”
  6. 6. Core Business Value • Domains, Sub-Domains and Core Domains • (Bounded Context / Shared Language) = Model • Context Maps
  7. 7. Concepts, Best Practices & Common Pitfalls • Entities • Value Objects • Domain Events • Modules • Aggregates • Services • Factories • Repositories
  8. 8. Recommended Patterns • CQRS • Event Sourcing • Abstraction Layers • Eventual Consistency • EDA • Sagas
  9. 9. Key Takeaways: Business Value • We focus on what is important • Build a coherent Model (Developers & Domain Experts together) • The model is concise, well focused and easy to understand so it can be used to train new people • We add/remove/update things based on the Business Value that they provide • Continuous improvement in an agile fashion • A cultural change is required
  10. 10. Key Takeaways: Best Practices & Tools • We gain a deep understanding about the problems • We apply the best tool for the job • Models are clearly defined and scoped • Teams can be organized around these Models
  11. 11. Other Approaches • Business Process Management – Work with Domain Experts to create high level abstractions about how they work. – Business Processes “how people and system work together” • Decision Management – Work with Domain Experts to build decision models – Decision Tables and Decision Trees: “how decisions are made” • Well understood by the industry – They are standardized, BPMN 2.1, DMN 1.1 – Organizations see a lot of business value in these approaches
  12. 12. BPM • Business Processes (Fire Emergency)
  13. 13. Decision Management • Decision Table
  14. 14. Similarities • Centralized Knowledge is Key – The org gains useful model of its own domain – A refined understanding of the business is developed – Domain experts contribute to software design • Important cultural change required • Agile, iterative and continuous improvement is the norm
  15. 15. Differences • “Model” means different things – DDD: well crafted (Java) Model -> Technical – BPM: Business Process -> Non-Technical – DM: Decision Model -> Non-Technical • Can we leverage the best of both worlds?
  16. 16. Implementation Point of View
  17. 17. Emergency Dispatcher Emergency Request Arrives Emergency Enriched & Processed Emergency Procedure Triggered
  18. 18. Emergency Source Emergency Enricher Emergency Dispatcher - (Complex) Spring Cloud Data Flow - Message Bus Eureka - Procedure Registry Zuul - Gateway Google - Location Service Spring Data - Patient Record Service Service - Emergency Codes Activiti - Emergency Procedure A Service - Emergency Procedure B Activiti - Default Emergency Procedure … INFRASTRACTURE (Changes rarely) DOMAIN KNOWLEDGE (Changes often) Zipkin - Tracer
  19. 19. Demo • Emergency Dispatcher • https://github.com/Salaboy/jbcnconf-2017-emergency-dispatcher • Run it on your laptop!
  20. 20. Activiti 7 Community OSS • http://www.activiti.org • New Rebooted Project • Re-designed & Re-engineered on top of Spring Boot 2 / Spring Cloud • Embedded Process Runtime • Embedded Decision Runtime • Embedded Case/Contextual Runtime • Public announcements to be made in July • Want join us?
  21. 21. Questions?

×