BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

从头开始实现领域驱动设计

| 作者 Jan Stenberg 关注 29 他的粉丝 ,译者 吴海星 关注 0 他的粉丝 发布于 2013年11月5日. 估计阅读时间: 2 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

领域描述业务;它是驱动企业的概念和逻辑的集合。如果遵循领域驱动设计(DDD)这一本质,那么领域就是应用程序中最重要的组成部分。Andras Nemes,一个在.NET平台上开发Web应用的瑞典开发人员,发表了10篇博客介绍如何基于领域驱动设计的原则在.NET平台上构建Web服务,在这个系列的第一篇他就给出了这番解释。

在技术驱动的方式中,很容易出现技术选择影响领域的情况。而在DDD中不会,领域是应用程序中最重要的组成部分,技术是实现细节,而实现可能会变。并且事情应该就是这样,Andras相信,领域是响应业务需求的独立实体,并且领域中的变化可能会影响技术的选择。

Andras 明确指出他的目的不是覆盖DDD的方方面面和所有细节,他这里指的是Eric Evans写的那本DDD 书 。他只是想为.NET方案构建一个骨架,提炼出DDD中最重要的思想,给基于DDD的项目提供一个基础。他希望即便刚刚接触DDD的开发人员也能从中受益,因此所有用到的关键概念他都给出了解释。

他的目标是一个包含如下这些层次的解决方案:

  • 基础设施层:在基础设施服务中解决交叉问题。
  • 存储层: 数据访问及持久化技术层。
  • 领域层:领域层有业务实体和业务逻辑,是应用程序的中心。
  • 应用服务层: 提供对消费者的响应动作
  • Web层: 应用程序的消费者

作为他穿越DDD之旅的开始,Andras解释了DDD中一些主要的战术性概念,比如实体、值对象和聚合,同时给出了一些使用指南。然后在他的系列博客中逐一介绍如何构建最终构成整个程序的各层。

Andras最后总结到DDD已经帮他减轻了比较传统的层次化解决方案中常见的紧耦合性,领域层现在是程序的中心了。他还想办法把受技术影响最大的存储层隐藏了起来,放在了一个可以替换的抽象层后面。

查看英文原文:Implementing With Domain-Driven Design from the Ground Up

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

这个文章的看点在哪里?实在把内容和题目联系不到一起 by Zhang Hui

从头开始实现领域驱动设计?实在把内容和题目联系不到一起,看了半天,也不知道这个文章的看点在哪里,编辑为什么把这篇文章放到寸土寸金的首页。

Re: 这个文章的看点在哪里?实在把内容和题目联系不到一起 by Yu Felix

那是因为中文版的没有连接了,看看原文就清楚了。infoq不应该出这样的错误。

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

2 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT