SlideShare a Scribd company logo
1 of 47
DCI @ XING
hardwiring brains
Boris Tveritnev
XING Architecture at a glance
10/25/2015 DCI @ XING // Boris Tveritnev // XPDays Kiev 2
Index
The problem
Problem by example
DCI
DCI and DDD
DCI and TDD
Application techniques
Takeaway
The
problem(s)
Object Oriented Programming
http://donkeykong.wikia.com/wiki/User:CoolHungryYoshi?file=Donkey-kong-clean.gif
“I thought of objects being like biological
cells and/or individual computers on a
network, only able to communicate with
messages”
Alan Kay
http://userpage.fu-berlin.de/~ram/pub/pub_jf47ht81Ht/doc_kay_oop_en
Something went really wrong
• Simula (1967)
• Smalltalk (1980)
• C++ (1983)
• Java (1995)
• C# (2000)
10/25/2015 DCI @ XING // Boris Tveritnev // XPDays Kiev 6
OOP as it is
•There is little in object orientation, that helps
the developer capture doing in the code
•One can’t reason about system behavior in
runtime
10/25/2015 DCI @ XING // Boris Tveritnev // XPDays Kiev 7
https://s-media-cache-ak0.pinimg.com/736x/c2/02/1c/c2021c66544d3b66495d7d489f527405.jpg
“I made up the term 'object-oriented', and I
can tell you I didn't have C++ in mind”
Alan Kay
OOPSLA '97
Payments
domain
@XING
http://www.kimberlywoodstucson.com/uploads/5/5/0/9/55094411/3783591_orig.png
Payments domain model
1010/25/2015 DCI @ XING // Boris Tveritnev // XPDays Kiev
ONLINE OFFLINE IN-APP
BONUS
B2B
customers
B2C
customers
Pay UsePayUsePay Pay Pay Pay
Pay
More
Pay
More
Use Bonus
Runtime vs design-time
1110/25/2015 DCI @ XING // Boris Tveritnev // XPDays Kiev
Runtime vs design-time
1210/25/2015 DCI @ XING // Boris Tveritnev // XPDays Kiev
Runtime vs design-time
1310/25/2015 DCI @ XING // Boris Tveritnev // XPDays Kiev
Data-Context-
Interaction
Hardwiring brains
http://1.bp.blogspot.com/_MyFAOEj9GKk/S-QmbuYk56I/AAAAAAAAAEQ/sHc-mwJBacc/s1600/left-brain-right-
brain.jpg
Users’ mental models
•What the system is
•What the system does
10/25/2015 DCI @ XING // Boris Tveritnev // XPDays Kiev 15
Data (Records)
•Data objects express what the system is
•Methods and attributes that describe the data
•In essence they are just dumb DTOs
10/25/2015 DCI @ XING // Boris Tveritnev // XPDays Kiev 16
http://vignette1.wikia.nocookie.net/uncyclopedia/images/3/3a/Pac_man_pie_chart.jpg
Data example
10/25/2015 DCI @ XING // Boris Tveritnev // XPDays Kiev 17
Interaction (Roles)
•Roles describe the algorithms defining what
the system does
•Traits of objects
10/25/2015 DCI @ XING // Boris Tveritnev // XPDays Kiev 18
Roles and Biz Processes
•Customer - Sales
•Debtor - Accounting
•Employer - BizDev
•SupportClient - Support
10/25/2015 DCI @ XING // Boris Tveritnev // XPDays Kiev 19
https://ruthcatchen.files.wordpress.com/2012/03/artclass.jpg
Role example
10/25/2015 DCI @ XING // Boris Tveritnev // XPDays Kiev 20
Context
•Specifies a network of communicating Objects
as interconnected Roles
•Represents a single Use Case
10/25/2015 DCI @ XING // Boris Tveritnev // XPDays Kiev 21
Hide Client Context example
10/25/2015 DCI @ XING // Boris Tveritnev // XPDays Kiev 22
Client Role example
10/25/2015 DCI @ XING // Boris Tveritnev // XPDays Kiev 23
Role example
10/25/2015 DCI @ XING // Boris Tveritnev // XPDays Kiev 24
Renew Contract Context example
10/25/2015 DCI @ XING // Boris Tveritnev // XPDays Kiev 25
Contract Role example
10/25/2015 DCI @ XING // Boris Tveritnev // XPDays Kiev 26
Client Role example
10/25/2015 DCI @ XING // Boris Tveritnev // XPDays Kiev 27
DCI and DDD
Swore friends
http://data.whicdn.com/images/67570097/original.gif
Aggregates
10/25/2015 DCI @ XING // Boris Tveritnev // XPDays Kiev 29
•DDD defines Aggregate Root as an invariant
enforcing entry point
•DCI aids in finding correct aggregate
boundaries
http://petroloco.com/wp-content/uploads/2014/01/Disintegrating-01.jpg
Aggregate example
10/25/2015 DCI @ XING // Boris Tveritnev // XPDays Kiev 30
Aggregate example
10/25/2015 DCI @ XING // Boris Tveritnev // XPDays Kiev 31
Perfect match
10/25/2015 DCI @ XING // Boris Tveritnev // XPDays Kiev 32
•DCI context implements a complete Use Case
•Domain events are results of executing a Use
Case
https://s-media-cache-ak0.pinimg.com/736x/7f/f3/7c/7ff37ca2c4d90a56064d0fc3d42ef58a.jpg
Domain events example
10/25/2015 DCI @ XING // Boris Tveritnev // XPDays Kiev 33
Domain events example
10/25/2015 DCI @ XING // Boris Tveritnev // XPDays Kiev 34
Common restrictions
10/25/2015 DCI @ XING // Boris Tveritnev // XPDays Kiev 35
You need neither of them to build this
DCI and TDD
Removing the friction
http://i.dailymail.co.uk/i/pix/2013/02/23/article-2283273-1835CCED000005DC-212_634x438.jpg
Promoting BDD
10/25/2015 DCI @ XING // Boris Tveritnev // XPDays Kiev 37
•Feature-driven top-down approach
•Structures the code and thought
http://www.codelanders.com/wp-content/uploads/2015/04/DDD_TDD_BDD_intersection.png
Zero-friction TDD
10/25/2015 DCI @ XING // Boris Tveritnev // XPDays Kiev 38
•Allows to refactor inner parts without
constantly breaking tests
•With enough attention one can get pretty
close to executable specifications
http://icons.wunderground.com/data/wximagenew/l/ljranch/6.jpg
BDD example
10/25/2015 DCI @ XING // Boris Tveritnev // XPDays Kiev 39
BDD example
10/25/2015 DCI @ XING // Boris Tveritnev // XPDays Kiev 40
BDD example
10/25/2015 DCI @ XING // Boris Tveritnev // XPDays Kiev 41
Application
techniques
Different ways in different languages
http://images2.fanpop.com/image/photos/9700000/Penguin-of-Death-penguins-of-madagascar-9714329-800-
600.gif
Libraries/Languages
10/25/2015 DCI @ XING // Boris Tveritnev // XPDays Kiev 43
•C#: with Extension methods or dynamic
•Marvin: .Net CLI compatible language,
designed for DCI
•Ruby: with Method injection or using Maroon
•Javascript: hasOwnProperty and apply
•Java: Apache Zest (former Qi4J)
•Scala: traits
•C++: with Templates
Takeaway
http://personal.lse.ac.uk/robert49/ebooks/PhilSciAdventures/img/memory-brain.jpg
Win!
Touches key areas of agile process
10/25/2015 DCI @ XING // Boris Tveritnev // XPDays Kiev 45
•Analysis with User Stories and Use Cases
•Customer can be closely involved in
discussions
•Embracing change separating stable domain
model from changing User Stories
•Aids in DDD application
•Promotes BDD
www.xing.com
Thank you
for your
attention!
Boris Tveritnev
More info
10/25/2015 DCI @ XING // Boris Tveritnev // XPDays Kiev 47
1. http://www.artima.com/articles/dci_vision.html
2. DCI Glossary: http://folk.uio.no/trygver/2011/DCI-Glossary.pdf
3. http://fulloo.info/
4. https://groups.google.com/forum/#!forum/object-composition
5. Lean Architecture: for Agile Software Development, J. Coplien,
G. Bjørnvig, ISBN-13: 978-0470684207, Wiley, 2010.
6. A Personal Computer for Children of All Ages:
http://www.mprove.de/diplom/gui/Kay72a.pdf
7. Dr. Alan Kay on the Meaning of “Object-Oriented Programming”:
http://userpage.fu-
berlin.de/~ram/pub/pub_jf47ht81Ht/doc_kay_oop_en

