Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

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

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

This item in japanese

Lire ce contenu en français


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.

Rate this Article


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.

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

Community comments

  • Nice to see the change in mindshift from purely OOP to Functional

    by Faisal Waris,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    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.


    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

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