Paul Gielens:ThoughtsService

another Endpoint to my thoughts

News

Syndication

Ads


Favorites

Projects

Guide to Start with Domain-Driven Design

I have just returned from the Software Developers Conference 2007 in Arnhem. SDC2007_vignet

Domain-Driven Design (DDD) is getting more popular in the Netherlands. My session on DDD applied in .NET, the conference room was packed with people standing, sitting on the ground and peeping from the door. We had a lively discussion around expressing the model in software. My goal was to give the attendants great insights in how DDD can help with building better software and the kind of decisions to make that keep the model and implementation aligned with each other. Somewhere in the middle of the session the enthusiasm overwhelmed me and I lost control. It was reassuring you guys enjoyed the session since the evaluations spoke for themselves.

Now, on to what this post is about. After the session I received the following question.

You inspired me to learn more. Where do I start?

Thanks, this was “the” question I was hoping for. My advice for fellow developers:

First week
Find yourself a copy of Domain Driven Design Quickly. This book is a summary of Eric Evan’s Domain-Driven Design book (a must have). Login to download this free book or purchase the print copy.

Second week
Get a copy of Applying Domain-Driven Design and Patterns: With Examples in C# and .NET, Jimmy Nilsson. This book is shows you how to begin with DDD and applying such things as Test Driven Development, object relational mapping and many other techniques that are key to future software development.

Fifth week
Do it yourself. Start practicing with the newly learned concepts and discuss them with your team. In this stage it is very important to start experimenting and developing the ubiquitous language, which brings me to the final step.

Beyond
Get a copy of Domain-Driven Design: Tackling Complexity in the Heart of Software, Eric Evans. Study it, read it at least a dozen times.

Beyond++
Get a copy of Streamlined Object Modeling: Patterns, Rules, and Implementations. Get a copy of Agile Principles, Patterns, and Practices in C#. Get a copy of Patterns of Enterprise Application Architecture.

ps: I haven't blogged for a while and lost myself in work and (looking back) other unimportant work related stuff. Thank you, Evan and Rich for the heads up.

Comments

Sam Gentile said:

Thank God for coffee.... Astoria/Orcas/Data Services The Astoria September 2007 CTP is now available

# September 19, 2007 10:21 AM

Jan Willem Tulp said:

I liked your talk about Domain Driven Design. Unfortunately the time was actually too short to get to the core of DDD enough. However, a design principle you didn't mention, but is very much related to what DDD is all about, is Separation Of Concerns. And in DDD it's more or less 'extreme Separation Of Concerns'. The code example you showed with the 'ugly' design could be improved by separating concerns more, and to make classes responsible for just 1 thing.

Anyway, it was an interesting talk! :)

# September 21, 2007 7:30 AM

Evan said:

I'm just glad your back at it.. ;-)

# September 21, 2007 11:46 AM

Colin Jack said:

Good to see a guide to learning DDD.

On step 2 I'd recommend going straight to Eric Evans then getting on the Web or going to the DDD forum or some DDD blogs. I (and people I work with) made the mistake of reading "Applied Domain-Driven Design" when we started out on DDD and we were all massively unimpressed (promised a lot but delivered little).

And yeah I agree on the Beyond++ step, I have not yet read streamlined OM but the other two are classics.

# September 25, 2007 11:25 AM

domain » Guide to Start with Domain-Driven Design said:

Pingback from  domain » Guide to Start with Domain-Driven Design

# November 13, 2007 8:20 AM

Guide to Start with Domain-Driven Design said:

Pingback from  Guide to Start with Domain-Driven Design

# November 27, 2007 5:18 AM
Leave a Comment

(required) 

(required) 

(optional)

(required)