Warning: Creating default object from empty value in /home/jfcouture/jfcouture.com/wp-content/themes/platform/core/library/class.layout.php on line 159

Warning: Creating default object from empty value in /home/jfcouture/jfcouture.com/wp-content/themes/platform/core/library/class.layout.php on line 162

Warning: Creating default object from empty value in /home/jfcouture/jfcouture.com/wp-content/themes/platform/core/library/class.layout.php on line 165

Warning: Creating default object from empty value in /home/jfcouture/jfcouture.com/wp-content/themes/platform/core/library/class.layout.php on line 168

Warning: Creating default object from empty value in /home/jfcouture/jfcouture.com/wp-content/themes/platform/core/library/class.layout.php on line 171

Warning: Creating default object from empty value in /home/jfcouture/jfcouture.com/wp-content/themes/platform/core/library/class.layout.php on line 173

Warning: Creating default object from empty value in /home/jfcouture/jfcouture.com/wp-content/themes/platform/core/library/class.layout.php on line 175

Warning: Creating default object from empty value in /home/jfcouture/jfcouture.com/wp-content/themes/platform/core/library/class.layout.php on line 197

Warning: Creating default object from empty value in /home/jfcouture/jfcouture.com/wp-content/themes/platform/core/library/class.layout.php on line 201

Warning: Creating default object from empty value in /home/jfcouture/jfcouture.com/wp-content/themes/platform/core/library/class.layout.php on line 224

Warning: Creating default object from empty value in /home/jfcouture/jfcouture.com/wp-content/themes/platform/core/library/class.layout.php on line 225

Warning: Creating default object from empty value in /home/jfcouture/jfcouture.com/wp-content/themes/platform/core/library/class.layout.php on line 226

Warning: Creating default object from empty value in /home/jfcouture/jfcouture.com/wp-content/themes/platform/core/library/class.layout.php on line 316

Warning: Creating default object from empty value in /home/jfcouture/jfcouture.com/wp-content/themes/platform/core/library/class.layout.php on line 316

Warning: Creating default object from empty value in /home/jfcouture/jfcouture.com/wp-content/themes/platform/core/library/class.layout.php on line 316

Warning: Creating default object from empty value in /home/jfcouture/jfcouture.com/wp-content/themes/platform/core/library/class.layout.php on line 316
The M in Rails’ MVC: Domain Driven Design

One of the best books I’ve read about design is Domain Driven Design: Tackling Complexity in the Heart of Software, by Eric Evans. InfoQ has a small ebook called Domain Driven Design Quickly that provides a nice summary of the book. It was a good refresher for me as I read DDD about three years ago.

So What is Domain Driven Design? Read the link to have a good overview. Here are the two most important points:

  • Focus on modeling the domain and domain logic of your application.
  • Build a “Ubiquitous Language” that is used by all the team (from domain experts to analysts to developpers).

The most interesting part of the book for me was the patterns presented as the basic building blocks of a model-driven design: Layered Architecture, Entities, Value Objects, Services, Modules, Aggregates, Factories, Repositories. These are all very simple but fundamental patterns in software development. These are types of objects that are present in all designs. Understanding the difference between a value object and an entity is crucial and can help simplify a design.

The book also discusses the importance of iterative design, the importance of incorporating back what you learned about the domain in the model as you iterate and how to preserve the integrity of the model. There is a good discussion of ways of separating the model as the team gets bigger.

The value of this book for a Rails developer

Ever heard about skinny controller, fat model? This is THE book about building a rich model.

However, it really depends on the type of application you’re building. Most Rails application are mostly concerned about CRUD operations without too much logic behind. You won’t get out much from this book.

But if you’re working on a business app with a lot of business logic, then this is a must-read.

The ebook also has a small interview with the author. He highlights the expressiveness of ruby and mentions that DSLs are probably the next big step in Domain Driven Design.

Popularity: 42% [?]

 

10 Responses to The M in Rails’ MVC: Domain Driven Design

  1. heri says:

    Hi JF, thanks, sounds like a great book, i’ll probably buy in my next round

  2. This web site truly has all the information and facts I wanted concerning this subject and didn’t know who
    to ask.

    • Ipoh says:

      Posted on November 8, 2012 by I’ll gear cute blue mittens free this reeviw to 2 types of people: current Zune owners who are considering an upgrade, and people trying to decide between a Zune and an iPod. (There are other players worth considering out there, like the Sony Walkman X, but I hope this gives you enough info to make an informed decision of the Zune vs players other than the iPod line as well.)

    • Mhal says:

      Posted on November 9, 2012 by Excellent weblog, sgtonrly monitoring for some time your current items into it and I have got to let you know that you are currently doing a neat thing! It’s fantastic that you have even now men and women like you!

    • Sainalcute says:

      Posted on November 8, 2012 by Nice post. I was checking ctlnoantsy this blog and I’m impressed! Very useful info specifically the last part I care for such information a lot. I was looking for this particular information for a long time. Thank you and best of luck.

  3. SEO reseller is a service that is provided to achieve visibility for a
    site whose original host has no expertise to achieve this independently.

    The trick here is to set up reciprocal links with associated and popular websites.
    Something else that these companies may offer is going
    to be an education on what the person did wrong in the first place.

    Visit my web-site … seo services MELBOURNE (newna.e2web.co.kr)

  4. First of all I would like to say superb blog!

    I had a quick question in which I’d like to ask if you do not mind.
    I was interested to find out how you center yourself and clear your head before
    writing. I have had a difficult time clearing my thoughts
    in getting my ideas out. I truly do take pleasure in writing but it just
    seems like the first 10 to 15 minutes tend to be wasted just trying
    to figure out how to begin. Any suggestions or tips? Thanks!

    • Sandra says:

      Posted on November 7, 2012 by I loved as much as you’ll receive craried out right here. The sketch is attractive, your authored material stylish. nonetheless, you command get bought an edginess over that you wish be delivering the following. unwell unquestionably come more formerly again since exactly the same nearly a lot often inside case you shield this hike.

  5. Rayford says:

    Why visitors still use to read news papers when in this technological globe everything is existing on net?

  6. What’s up, after reading this awesome paragraph i am as well
    happy to share my familiarity here with friends.

Leave a Reply to Auto Financing Orange CA Cancel reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>