BT
x Your opinion matters! Please fill in the InfoQ Survey about your reading habits!

Domain Driven Design Exchange (DDDx) 2012 - Breaking Away from Object Oriented Design(OOD) Paradigm

by Amiruddin Nagri on Jul 02, 2012 |

This year's DDDx kicked off with the keynote by Eric Evans that focussed on the paradigm shift, where earlier DDD was considered a part of Object Oriented Design, to now where DDD is considered on its own. Eric credited this shift to the current trend of looking beyond OO languages, including functional languages:

Object Oriented Programming was the dominant paradigm when Domain Driven Design was written. When I was coming up as a programmer, Object Oriented Programming was really the exciting new thing and then became the dominant paradigm. So much so that the two things were kind of intertwined in people's mind, the idea of Domain Driven Design and the idea of Object Oriented Design were almost inseparable in most people's mind and yet never in my mind. And now we are starting to see some real interest in other things and that's important to recognize. So couple of talks today involve Domain Driven Design not in particularly Object Oriented Settings.

The first talk by Greg Young was related to this shift where he talked about how functional programming and DDD play together. Ian Johnson presented his conclusion of the talk seeking more clarification how this might play out fully:

There are things that I have yet to be convinced about in terms of functional DDD:
  • Cohesion: one thing the object model gives you is strong cohesion of the functions, even if we are doing the immutable domain object then all of the state change methods are bound together in the object and can be hidden inside the object from the outside world...
  • Where is the model that we are working on? Where is the ubiquitous language? I can see that we can still model the verbs as methods, as event representations, but where do the nouns fit into this? Do we lose the nouns now?

Rinat Abdullin recommended the following presentations:

You can view all the presentations online.

Twitter feedback on the event included:

ijrussell: Home from an excellent day at @skillsmatter I think that was the best #dddx so far. :-)
jnthnwrthngtn: #DDDX was so awesome this year, @carlmasak and I are already signed up for next year! Thanks, @Edument, for sending us to awesome stuff! :)

The one day exchange is running in its 5th year and was organized by SkillsMatter at their office in London. The next year's DDDx is scheduled on 14th of Jun 2013 at the same venue.

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Nice to see the change in mindshift from purely OOP to Functional by Faisal Waris

I watched Greg Young's talk and found it very inspirational. OOP thinking currently dominates the land for modeling and design but it does not have to.

BTW

F#/OCaml "Record" structures are perfect for what Greg was describing for "event sourcing", e.g:

let customer1 = {Name="a"; Phone="b"; .... plus 100's of other fields ...}

To "update" the phone number of the customer we can use the 'with' keyword to create a new customer with the updated value:

{customer1 with Phone="c"}

I can see other functional programming features such as "partial application" and "function composition" playing well with DDD.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

1 Discuss

Educational Content

General Feedback
Bugs
Advertising
Editorial
InfoQ.com and all content copyright © 2006-2014 C4Media Inc. InfoQ.com hosted at Contegix, the best ISP we've ever worked with.
Privacy policy
BT