DDD: Large-scale Structure

Large-scale systems are hard to coordinate. Moreover, it is even harder to come up with a unifying theme that can get everyone thinking on the same page. When this unifying theme is missing, developers find it hard to communicate and understand the system. The previous patterns discussed - refactoring to deeper insight, maintaining model integrity and distillation - help but these patterns do not really provide a unifying theme for everyone.

What's needed is a a set of rules or patterns that can span the entire system and thus allow developers to grasp the system as a whole. Evans's patterns in this chapter are more of recommendations based on what he has observed in various projects.

Large-Scale Structure:

"This whole area is still undeveloped. I've observed a few general patterns of large-scale structures that have emerged on various projects. I'll discuss four in this chapter. One of these may fit your needs or lead to ideas for a structure tailored to your project."

In this chapter, Evans finally confronts the issue of the System Metaphor in XP and how it relates to the model. I would have appreciated more if he had a linked from his earlier chapters to this one. As some of you might recall, I was having some issues on how the system metaphor relates to the model in model-driven design.

Another important point in this chapter is the fact that the strategy for large-scale structures need to evolve with the project. It is disastrous to be rigid and stick with just one of those patterns. Unfortunately, there is the resistance to change because once the structure for a large system is established, it is really hard to change. And that is something that we do not have a good rule of thumb for.

Those of you who are interested in large-scale structures might also be interested in Ultra-Large Scale Systems. So far the only work on it, as far as I can tell is the one done by CMU. In the SAG group, we had a discussion on the paper once but unfortunately no one recorded our discussion down.


comments powered by Disqus