[译文]Domain Driven Design Reference(一)—— 前言
本书是Eric Evans对他自己写的《领域驱动设计-软件核心复杂性应对之道》的一本字典式的参考书,可用于快速查找《领域驱动设计》中的诸多概念及其简明解释。
DDD到目前为止知道的人越来越多了,正巧今天在自己的书单中翻出这本尘封已久的电子版,网上查了下也没有人来翻译,所以近期就准备把这个本书翻译一下,也锻炼下自己蹩脚的英文水平,如有错误欢迎及时指出。>_<||| 内容不多就50多页,我每次按一个章节来发,敬请期待。由于第一章主要是讲一些致谢什么的,这次一起发2章(传送门:[译文]Domain Driven Design Reference(二)—— 让模型起作用 )的内容。有想阅读原版的可以私发我邮箱地址,我给你发过来。好下面从”致谢“开始:
致谢
自从我的书《Domain-‐Driven Design, Tackling Complexity in the Heart of Software》(或者叫“大蓝书”,正如有些人所说的那样) 出版以来已经有10年多的时间了。在这段期间内,书中讨论的基本原理没有太多变化,但是关于我们如何构建软件发生了很大的变化。DDD仍然保持着关联是因为聪明和创新的人们在不断的改变着它。我想要感谢那些人。
让我从Greg Young, Udi Dahan和在CQRS、Event Sourcing上受他们启发的人开始讲。这些是现在DDD系统的主流架构选项。这是本世纪初有限视角的架构中衍生的第一个成功的大发展。
从那以后,有许多以DDD更加落地为目标(以及他们的设计者的其它目标)的有趣技术和框架出现,取得了不同程度的成功。包括Qi4J,Naked Objects,Roo等等。这样的尝试即使没有得到广泛的采用,也具有很大的价值。
我还是想要感谢那些变革我们的技术生态的人和社区,使得DDD更加的有趣和实用。这些人中大多数对DDD的兴趣很小,但他们的工作使我们受益匪浅。我特别想到NoSQL给我们带来的自由,减少了新编程语言(一些功能)的语法噪声,以及对更轻的技术框架和非侵入性,解耦的类库的不懈努力。10年前的技术复杂而笨重,使得运用DDD十分困难。当然也有不好的新技术,但趋势是好的。 因此,我特别感谢所有为这一趋势做出贡献的人,尽管您可能从未听说过DDD。
接下来,我要感谢那些写了关于DDD的书籍的人。在我之后关于DDD的第一本书来自 Jimmy Nilsson【1,额外补充一下是这本《领域驱动设计与模式实战 [Applying domain-driven design and patterns]》】。有一本书的话,你仅仅“有一本书”而已。但是有2本的话,你就有了一个主题。接下来,InfoQ发布了《DDD Quickly》,由于其简洁,免费下载以及InfoQ的影响力,让很多人第一时间了解了该主题。这些年过去了,还有许多有价值的博客文章和其它的短文。也有专门的书籍,如《DDD with Naked Objects》【2,额外补充一下找不到文中同名的书,猜测可能是这本《Domain-Driven Design Using Naked Objects》】。另外我特别想要感谢不可缺少的Martin Fowler,他除了经常提供新兴模式的权威文档还帮助清楚的传达DDD的概念。就在去年,Vaughn Vernon发表了自我以来最有雄心的书,《Implementing Domain-‐Driven Design》(有些人似乎称之为“大红书”)。
我感到一种绝望,就是我会抛弃许多做出重大贡献的人,我真的为此感到遗憾。让我至少给那些把DDD推到公众视野的人和那些把DDD推到组织安静的角落的人表示谢意。一个软件哲学需要成千上万的拥护者才能产生影响力。
虽然这是《DDD Reference》的首印版,单却是我2004年出版的书籍的最初的样子。根据Ralph Johnson的一个建议,我提取了每个模式的简要总结并在研讨会使用它们,每个模式都由与会者大声朗读,随后进行讨论。我把这些文件用于培训班好几年了。
然后,在我的书出版几年之后,Ward Cunningham,将他在Repository模式中工作的一部分向几位作者提出,然后我们把我们模式的简短摘要加入到 Creative Commons【3,一个知识共享组织,参见https://baike.baidu.com/item/creative%20commons/8755425?fr=aladdin】中了。Martin Fowler和我在出版商Pearson Education公司的协议下做到了这一点,这就为这种衍生作品开创了可能性。
定义
领域(domain):知识、影响或者作用的一个范围。用户应用一个程序的主题范围是软件的领域。
模型(model):一个抽象的系统,用来描述一个领域的指定的方面,并且可用于解决与该领域有关的问题。
通用语言(ubiquitous language ):围绕领域模型构建的一种语言,所有团队成员都可以在限定的上下文中使用该软件将团队的所有活动连接起来。
上下文(context):决定一个单词或者句子出现所表示含义的环境。有关模型的生命只能在上下文中被理解。
限界上下文(bounded context):描述一个特定模型被定义和适用的边界(通常是一个子系统,或一个特定团队的工作)。
模式预览概览

作者:Zachary_Fan
出处:http://www.cnblogs.com/Zachary-Fan/p/DDDReference1.html
如果你想及时得到个人自写文章的消息推送,欢迎扫描下面的二维码~。

[译文]Domain Driven Design Reference(一)—— 前言的更多相关文章
- [译文]Domain Driven Design Reference(二)—— 让模型起作用
本书是Eric Evans对他自己写的<领域驱动设计-软件核心复杂性应对之道>的一本字典式的参考书,可用于快速查找<领域驱动设计>中的诸多概念及其简明解释. 其它本系列其它文章 ...
- [译文]Domain Driven Design Reference(三)—— 模型驱动设计的构建模块
本书是Eric Evans对他自己写的<领域驱动设计-软件核心复杂性应对之道>的一本字典式的参考书,可用于快速查找<领域驱动设计>中的诸多概念及其简明解释. 其它本系列其它文章 ...
- [译文]Domain Driven Design Reference(四)—— 柔性设计
本书是Eric Evans对他自己写的<领域驱动设计-软件核心复杂性应对之道>的一本字典式的参考书,可用于快速查找<领域驱动设计>中的诸多概念及其简明解释. 其它本系列其它文章 ...
- [译文]Domain Driven Design Reference(七)—— 大型战略设计结构
本书是Eric Evans对他自己写的<领域驱动设计-软件核心复杂性应对之道>的一本字典式的参考书,可用于快速查找<领域驱动设计>中的诸多概念及其简明解释. 上周末电脑硬盘文件 ...
- [译文]Domain Driven Design Reference(六)—— 提炼战略设计
本书是Eric Evans对他自己写的<领域驱动设计-软件核心复杂性应对之道>的一本字典式的参考书,可用于快速查找<领域驱动设计>中的诸多概念及其简明解释. 其它本系列其它文章 ...
- [译文]Domain Driven Design Reference(五)—— 为战略设计的上下文映射
本书是Eric Evans对他自己写的<领域驱动设计-软件核心复杂性应对之道>的一本字典式的参考书,可用于快速查找<领域驱动设计>中的诸多概念及其简明解释. 其它本系列其它文章 ...
- Domain Driven Design and Development In Practice--转载
原文地址:http://www.infoq.com/articles/ddd-in-practice Background Domain Driven Design (DDD) is about ma ...
- (翻译)领域驱动设计实现-Implementing Domain Driven Design
简介 Implementing Domain Driven Design 领域驱动设计实现 A practical guide for implementing the Domain Driven D ...
- 什么是领域驱动设计(Domain Driven Design)?
本文是从 What is Domain Driven Design? 这篇文章翻译而来. ”…在很多领域,专家的作用体现在他们的专业知识上而不是智力上.“ -- Don Reinertsen 领域驱动 ...
随机推荐
- C#弹出对话框
一.基于WINFORM下的选择对话框 在WINFORM下,我们可以利用系统的对话框(MessageBox)来实现,具体思路是读取MessageBox的返回值(YES或NO)来达到对操作的控制.下面是一 ...
- 08_Android中的SimpleAdapter的使用
1 目的界面 2.编写Android清单文件 <?xml version="1.0" encoding="utf-8"?> <manif ...
- 监视锁——Java同步的基本思想
翻译人员: 铁锚翻译时间: 2013年11月13日原文链接: Monitors – The Basic Idea of Java synchronization如果你上过操作系统课程,你就知道监视锁( ...
- tomcat集群实现源码级别剖析
随着互联网快速发展,各种各样供外部访问的系统越来越多且访问量越来越大,以前Web容器可以包揽接收-逻辑处理-响应整个请求生命周期的工作,现在为了构建让更多用户访问更强大的系统,人们通过不断地业务解耦. ...
- Android APP新的“优雅”退出方式--EventBus大显身手
最近在研究eventBus..很多小伙伴不知道他有什么用.. 前篇介绍了EventBus的基本使用 这里简单举一个例子,就是退出APP 转载请注明出处:http://blog.csdn.net/win ...
- Leetcode_116_Populating Next Right Pointers in Each Node
本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/43532817 Given a binary tree st ...
- 图像检索:CEDD(Color and Edge Directivity Descriptor)算法
颜色和边缘的方向性描述符(Color and Edge Directivity Descriptor,CEDD) 本文节选自论文<Android手机上图像分类技术的研究>. CEDD具有抽 ...
- apache 负载测试工具 ab
1.ab工具是apache自带的工具,可以测试服务器的负载能力 2.ab工具的参数 -v:版本 -c:并发数 -n:请求数 -t: 测试所进行的最大秒数 3.例子:ab -c 100 -n 100 - ...
- SpriteBuilder中如何简单的重置APP保存的数据
在任意一款APP中,我们可能需要在磁盘上保存一些游戏数据,以便在下一次运行APP时恢复游戏数据. 但是由于在测试阶段,我们需要快速恢复初始状态的游戏数据,该如何做呢? 非常简单,只需要将APP从真机或 ...
- 分布式版本库——Windows下Git的环境部署以及在GitHub上开源自己的项目
分布式版本库--Windows下Git的环境部署以及在GitHub上开源自己的项目 这几天着实忙的焦头烂额,可惜不是搞技术,今天周日,难得闲下来,写篇大家都想学习的Git教程,其实廖雪峰老师的网站已经 ...