More Related Content

Similar to DCI Architecture at a glance

CodeOne SF 2018 "Continuous Delivery with Containers: Lessons Learned"
CodeOne SF 2018 "Continuous Delivery with Containers: Lessons Learned"CodeOne SF 2018 "Continuous Delivery with Containers: Lessons Learned"
CodeOne SF 2018 "Continuous Delivery with Containers: Lessons Learned"Daniel Bryant
 
Seminar Technology web-based and network
Seminar Technology web-based and  networkSeminar Technology web-based and  network
Seminar Technology web-based and networkEgidio A Magno Ximenes
 
Building a Car Sales website with Form2Content
Building a Car Sales website with Form2ContentBuilding a Car Sales website with Form2Content
Building a Car Sales website with Form2ContentRené Kreijveld
 
From Embedded to IoT and From Cloud to Edge & AIoT -- A computer technology t...
From Embedded to IoT and From Cloud to Edge & AIoT -- A computer technology t...From Embedded to IoT and From Cloud to Edge & AIoT -- A computer technology t...
From Embedded to IoT and From Cloud to Edge & AIoT -- A computer technology t...William Liang
 
mago3D, a web based BIM/GIS integration platform on top of open source
mago3D, a web based BIM/GIS integration platform on top of open sourcemago3D, a web based BIM/GIS integration platform on top of open source
mago3D, a web based BIM/GIS integration platform on top of open sourceSANGHEE SHIN
 
