Domain-driven design

128 views
Skip to first unread message

Matthew Browne

unread,
Nov 27, 2019, 8:54:59 PM11/27/19
to object-co...@googlegroups.com
This talk by Eric Evans is from 2015, but I just came across it.
Definitely worth a listen—especially the first 10 minutes or so where he
gives an overview of the big concepts and talks about 2015 vs. when the
book came out.

https://www.youtube.com/watch?v=dnUFEg68ESM&t=1s

As Cope has pointed out many times, domain-driven design did not start
with Evans's book of course, but Evans's work has certainly had a
positive effect, and it aligns very well with DCI.

James O Coplien

unread,
Nov 27, 2019, 10:13:40 PM11/27/19
to object-co...@googlegroups.com


On 28 Nov 2019, at 10.54, Matthew Browne <mbro...@gmail.com> wrote:

As Cope has pointed out many times, domain-driven design did not start with Evans's book of course, but Evans's work has certainly had a positive effect, and it aligns very well with DCI.

Can you say more about how DDD supports DCI? I have never managed to understand how really to marry them.

Unmesh Joshi

unread,
Nov 27, 2019, 10:32:37 PM11/27/19
to object-co...@googlegroups.com
>>>Can you say more about how DDD supports DCI? I have never managed to understand how really to marry them
I think its probably possible by relating it to concept of Aggregates than anything else?. Micro'services' folks relate to it for implementing things like Event Sourcing.  The domain services acting on domain aggregates can be related to DCI? I kind of hinted at it in the following blog I wrote about Akka Actors and Aggregates.. 

--
You received this message because you are subscribed to the Google Groups "object-composition" group.
To unsubscribe from this group and stop receiving emails from it, send an email to object-composit...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/object-composition/E66EC8ED-5AD1-4E94-86AC-A7F7019BD1A0%40gmail.com.

Matthew Browne

unread,
Nov 28, 2019, 9:22:27 PM11/28/19
to object-co...@googlegroups.com

I was referring to the big non-technical concepts, not the implementation strategies in the DDD book. In the talk, Evans explains that the essence of DDD is forming a shared model and vocabulary between the stakeholders and the developers. He also points out that DDD wasn't intended to be limited to the OOP paradigm, and that people have been applying it to other paradigms—something I had already happened to notice, e.g. https://pragprog.com/book/swdddf/domain-modeling-made-functional.

In addition to the general goal of a shared mental model, another interesting parallel is the emphasis that both DCI and DDD place on the importance of context. In DCI it's at the use case level, whereas DDD is more concerned with the "bounded context" concept, which is the context in which the "ubiquitous language" is applied and has consistent meaning. (As those familiar with DDD are aware, "ubiquitous" in "ubiquitous language" doesn't just literally mean "everywhere", but rather everywhere [code/documentation/communication] within the same bounded context.) Since DCI is all about mental models, I think it's useful to keep in mind that the same words doesn't necessarily mean the same thing to everyone in the same business, or might mean different things in the context of different apps or products produced by the same business.

Quang

unread,
Dec 13, 2019, 6:16:49 PM12/13/19
to object-composition
A much better book and much more relevant to DCI is: https://www.amazon.com/Object-Design-Roles-Responsibilities-Collaborations/dp/0201379430
It has a lot of quotes from Trygve. It defines OOP pretty well, but its solution is to use design patterns, classes, composition, inheritance, double dispatching to implement OOP system is what we have today.
I think it is a must read before jumping into DCI to really know where DCI comes from instead of jumping out of DDD, TDD, web framework... then dive in to DCI.

/quang

Marius - Adrian Francu

unread,
Dec 14, 2019, 11:00:23 AM12/14/19
to object-co...@googlegroups.com

I think the first relevant book for DCI is "Working with objects The OOram Software Engineering Method" written by Trygve. Is wonderful this book. Then the "Lean Architecture" book written by James Coplien. 


By the way, "Roles" from the title of the book you mention comes from Trygve. I remember I saw a video in which James Coplien mentioned about a discussion held on a ship between Trygve and Rebeca Brock. 


@Trygve: Have you considered publishing the book "Working with objects The OOram Software Engineering Method" also on Leanpub? Of course with updated thoughts. I liked a lot a thing Jerry Weinberg did when he put the book "The Psychology of computer programming" on Leanpub. After each original chapter he made some notes at the end of each chapter.

Regards,

Marius


--
You received this message because you are subscribed to the Google Groups "object-composition" group.
To unsubscribe from this group and stop receiving emails from it, send an email to object-composit...@googlegroups.com.

Quang

unread,
Dec 14, 2019, 2:29:53 PM12/14/19
to object-composition
I agreed, the 2 books you mentioned are "DCI" books, not just relevant :)

/quang
To unsubscribe from this group and stop receiving emails from it, send an email to object-composition+unsub...@googlegroups.com.

Trygve Reenskaug

unread,
Dec 16, 2019, 7:28:17 AM12/16/19
to object-co...@googlegroups.com
Hi Marius,
many thanks for a good idea. The files for the actual book are lost, but I do have the last manuscript as a .PDF:

    http://heim.ifi.uio.no/~trygver/1996/book/WorkingWithObjects

I will make it more accessible as soon as my blasted article is out of the way (I'm waiting for the second proofs).

Best
--Trygve

On 14.12.2019 17:00, Marius - Adrian Francu wrote:
> > I think the first relevant book for DCI is "Working with objects The > OOram Software Engineering Method" written by Trygve. Is wonderful > this book. Then the "Lean Architecture" book written by James > Coplien. > > > By the way, "Roles" from the title of the book you mention comes from > Trygve. I remember I saw a video in which James Coplien mentioned > about a discussion held on a ship between Trygve and Rebeca Brock. > > > @Trygve: Have you considered publishing the book "Working with > objects The OOram Software Engineering Method" also on Leanpub? Of > course with updated thoughts. I liked a lot a thing Jerry Weinberg > did when he put the book "The Psychology of computer programming" on > Leanpub. After each original chapter he made some notes at the end of > each chapter. > > Regards, > > Marius > > > On Sat, 14 Dec 2019, 01:16 Quang, <wan...@gmail.com > <mailto:wan...@gmail.com>> wrote: > > A much better book and much more relevant to DCI is: > https://www.amazon.com/Object-Design-Roles-Responsibilities-Collaborations/dp/0201379430 > > It has a lot of quotes from Trygve. It defines OOP pretty well, but its solution is to use design patterns, classes, composition, inheritance, double dispatching to implement OOP system is what we have today.
> I think it is a must read before jumping into DCI to really know > where DCI comes from instead of jumping out of DDD, TDD, web > framework... then dive in to DCI. > > /quang > > On Wednesday, November 27, 2019 at 7:13:40 PM UTC-8, Cope wrote: > > > >> On 28 Nov 2019, at 10.54, Matthew Browne <mbro...@gmail.com> >> wrote: >> >> As Cope has pointed out many times, domain-driven design did not >> start with Evans's book of course, but Evans's work has certainly >> had a positive effect, and it aligns very well with DCI. > > Can you say more about how DDD supports DCI? I have never managed to > understand how really to marry them. > > -- You received this message because you are subscribed to the Google > Groups "object-composition" group. To unsubscribe from this group and > stop receiving emails from it, send an email to > object-composit...@googlegroups.com > <mailto:object-composit...@googlegroups.com>. To view > this discussion on the web visit > https://groups.google.com/d/msgid/object-composition/59c78675-2f81-4e41-8e26-0e27b930d34d%40googlegroups.com > <https://groups.google.com/d/msgid/object-composition/59c78675-2f81-4e41-8e26-0e27b930d34d%40googlegroups.com?utm_medium=email&utm_source=footer>. > > > --
> You received this message because you are subscribed to the Google > Groups "object-composition" group. To unsubscribe from this group and > stop receiving emails from it, send an email to > object-composit...@googlegroups.com > <mailto:object-composit...@googlegroups.com>. To view > this discussion on the web visit > https://groups.google.com/d/msgid/object-composition/CAMoryMKyjkNDC6OMiwzO4mhFbfRQr0t%3DCKm2hKB5o-M6KY1p5A%40mail.gmail.com > <https://groups.google.com/d/msgid/object-composition/CAMoryMKyjkNDC6OMiwzO4mhFbfRQr0t%3DCKm2hKB5o-M6KY1p5A%40mail.gmail.com?utm_medium=email&utm_source=footer>.
--
> /The essence of object orientation is that objects collaborate  to achieve a goal. /
Trygve Reenskaug      mailto: try...@ifi.uio.no <mailto:%20tr...@ifi.uio.no>
Morgedalsvn. 5A       http://folk.uio.no/trygver/
N-0378 Oslo             http://fullOO.info
Norway                     Tel: (+47) 468 58 625


Marius - Adrian Francu

unread,
Dec 16, 2019, 1:06:05 PM12/16/19
to object-co...@googlegroups.com
Hi Trygve,

If you need any help please let me, well us, know. 

You know, I almost read whole this group posts and especially yours and James Coplien replies. Maybe also a new chapter can be added. I know is not easy, not easy at all. 

Regards, 
Marius

To unsubscribe from this group and stop receiving emails from it, send an email to object-composit...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/object-composition/2061cbbc-9ee7-1d69-43da-75cc6fabc95a%40ifi.uio.no.

Trygve Reenskaug

unread,
Dec 17, 2019, 5:06:06 AM12/17/19
to object-co...@googlegroups.com, Marius - Adrian Francu
Many thanks. I will let you know as soon as I have something concrete.

The essence of object orientation is that objects collaborate  to achieve a goal.


Trygve Reenskaug      
mailto: try...@ifi.uio.no

Marius - Adrian Francu

unread,
Dec 17, 2019, 7:20:37 AM12/17/19
to object-composition
Thank you.

Regards,
Marius


On Tuesday, December 17, 2019 at 12:06:06 PM UTC+2, trygve wrote:
Many thanks. I will let you know as soon as I have something concrete.

On 16.12.2019 19:05, Marius - Adrian Francu wrote:
Hi Trygve,

If you need any help please let me, well us, know. 

You know, I almost read whole this group posts and especially yours and James Coplien replies. Maybe also a new chapter can be added. I know is not easy, not easy at all. 

Regards, 
Marius

On Mon, 16 Dec 2019, 14:28 Trygve Reenskaug, <try...@ifi.uio.no> wrote:
Hi Marius,
many thanks for a good idea. The files for the actual book are lost, but I do have the last manuscript as a .PDF:

    http://heim.ifi.uio.no/~trygver/1996/book/WorkingWithObjects

I will make it more accessible as soon as my blasted article is out of the way (I'm waiting for the second proofs).

Best
--Trygve

On 14.12.2019 17:00, Marius - Adrian Francu wrote:
> > I think the first relevant book for DCI is "Working with objects The > OOram Software Engineering Method" written by Trygve. Is wonderful > this book. Then the "Lean Architecture" book written by James > Coplien. > > > By the way, "Roles" from the title of the book you mention comes from > Trygve. I remember I saw a video in which James Coplien mentioned > about a discussion held on a ship between Trygve and Rebeca Brock. > > > @Trygve: Have you considered publishing the book "Working with > objects The OOram Software Engineering Method" also on Leanpub? Of > course with updated thoughts. I liked a lot a thing Jerry Weinberg > did when he put the book "The Psychology of computer programming" on > Leanpub. After each original chapter he made some notes at the end of > each chapter. > > Regards, > > Marius > > > On Sat, 14 Dec 2019, 01:16 Quang, <wan...@gmail.com > <mailto...@gmail.com>> wrote: > > A much better book and much more relevant to DCI is: > https://www.amazon.com/Object-Design-Roles-Responsibilities-Collaborations/dp/0201379430 > > It has a lot of quotes from Trygve. It defines OOP pretty well, but its solution is to use design patterns, classes, composition, inheritance, double dispatching to implement OOP system is what we have today.
> I think it is a must read before jumping into DCI to really know > where DCI comes from instead of jumping out of DDD, TDD, web > framework... then dive in to DCI. > > /quang > > On Wednesday, November 27, 2019 at 7:13:40 PM UTC-8, Cope wrote: > > > >> On 28 Nov 2019, at 10.54, Matthew Browne <mbro...@gmail.com> >> wrote: >> >> As Cope has pointed out many times, domain-driven design did not >> start with Evans's book of course, but Evans's work has certainly >> had a positive effect, and it aligns very well with DCI. > > Can you say more about how DDD supports DCI? I have never managed to > understand how really to marry them. > > -- You received this message because you are subscribed to the Google > Groups "object-composition" group. To unsubscribe from this group and > stop receiving emails from it, send an email to > object-composition+unsub...@googlegroups.com > <mailto:object-composition+unsub...@googlegroups.com>. To view > this discussion on the web visit > https://groups.google.com/d/msgid/object-composition/59c78675-2f81-4e41-8e26-0e27b930d34d%40googlegroups.com > <https://groups.google.com/d/msgid/object-composition/59c78675-2f81-4e41-8e26-0e27b930d34d%40googlegroups.com?utm_medium=email&utm_source=footer>. > > > --
> You received this message because you are subscribed to the Google > Groups "object-composition" group. To unsubscribe from this group and > stop receiving emails from it, send an email to > object-composition+unsub...@googlegroups.com > <mailto:object-composition+unsub...@googlegroups.com>. To view > this discussion on the web visit > https://groups.google.com/d/msgid/object-composition/CAMoryMKyjkNDC6OMiwzO4mhFbfRQr0t%3DCKm2hKB5o-M6KY1p5A%40mail.gmail.com > <https://groups.google.com/d/msgid/object-composition/CAMoryMKyjkNDC6OMiwzO4mhFbfRQr0t%3DCKm2hKB5o-M6KY1p5A%40mail.gmail.com?utm_medium=email&utm_source=footer>.
--
> /The essence of object orientation is that objects collaborate  to achieve a goal. /
Trygve Reenskaug      mailto: try...@ifi.uio.no <mailto:%...@ifi.uio.no>

Morgedalsvn. 5A       http://folk.uio.no/trygver/
N-0378 Oslo             http://fullOO.info
Norway                     Tel: (+47) 468 58 625


--
You received this message because you are subscribed to the Google Groups "object-composition" group.
To unsubscribe from this group and stop receiving emails from it, send an email to object-composition+unsub...@googlegroups.com.
--
You received this message because you are subscribed to the Google Groups "object-composition" group.
To unsubscribe from this group and stop receiving emails from it, send an email to object-composition+unsub...@googlegroups.com.

Trygve Reenskaug

unread,
Dec 23, 2019, 8:44:09 AM12/23/19
to object-co...@googlegroups.com, Marius - Adrian Francu
Hi Marius,
I need your help. You, together with the whole list, can do me an essential service:

It is to read and comment upon Personal programming and the object computer:
https://doi.org/10.1007/s10270-019-00768-3

You are among the few who groks the difference between object-oriented and class-oriented programming. Your comments, positive or negative, are therefore especially valuable.

In the best of all worlds, this list would produce some interesting discussions. In the worst, the article will simply be ignored.

--Trygve

--

The essence of object orientation is that objects collaborate  to achieve a goal.


Trygve Reenskaug      
mailto: try...@ifi.uio.no

Marius - Adrian Francu

unread,
Dec 23, 2019, 12:01:09 PM12/23/19
to Trygve Reenskaug, object-co...@googlegroups.com
Hi Trygve, 

I will read it this evening/night and get back to you as soon as possible. 

Regards, 
Marius 

Marius - Adrian Francu

unread,
Dec 27, 2019, 3:45:06 PM12/27/19
to object-composition
Hi Trygve. I saw there is already a thread started regarding the paper you just published. I'll publish my thoughts there. Let's hope others will join.

Regards,
Marius

Reply all
Reply to author
Forward
0 new messages