DDD

TwitterFacebook
Get flash to fully experience Pearltrees
http://ayende.com/blog/2194/querying-is-a-business-concern A lot of people moving from hand-built / code-gened DAL to NHibernate seem to encounter the issue of anemic data layer. NHibernate subsume all the responsabilities, leaving the developer with just managing the session and maybe adding a couple of Get/Save methods. It tends to bother some people, who are used to data layers that does quite a bit more.

Querying is a business concern

Event Sourcing

Capture all changes to an application state as a sequence of events. We can query an application's state to find out the current state of the world, and this answers many questions. However there are times when we don't just want to see where we are, we also want to know how we got there. Event Sourcing ensures that all changes to application state are stored as a sequence of events. http://martinfowler.com/eaaDev/EventSourcing.html
Object-oriented systems are composed of many objects, each one fulfilling some set of responsibilities. Objects often need to collaborate with other objects in order to fulfill these responsibilities. You can better understand the responsibilities of objects and the collaborations between them by applying a concept known as object role stereotypes. This article will discuss the most common object role stereotypes by applying them to real-world examples and well-known design patterns. What's the Problem? Neolithic programmers lived in a state of simplicity.

Object Role Stereotypes

http://msdn.microsoft.com/en-us/magazine/cc721605.aspx
http://msdn.microsoft.com/en-us/magazine/ee236415.aspx In this article, we’ll go through the reasons to (and not to) employ the domain model pattern, the benefits it brings, as well as provide some practical tips on keeping the overall solution as simple as possible. If you had come to me a few years ago and asked me if I ever used the domain model pattern, I would have responded with an absolute "yes." I was sure of my understanding of the pattern. I had supporting technologies that made it work.

Employing the Domain Model Pattern

http://martinfowler.com/bliki/EagerReadDerivation.html

Eager Read Derivation

One of the interesting talks I attended at QCon San Francisco , was one given by Greg Young about a particular architecture he'd used on a recent system. Greg is a big fan of Domain Driven Design , in this case it needs to be used with a system that has to process a high transaction rate and provide data to lots of users. There were a number of things I found interesting about his design, particularly his use of Event Sourcing , but for this post I want to dwell on just one aspect - what I'll call Eager Read Derivation. These kinds of domain logic apply differently to updates than to reads.
DSL

http://codebetter.com/gregyoung/2008/04/09/dddd-1-when-to-message/

DDDD 1 [When to Message]

Just as a bit of a preamble, today is the first of what will hopefully be many days of me knocking out my blog backlog by actually taking an hour lunch and bringing my laptop to write. Unfortunately I currently have a backlog of over 40 posts … Hopefully in a few weeks that number will come down a bit. This is the first in many posts about DDDD (the D is for Distributed), oddly when talking about it here the extra D seems to make sense just about everywhere so I will leave it to you to figure out which one it is… I recently posted about using messaging in the domain in Mocks are a Code Smell.
Lúcio Ferrão talks about making the software appealing to the business by using a visual language and an integrated environment supporting the entire life cycle of application development. John Musser discusses the state of open web APIs, remarking its growth over time, the current technological trends, the market leaders, and other API-related aspects. Erik Dörnenburg shares techniques for estimating code quality by collecting and analyzing data using the toxicity chart, metrics tree maps, size&complexity pyramid, complexity view, code city, etc. Java EE 7 includes cloud computing support to build applications for Java EE PaaS platforms. InfoQ spoke with Anil Gaur from Oracle, about cloud support in Java EE 7 and cloud development tools. The authors of this book share their experience and lessons learned while building an enterprise-wide Identity and Access Management system using an architectural approach called LIMA. http://www.infoq.com/presentations/Domain-Event-Driven-Architecture

Domain Event-Driven Architecture

Repository Pattern vs. Transparent Persistence

http://in.relation.to/Bloggers/RepositoryPatternVsTransparentPersistence I've recently read the book Domain Driven Design , which apparently is now the new bible for some folks who totally think in objects . I even mentioned it in HiA and JPwH - unfortunately I didn't read it before. I now think that quite a few of the patterns promoted by this book are actually a step backwards.
http://ayende.com/blog/2487/domain-driven-on-naked-clr

Domain Driven on Naked CLR?

Again, a story from class. We are currently building a sample app together, and I get to see just how painful it is to try to build domain driven applications on the naked CLR. A lot of the stuff that makes DDD possible (rich object graphs, for instance) is entirely too hard to do without tool support. The end result is a transaction script pattern, where there is a chain of method calls that ends up with a call to the DB, usually to a stored procedure.
http://www.udidahan.com/2008/02/29/how-to-create-fully-encapsulated-domain-models/ Bryan Wheeler, Director Platform Development at msnbc.com “ Udi Dahan is the real deal. We brought him on site to give our development staff the 5-day “Advanced Distributed System Design” training. The course profoundly changed our understanding and approach to SOA and distributed systems. Consider some of the evidence: 1.

How to create fully encapsulated Domain Models

Domain-Driven Design Resources

July 2011 Update: Domain-Driven Design: Links, News, Resources (1) I have my links collection on Domain-Driven Design, and I want to post it to this blog. This list is only a disorganized collection but I think that can be useful:
Bryan Wheeler, Director Platform Development at msnbc.com “ Udi Dahan is the real deal. We brought him on site to give our development staff the 5-day “Advanced Distributed System Design” training. The course profoundly changed our understanding and approach to SOA and distributed systems. Consider some of the evidence: 1. Months later, developers still make allusions to concepts learned in the course nearly every day 2.

From CRUD to Domain-Driven Fluency

Recently there have been a long discussion in the ALT.Net mailing list about Auto Mocking Containers . We covered a lot of ground there and it is interesting to boot. What I wanted to talk about comes from this discussion. A while ago there was a big stick about Persistence Ignorance. I won't reiterate the arguments, but I want to expand the idea to other concepts as well.

Infrastructure Ignorance