cqrs for dummies – an interlude – DDD Exchange 2010

Event Store Layer post is coming (really, it is), but in the interim, you can find a lot of good presentations from the DDD Exchange 2010 in London (which obviously covers DDD in general, as well as CQRS) from Eric Evans, Udi Dahan, Greg Young, Ian Cooper and Gojko Adzic. Check it out here.  Good stuff.  For those of you not inclined to watching online presentations, you can find good summaries here, here, here and here.

posted @ Tuesday, June 15, 2010 7:30 PM | Feedback (0)
DDD-Lite: Auditing and Messages

Having finally gotten around to watching Greg Young’s E-Van presentation, I want to take a little interlude to talk about something that may or may not be interesting for a number of applications, but is typically a central requirement for many ‘enterprise’ applications (I have no idea how to define ‘enterprise’ here…I leave it as an exercise for the reader for now).  And that ‘something’ is auditing. Though it should go without saying, nothing I’m going to describe here is new.  It could be viewed as a very unsophisticated description of the Event Sourcing pattern.  I should also point...

posted @ Sunday, March 15, 2009 10:31 PM | Feedback (0)
DDD-Lite: Mama don’t let your objects grow up to be invalid (take two)

So, in a previous post, I was making a point about preventing classes from being invalid by getting rid of setters (public setters at least). But, I did it in a way that was misleading, or at least could be.  For one thing, I used the term ‘entities’ in the title of the post.  Why was this bad?  Well, within DDD, there is a distinction that is often made between objects that can be called “entities” and those that can be called '”value objects.”  And the purposefully simplistic example that I used (that of an Address class) is normally...

posted @ Friday, February 27, 2009 8:32 PM | Feedback (2)
DDD-Lite: Mama don’t let your entities grow up to be invalid

Update: Troy pointed out that using Address as an example wasn't good, because in DDD, Address is considered what is called a 'value object' which has different features than what are called 'entities.'  Since the point I was trying to make was about validation and why eliminating setters is an important concept, that wasn't totally relevant, but it's a valid objection (pun intended) as it could be misleading.  So, I'm going to update the example.  In a minute or two.  Just keep that in mind till then. One of the hardest things about ‘continuous improvement’ (which I think really amounts to ‘not...

posted @ Friday, February 20, 2009 9:27 PM | Feedback (4)
DDD: Step by Step Guide by Casey Charlton

Casey Charlton is putting together a series of posts about DDD that are downloadable in a single PDF file here. As he updates his series, he updates the PDF.  I think this is a great service.  It introduces a number of the most important concepts of DDD in a clear and concise way which helps to dispel a lot of the ‘DDD is mystical’ stuff.  Even if the actual experience of practicing DDD has ‘mystical’ aspects (Casey knows I’m a bit skeptical about this, though I think I do get the point…to a point), many of the main concepts...

posted @ Friday, February 20, 2009 8:06 PM | Feedback (1)
DDD-Lite: It takes longer to develop code using TDD, but so what?

One of the (potential) criticisms of using TDD is that it takes longer to develop code when practicing it.  The topic is too large to really address in depth in a blog post, but I want to touch on it here, because I think, in general, it is true, but not necessarily a compelling criticism. On the face of it, it is obviously true in a certain respect.  Writing tests to test your code requires, obviously, writing more code.  Thus, since it takes longer to write more code than it takes to write less code, using TDD takes longer....

posted @ Wednesday, December 24, 2008 6:39 PM | Feedback (1)
DDD-Lite: Unit-testing Constructors

update: updated the first test so that the constructor is doing something, since that was kind of the point. When I was first learning about TDD, the guy I knew who was actually practicing it unit tested his object constructors.  Obviously, it was a different domain, but I vaguely recall that it looked something like this: [TestMethod]         public void can_create_an_item()         {             Item i = new Item(“Name”);             i.ShouldNotBeNull();             i.Name.ShouldEqual("Name");     } ...

posted @ Tuesday, December 16, 2008 7:18 PM | Feedback (3)
DDD-Lite: TDD, (B)DUF, and Testing the Framework

I’m going to be randomly posting about things that come up as I build out what I am calling a DDD-Lite application, as much so I can record decisions I made along the way for anything else, so that if I decide to change something down the road, I have at least so record of why I did things the way I did in the first place. To group them together, I’m tagging them so that they can be viewed as a group here. TDD stuff When I was first learning about TDD (which was relatively recently, some time in 2006, I think),...

posted @ Monday, December 15, 2008 8:49 PM | Feedback (0)
DDD-Lite and Data Access: One way of doing it

I’m not sure who came up with the term ‘DDD-lite’ or if it even makes sense to ask the question, but I *think* I first saw it being used by Colin Jack.  In any event, I’m going to describe what I mean by it, and how I’m using it in a way that I find comfortable along with a certain way of doing data access. As I’m using it in this post (I don’t think there is an official definition), ‘DDD-lite’ refers to the use of certain patterns within your code.  Full blown DDD requires an extensive collaboration between business users...

posted @ Tuesday, November 25, 2008 9:14 PM | Feedback (5)