DCI - the architecture
from the future?
Andrzej Krzywda
Arkency
Andrzej Krzywda
• Ruby
• Arkency
• async/remote work
• DDD, Hexagonal, CQRS/ES, Clean Architecture
• used DCI in production 3.years.ago
OOP vs FP
Use cases!
DCI
• Data
• Context
• Interaction
The mental model
objects
function
Focus on runtime
interaction
http://www.slideshare.net/cosenzaLab/dci-gizmo
Examples
• Gaming platform
• Meetup context
• Account example
Lessons from production
• Fewer objects
• More roles
• Use-cases == awesome
• great for testing (at use-case level)
• limitations of Ruby (unable to unextend)
http://fulloo.info
https://www.youtube.com/watch?v=KtHQGs3zFAM
Cope vs Uncle Bob
on TDD
Marvin is a programming language that was
designed with DCI in mind. It builds heavily on C#.
The first versions of Marvin can be seen as
extensions to C# where versions in the road map
will most likely reshape some of the fundamentals
to provide even better support for DCI
Code examples
Is it of practical use?
DCI as inspiration
How would it look as
DCI?
Thanks!

DCI - the architecture from the future