Hi Ged,
Yes, I'm familiar with the concepts in DCI; one of our other committers, Maurizio, has also made that observation in the past. I do think one could describe Isis as an implementation of the DCI approach and not be bending the truth very much (perhaps even at all). In fact, there's a bit of a deeper connection between DCI and Naked Objects. Trygve Reenskaug, with Jim Coplein one of the authors of DCI, was one of the external examiners to Richard Pawson's PhD thesis on Naked Objects, and was good enough to write a forward to Richard's document [1]. Whatever the theory, I do think that with Isis one could use the entities just to define the structure, and then layer all the behaviour on top as contributions. Indeed, each use case could be a separate domain service named after that use case. Moreover, the event bus stuff we added in 1.5.0/1.6.0 then allows those original use cases to be modified outside of their original context... a subscriber to an event (=action) can disable (or even hide) an action if appropriate. And its for this capability of Isis to be able to decouple applications that we chose the word "module" for the different components that we are assembling on the new isisaddons.org site [2]... trying to breathe a bit of life into a much neglected pattern of DDD [3]. Cheers Dan [1] http://www.nakedobjects.org/downloads/Pawson%20thesis.pdf [2] http://www.isisaddons.org [3] http://domainlanguage.com/ddd/patterns/DDD_Reference_2011-01-31.pdf On 7 Sep 2014 10:58, "Ged Byrne" <[email protected]> wrote: > Hi Dan, > > > Are you familiar with DCI? > > > > > "Object-oriented programming was supposed to unify the perspectives of the > programmer and the end user in computer code: a boon both to usability and > program comprehension. While objects capture structure well, they fail to > capture system action. DCI is a vision to capture the end user cognitive > model of roles and interactions between them." > > http://www.artima.com/articles/dci_vision.html > > > > > It's always struck me that there is a similarity between DCI and Naked > Objects. Lack of traits is one of the big differences sice DCI relies so > heavily on them. > > > > > So I'm intrigued to learn about contributions. > > > > > Regards, > > > > > > > > Ged > > > > > > > > > > — > Sent from Mailbox > > On Sun, Sep 7, 2014 at 10:00 AM, Dan Haywood <[email protected] > > > wrote: > > > Hi Oscar, > > Yes, the are many similarities between traits and contributions. > > In fact I've often thought that Isis is in some regards more of an > > aspect-oriented framework than an object - oriented frameworks. At the > > system level it implements presentation logic as a cross - cutting > concern, > > sell as the more usual security, transactions and auditing. > > Using the event bus one can also book into these pointcuts at an > > application level. > > Cheers, > > Dan. > > On 6 Sep 2014 18:01, "QUALITEC - Óscar Bou" <[email protected]> wrote: > >> > >> Hi to all. > >> > >> Just to notice that I've been reading recently about the concept of > >> "traits" [1] and "mixins" [2], as a way to encourage code reuse avoiding > >> inheritance problems. > >> > >> This language features are supported by languages like Ada, Groovy, > Scala > >> or Python, but there's no native support for Java. > >> > >> It's REALLY noticeable that we, as Apache Isis users, have somewhat an > >> implementation of those concepts by means of contributions [3]. > >> > >> So, can we think about contributions as a "traits" or "mixins" > >> implementation for Apache Isis developed systems? > >> > >> > >> Regards, > >> > >> Oscar > >> > >> > >> > >> [1] http://en.wikipedia.org/wiki/Trait_(computer_programming) > >> > >> [2] http://en.wikipedia.org/wiki/Mixin > >> > >> [3] > >> > http://isis.apache.org/more-advanced-topics/how-to-01-062-How-to-decouple-dependencies-using-contributions.html