Xxe xml external entity
Xxe  xml external entityXxe  xml external entity
Xxe xml external entityheeraj nair
 
Component Object Model (COM, DCOM, COM+)
Component Object Model (COM, DCOM, COM+)Component Object Model (COM, DCOM, COM+)
Component Object Model (COM, DCOM, COM+)Peter R. Egli
 
Capella Days 2021 | An example of model-centric engineering environment with ...
Capella Days 2021 | An example of model-centric engineering environment with ...Capella Days 2021 | An example of model-centric engineering environment with ...
Capella Days 2021 | An example of model-centric engineering environment with ...Obeo
 
JUNIPER: Towards Modeling Approach Enabling Efficient Platform for Heterogene...
JUNIPER: Towards Modeling Approach Enabling Efficient Platform for Heterogene...JUNIPER: Towards Modeling Approach Enabling Efficient Platform for Heterogene...
JUNIPER: Towards Modeling Approach Enabling Efficient Platform for Heterogene...Andrey Sadovykh
 
Go Faster - Remove Inhibitors to Rapid Innovation
Go Faster - Remove Inhibitors to Rapid InnovationGo Faster - Remove Inhibitors to Rapid Innovation
Go Faster - Remove Inhibitors to Rapid InnovationFred George
 
Gitlab for JS developers (BrisJs meetup, 2019-Apr-01)
Gitlab for JS developers (BrisJs meetup, 2019-Apr-01)Gitlab for JS developers (BrisJs meetup, 2019-Apr-01)
Gitlab for JS developers (BrisJs meetup, 2019-Apr-01)Vladimir Roudakov
 
Why we should consider Open Hybrid Cloud.pdf
Why we should  consider Open Hybrid Cloud.pdfWhy we should  consider Open Hybrid Cloud.pdf
Why we should consider Open Hybrid Cloud.pdfMasahiko Umeno
 
BuildingSMART Standards Summit 2015 - JBeetz - Product Room - Use Cases for i...
BuildingSMART Standards Summit 2015 - JBeetz - Product Room - Use Cases for i...BuildingSMART Standards Summit 2015 - JBeetz - Product Room - Use Cases for i...
BuildingSMART Standards Summit 2015 - JBeetz - Product Room - Use Cases for i...Pieter Pauwels
 
CH2M BIM Heriott Watts University
CH2M BIM Heriott Watts UniversityCH2M BIM Heriott Watts University
CH2M BIM Heriott Watts UniversityMladen Petrović
 
What’s in Your Data Warehouse?
What’s in Your Data Warehouse?What’s in Your Data Warehouse?
What’s in Your Data Warehouse?DATAVERSITY
 
Why Docker, Why Now?
Why Docker, Why Now?Why Docker, Why Now?
Why Docker, Why Now?Bret Fisher
 
CI/CD Templates: Continuous Delivery of ML-Enabled Data Pipelines on Databricks
CI/CD Templates: Continuous Delivery of ML-Enabled Data Pipelines on DatabricksCI/CD Templates: Continuous Delivery of ML-Enabled Data Pipelines on Databricks
CI/CD Templates: Continuous Delivery of ML-Enabled Data Pipelines on DatabricksDatabricks
 
The Future of Service Mesh
The Future of Service MeshThe Future of Service Mesh
The Future of Service MeshAll Things Open
 
