DDD软件核心复杂性应对之道
2 语言的交流
业务中的卫语句是否可以使用策略
比如说材料评分分数是否合法.
1 | class test { |
新的 isAllowed方法
1 | class test { |
现在所有开发者都知道了,分数合法性是一个独特的策略,且实现是独立的。
卫语句:起保护作用的语句,可以减少嵌套。
策略模式(strategy),定义一组算法,将每个算法封装起来,并且使它们之间可以互换。更强的可扩展性、可维护性和可重用性。
通用语言(UBIQUITOUS LANGUAGE)
没有通用语言的坏处
领域专家的术语与开发人员的术语差距很大,两者之间的信息交流,就需要互相翻译,甚至领域专家之间,开发人员之间也需要互相翻译。
这些翻译使模型概念变的混淆,以至于破坏代码的重构。
翻译工作导致各类知识和想法无法结合到一起,从而影响对模型的深入理解。更不必说记录到代码或文档中了。
任何一种行话都不能成为公共语言,因为它们无法满足所有的需求。
翻译工作加在一起,开销太大了,并且还要冒着误解的风险。
得到通用语言
DDD中讲的是将模型作为语言的中心。确保团队在所有交流活动和代码中坚持使用这种语言。在画图、写东西特别是讲话时也要使用这种语言。
解决交谈中的术语混洗问题;
密切监视那些将会妨碍设计的有歧义和不一致的地方。