I just spent the last six hours in the debugger going through some legacy code because of some problems we had in a production system. Okay, maybe the code is only a few years old, but it doesn't have any tests in it whatsoever, which is what makes it legacy code.
The most common argument against TDD (and testing in general) is that it takes too much time. That's a half truth because it does take time. »
Not long ago I was at the home of Stephen Covey, author of The 7 Habits. It was a real pleasure to meet him and rub shoulders for a few minutes. He was welcoming and gracious and very insightful when he spoke to you.
You can tell a lot about a person from their home. When I first walked into his house, I noticed the large mosaic in the tile floor of a compass pointing north. »
I responded to a message on Yahoo! Groups DDD forum regarding locking an aggregate root and serializing access to it. The question surrounds locking of an aggregate while it processes a message. The concern was that "pessimistic locking" makes your system unable to scale, which per the formal definition is absolutely correct. But there's a slightly different way to lock that isn't truly pessimistic.
Below follows my response to some of the concerns posted in the above message. »
My primary resources for understanding and guidance in DDDD come from various parts of books that are available, many of which Greg has suggested:
Domain-Driven Design Enterprise Integration Patterns Pattern Oriented Software Architecture Distributed Event-Based Systems among others Greg Young has consolidated much of this information and has been presenting it in a fairly high-level form at various professional conferences during the last few years.
I just found another good resource discussing some aspects of DDDD. »
Greg's InfoQ presentation entitled "Unshackle Your Domain" from QCon back in November 2008 is finally up and available. I'll have an opportunity shortly to go through and glean a few of the nuggets that haven't been covered elsewhere in his material.
Further, Herding Code interviewed him and posted that audio interview on their website. Like the QCon presentation, I'll be posting a few thoughts shortly.
The last thing is that I've been wanting to publish a few bits of sample C# source code from some our projects under the MIT license so you can see some of the infrastructure classes we use in order to facilitate DDDD. »
I recently setup a dedicated Linux machine next to my Windows machine. Rather than using a KVM switch or two keyboards and two mice, I searched for a solution that would allow me to share the same keyboard, mouse, and clipboard between the two machines.
Enter Synergy. While it appears that is no longer under active development, it still works great.
For my setup, my Windows machine is the host/server—meaning it's the one with the keyboard and mouse physically attached. »
This seems to be a hot topic right now. Everyone is talking about the decision to switch from ASP.NET WebForms to the new ASP.NET MVC. It can be a tough decision, but fortunately there is an alternative. Classic ASP.
I cast my vote for moving back to the well-established Classic ASP framework. I cast my vote for debugging using Response.Write and zero separation between code and markup. I cast my vote for the coolest. »
Who would have thought that the Repository Pattern could become a battleground? I always thought it was pretty straightforward—at least, that's how I felt when I first read Domain-Driven Design a few years ago.
While I could immediately see the benefits of using a repository, there were a few things that really bothered me as I started implementing the pattern that I could never fully reconcile:
How do we best query the repository to find the particular aggregates that we care about? »
Finally, I've found what I've been looking for: http://tech.groups.yahoo.com/group/altdotnet/message/15415
In the above post, Greg outlines exactly how he does file-based storage of serialized events.
UPDATE: Greg has posted a few additional details here: http://tech.groups.yahoo.com/group/domaindrivendesign/message/12396 »
I have been re-reading Domain-Driven Design after watching several InfoQ presentations given by Eric Evans as well as an interview of Eric at QCon in San Francisco in 2008. There were several core concepts that really stuck out to me as I was watching these in one sitting.
One of the key points that really stuck out to me for some reason was the concepts surrounding "strategic design" and the need to break down that design into parts. »