Model, Layer, and Don't Distribute!

by Dave on October 24, 2006

in Old Blog

Ted Neward has a new article series on MSDN on “Pragmatic Architecture”. It’s not technical concept but it’s an important distinction he re-iterates. Read it here. Anyway, great stuff as usual…

A corollary to the layers vs. tiers distinction that Ted makes is Martin Fowler’s “First Rule of Distributed Object Design”:

Don’t distribute your objects.

Seems like a rash statement. Of course what is meant is that you should only distribute when you are forced to. This is a key reason I like Domain Driven Design (DDD).

In DDD, you start with the conceptual model. Get your business logic, objects of the “Domain Model” right. Only worry about the infrastructure elements such as distribution and persistence when the model is closing in. Pragmatic.

Model first. Layer second. Tiers last…

Current (and next generation) tools such as NHibernate, CSLA, Entity Framework, w/ LINQ, etc.), WCF, or whatever-your-tastes ease the disciple required with the “problem first”, pragmatic approach. Put another way: the pragmatic beliefs of YAGNI[1], simplicity, and anti-BDUF[2] become easier when your tools and platform provide the “default architecture” that takes care of infrastructure.

—-

[1] YAGNI – “You ain’t gonna need it.”
[2] BDUF – “Big design up-front.”

Comments on this entry are closed.

blog comments powered by Disqus

Previous post:

Next post: