使用裸对象的域驱动设计

我刚刚有机会读了Dan Haywood的新书《使用裸对象的域驱动设计》 [ http://www.pragprog.com/titles/dhnako ],该书提供了DDD世界的真知灼见。 如果没有别的,这本书适合技术人员和管理人员。 尽管Naked Objects被作为实现框架(实际上是DDD的各个方面)进行了介绍,但对于我们每个人来说,这本书都是一个出色的介绍文本,他们是根据领域精通企业应用程序这一概念的新手。 这本书也值得特别阅读,因为最近关于“域名”的话题引起了广泛关注。

根据这本书,

“域驱动设计是一种构建应用程序软件的方法,该方法专注于企业应用程序中至关重要的部分:核心业务领域。 而不是将所有精力放在技术上,而是确定要应用程序处理的关键概念,尝试弄清楚它们之间的关系,然后尝试分配职责(功能)。 这些概念可能很容易看到(客户,产品,订单等),但通常还有更多细微的概念(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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值