

The DCI Architecture: A New Vision of Object-Oriented Programming (2009) - stefano
http://www.artima.com/articles/dci_vision.html

======
al2o3cr
I remember this from 2009-2012. My searches turn up no articles from after
that period; are there more recent examples / discussions about DCI?

~~~
ExpiredLink
It basically is Reenskaug's and Coplien's obsession without real-world
traction. IMO, the architecture is conceptually flawed.

~~~
dragonline
Why? What alternatives would you suggest? The narrative appears to fill a gap
in OO thinking and seems reasonable enough to invest time and effort in
applying it to future efforts.

------
lucisferre
I use this pattern occasionally, though only when there is sufficient
complexity to justify it. I see it as a tool similar to CQRS or hexagonal
architecture. It is a way to manage complexity in a more maintainable manner
that is easier to reason about and test.

I'll often use it when building out tasks and services, where a simple model
(data) is passed into a service (context) and interaction/behaviour specific
to that task is injected into the model. In Ruby I'll typically use
refinements to do this.

The primary purpose of this approach is avoiding model bloat in my code by
being able to decompose additional complexity over time in a flexible way.

If you're interested in getting into DCI more deeply you might want to check
out Jim Gay's "Clean Ruby" book ([http://clean-ruby.com/](http://clean-
ruby.com/))

~~~
McUsr
IMO: This may be one of the important papers to read (also the link within it)
because it gives such a good perspective on things. "Some sees the the Model
View Controller model as some observer patterns, while it really is to map the
datamodel of the program onto the users mind model" It provides a great
perspective.