GS1 EPCIS and CBV Tutorial, Auto-ID Labs, KAIST (Apr 28, 2020)
GS1 EPCIS and CBV Tutorial, Auto-ID Labs, KAIST (Apr 28, 2020)GS1 EPCIS and CBV Tutorial, Auto-ID Labs, KAIST (Apr 28, 2020)
GS1 EPCIS and CBV Tutorial, Auto-ID Labs, KAIST (Apr 28, 2020)Daeyoung Kim
 
From Shadow IT to Empowered IT
From Shadow IT to Empowered ITFrom Shadow IT to Empowered IT
From Shadow IT to Empowered ITWSO2
 

Similar to DCI Architecture at a glance (20)

CodeOne SF 2018 "Continuous Delivery with Containers: Lessons Learned"
CodeOne SF 2018 "Continuous Delivery with Containers: Lessons Learned"CodeOne SF 2018 "Continuous Delivery with Containers: Lessons Learned"
CodeOne SF 2018 "Continuous Delivery with Containers: Lessons Learned"
 
Seminar Technology web-based and network
Seminar Technology web-based and  networkSeminar Technology web-based and  network
Seminar Technology web-based and network
 
Building a Car Sales website with Form2Content
Building a Car Sales website with Form2ContentBuilding a Car Sales website with Form2Content
Building a Car Sales website with Form2Content
 
From Embedded to IoT and From Cloud to Edge & AIoT -- A computer technology t...
From Embedded to IoT and From Cloud to Edge & AIoT -- A computer technology t...From Embedded to IoT and From Cloud to Edge & AIoT -- A computer technology t...
From Embedded to IoT and From Cloud to Edge & AIoT -- A computer technology t...
 
mago3D, a web based BIM/GIS integration platform on top of open source
mago3D, a web based BIM/GIS integration platform on top of open sourcemago3D, a web based BIM/GIS integration platform on top of open source
mago3D, a web based BIM/GIS integration platform on top of open source
 
Xxe xml external entity
Xxe  xml external entityXxe  xml external entity
Xxe xml external entity
 
Component Object Model (COM, DCOM, COM+)
Component Object Model (COM, DCOM, COM+)Component Object Model (COM, DCOM, COM+)
Component Object Model (COM, DCOM, COM+)
 
Capella Days 2021 | An example of model-centric engineering environment with ...
Capella Days 2021 | An example of model-centric engineering environment with ...Capella Days 2021 | An example of model-centric engineering environment with ...
Capella Days 2021 | An example of model-centric engineering environment with ...
 
JUNIPER: Towards Modeling Approach Enabling Efficient Platform for Heterogene...
JUNIPER: Towards Modeling Approach Enabling Efficient Platform for Heterogene...JUNIPER: Towards Modeling Approach Enabling Efficient Platform for Heterogene...
JUNIPER: Towards Modeling Approach Enabling Efficient Platform for Heterogene...
 
Go Faster - Remove Inhibitors to Rapid Innovation
Go Faster - Remove Inhibitors to Rapid InnovationGo Faster - Remove Inhibitors to Rapid Innovation
Go Faster - Remove Inhibitors to Rapid Innovation
 
Gitlab for JS developers (BrisJs meetup, 2019-Apr-01)
Gitlab for JS developers (BrisJs meetup, 2019-Apr-01)Gitlab for JS developers (BrisJs meetup, 2019-Apr-01)
Gitlab for JS developers (BrisJs meetup, 2019-Apr-01)
 
Why we should consider Open Hybrid Cloud.pdf
Why we should  consider Open Hybrid Cloud.pdfWhy we should  consider Open Hybrid Cloud.pdf
Why we should consider Open Hybrid Cloud.pdf
 
BuildingSMART Standards Summit 2015 - JBeetz - Product Room - Use Cases for i...
BuildingSMART Standards Summit 2015 - JBeetz - Product Room - Use Cases for i...BuildingSMART Standards Summit 2015 - JBeetz - Product Room - Use Cases for i...
BuildingSMART Standards Summit 2015 - JBeetz - Product Room - Use Cases for i...
 
CH2M BIM Heriott Watts University
CH2M BIM Heriott Watts UniversityCH2M BIM Heriott Watts University
CH2M BIM Heriott Watts University
 
What’s in Your Data Warehouse?
What’s in Your Data Warehouse?What’s in Your Data Warehouse?
What’s in Your Data Warehouse?
 
Why Docker, Why Now?
Why Docker, Why Now?Why Docker, Why Now?
Why Docker, Why Now?
 
