根据这本书,
“域驱动设计是一种构建应用程序软件的方法,该方法专注于企业应用程序中至关重要的部分:核心业务领域。 而不是将所有精力放在技术上,而是确定要应用程序处理的关键概念,尝试弄清楚它们之间的关系,然后尝试分配职责(功能)。 这些概念可能很容易看到(客户,产品,订单等),但通常还有更多细微的概念(Payable,ShippingRecipient和RepeatingOrder)不会在第一时间被发现。 因此,您可以使用由业务领域专家和开发人员组成的团队,并通过使用领域本身的共同点来确保彼此理解。
由于成为一名领域专家对于任何开发人员来说自然都是下一步,随着他的经验的增长,需要对业务内容有更多的了解,而不仅仅是软件。 UML虽然在解释面向对象方面做得很出色,但请仔细考虑一下,它如何真正帮助有兴趣获得更多利润的商人。 Naked Objects框架( http://www.nakedobjects.org )基于具有相同名称的设计模式( http://en.wikipedia.org/wiki/naked_objects )是一个开源框架(仅适用于Java,.NET)是一种商业版本),可将简单的bean /组件自动转换为接口(作为多个应用程序读取)。
请勿将其与原型混淆,因为DDD既包含开发人员又包含领域专家团队,我们不仅在创建UI。
DDD的2个中央场所说明:
- 一种用于集成和简化领域专家之间的交流的通用语言 ,而不是2,这是现有规范(例如代码和UML)
- 使用旨在捕获业务流程模型的模型驱动设计 。 这是通过代码完成的,而不是像以前那样在视觉上完成的。
裸物
基于Java的Naked Objects(NO)框架是Rails(及其其他化身:Grails,Spring Roo,asp.net MVC等)向前发展的一步,该框架更多地关注M&V,而不是MVC,并且提供了更多的领域-特定的应用反过来又为所有人带来了灵活性。
一个典型的NO应用程序由多个子项目组成,例如通过Maven原型的核心域,夹具,服务,命令行和Webapp项目。 最酷的事情是NO不会自动在基于OO的UI中显示域对象,该UI提供了比其他任何IDE更灵活的显示方式。
NO也挑战了通用的frontend-middleware-backend约定,而是采用了可解决更大局面的Hexagonal体系结构( http://alistair.cockburn.us/Hexagonal+architecture )。 该框架中的开发以pojo为中心,并且很大程度上基于注释,对于任何JEE开发人员而言,注释都应该是常规内容。 另外,在我对框架进行初步评估时,在开发过程中生成的代码具有可维护的质量,这对于任何企业应用程序的维护和扩展实际上都是必不可少的。
因此,强烈建议任何企业开发人员/团队/经理/领域专家使用这本书及其研究领域,并且正如一再提到的,当一个人拥有多年的工作经验时,这本书就变得非常重要。 我正在继续探索,如果真的对我有用,请在此处发布一些练习。
参考: Sumit Bisht博客上的JCG合作伙伴 Sumit Bisht的《 使用裸对象的领域驱动设计》 。
翻译自: https://www.javacodegeeks.com/2012/01/domain-driven-design-using-naked.html