Domain-Driven Design Reference: Definitions and Pattern Summaries

Eric Evans, Sept 06, 2017
Commentary by Stephen Downes
files/images/Pattern_Language_Overview.PNG

This post is the very tip of a huge body of knowledge. At the beginning of the 20th century L.E.J (Bertus) Brouwer developed a theory of "intuitionist" mathematics incorporating the idea that math is a creation within the context of a Weltanschauung, or world view. In the late 20th-century rejection of logical positivism in favour of constructivist theories we see the development of alternative logics, including intuitionist, or constructivist, logic, where "constructive proofs correspond to functional programs and vice versa" related to a state space or model. This supports in turn a design methodology where "Multiple models are in play on any large project." This is the world of domain driven design (DDD).

What's key here is how this plays out in practice: "Model expressions, like any other phrase, only have meaning in context." Therefore, "Explicitly define the context within which a model applies... Recognize that a change in the language is a change to the model... Those who contribute in different ways must consciously engage those who touch the code in a dynamic exchange of model ideas through the ubiquitous language." Take this one step further and you get Command and Query Response Seqregation (CQRS) which allows us to use different data models which use the same data. My colleague Andriy Drozdyuk is presenting on this next week in Ottawa.

This is the logical, linguistic and computational foundation for constructivist, identity-based and community-based philosophies of education and society. It succeeds or fails because of its dependence on an ubiquitious language (hence the importance of Lakoff today). So long as this language requires an interpretation, it is vulnerable. The less contentious the interpretation the more stable the foundation. Ultimately, in my opinion, we have to push representation down, push it beyond representation, to a subsymbolic and directly accessible level.

Views: 1 today, 445 total (since January 1, 2017).[Direct Link]