CI/CD Templates: Continuous Delivery of ML-Enabled Data Pipelines on Databricks
CI/CD Templates: Continuous Delivery of ML-Enabled Data Pipelines on DatabricksCI/CD Templates: Continuous Delivery of ML-Enabled Data Pipelines on Databricks
CI/CD Templates: Continuous Delivery of ML-Enabled Data Pipelines on Databricks
 
The Future of Service Mesh
The Future of Service MeshThe Future of Service Mesh
The Future of Service Mesh
 
GS1 EPCIS and CBV Tutorial, Auto-ID Labs, KAIST (Apr 28, 2020)
GS1 EPCIS and CBV Tutorial, Auto-ID Labs, KAIST (Apr 28, 2020)GS1 EPCIS and CBV Tutorial, Auto-ID Labs, KAIST (Apr 28, 2020)
GS1 EPCIS and CBV Tutorial, Auto-ID Labs, KAIST (Apr 28, 2020)
 
From Shadow IT to Empowered IT
From Shadow IT to Empowered ITFrom Shadow IT to Empowered IT
From Shadow IT to Empowered IT
 

Recently uploaded

Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....kzayra69
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfLivetecs LLC
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 

Recently uploaded (20)

Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdf
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 

DCI Architecture at a glance

Editor's Notes

  1. Включаем мозги
  2. С практической точки зрения 1,5 года и продолжаем открывать аспекты Примеры на руби Вопросы по ходу 1-2 например чтобы уложиться Опрос про MVC DCI
  3. Опрос что такое ООП своими словами Акцент на структуре данных
  4. Алан Кей
  5. Smalltalk на концепции С++ сместил фокус на классы
  6. Нет инструментов для моделирование поведения Две разные системы в design и runtime
  7. Если вы все еще мне не верите, то послушайте автора термина.
  8. Продемонстрировать на реальном примере Бизнес правила стейкхолдеры
  9. Структура: клиент-контракт-продукт-фича пользователь-клиент Каналы продаж Типы продуктов Типы подписок
  10. Модель до DCI Сценарий заморозки легко видно
  11. Все? Нет. Разные фичи как иерархия классов с поведением в наследниках
  12. XING событийная платформа Полиморфизм Один из простейших сценариев
  13. Иллюзия реальности Разные модели
  14. Модель из двух аспектов структура (IS) и поведение/взаимодействие (DOES)
  15. Стабильная часть Структурв – What the system IS Тупые DTO
  16. Классы domain model Существительные и глаголы в OOP Query методы
  17. Динамическая и часто меняющаяся часть Алгоритмы взаимодействия – What the system DOES Пример со мной как со спикером взаимодействующим со слушателями
  18. Stateless Модули в Ruby
  19. Место где объектам присваиваются роли Пример со мной Локальный identity
  20. Описание usecase – измененный в процессе рефакторинга Naming convention command, query (spec), policy Модули примешиваются, механика Ruby Один объект, 2 роли, явное взаимодействие Инвариант, основной поток
  21. Алгоритм как на ладони
  22. Во что резолвится self Объект к которому будет примешана роль в контексте определенного сенария
  23. Расскажите мне что происходит в этом контексте Имя – подписки с регулярным продлением Роли и объекты Инвариант Основной поток
  24. Взаимодействие с Debtor Два потока
  25. чудо
  26. DDD – изменяющаяся модель Структура доменной модели
  27. Агрегат Пример Локальная идентичность Root, границы, ссылки и проверка инвариантов DCI роли как подсказка
  28. Клиент очевидный агрегат Но границы неясны
  29. Очевидные границы Employer как рлсказка Контракт как самостоятельный агрегат
  30. События как нотификации об изменениях Развязывает части системы Контексты как границы где происходят изменения
  31. Роль возвращает события Не определяет как они обрабатываются
  32. Messaging Monitoring Stats Boilerplate код
  33. DCI и DDD для часто меняющихся правил Не нужны для CRUD DDD однозначно выиграет от разделения статической и динамической частей
  34. Применяем DCI в unit test Unit test как еще один клиент системы
  35. Документация в исполняемом виде Top-down feature driven approach BDD
  36. Тестируем не интерфейс а поведение
  37. Top down approach Набор требований к поведению в разных usecase от одного stakeholder Role-object-context(usecase)
  38. Альтернативные потоки Для тестирования не нужны объекты domain model можно заменить затычками Настоящие unit-test в Rails
  39. Основной поток
  40. Подробные примеры на сайте fulloo и в google group object composition
  41. People and communication over tools and processes Любить изменения