[译文]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 领域驱动 ...
随机推荐
- -Dmaven.multiModuleProjectDirectory system propery is not set. Check $M2_HOME environment variable a
eclipse中使用maven插件的时候,运行run as maven build的时候报错 -Dmaven.multiModuleProjectDirectory system propery is ...
- pandas小记:pandas基本设置
http://blog.csdn.net/pipisorry/article/details/49519545 ): print(df) Note: 试了好久终于找到了这种设置方法! 它是这样实现的 ...
- 【一天一道LeetCode】#130. Surrounded Regions
一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 Given a ...
- Linux0.11中对文本文件进行修改的策略
现在,假设 hello.txt 是硬盘上已有的一个文件,而且内容为 "hello, world" ,在文件的当前指针设置完毕后,我们来介绍 sys_read , sys_write ...
- org.apache.poi.ss.usermodel 类操作excel数据遗漏
直接上图. 错误程序: 循环读取每一行的单元格数据部分 //for (int j = row.getFirstCellNum(); j < row.getLastCellNum(); j++) ...
- 学习pthreads,管理线程的栈
进程的地址空间分成代码段,静态数据段,堆和栈段.线程栈的位置和大小是从它所属的进程的栈中切分出来的.每个栈必须足够大,以容纳所有对等线程的函数的执行以及它们将会调用的例程链.或许你会问为什么要进行线程 ...
- [Ext.Net]客户关系管理系统
本人在企业中非专业人士,交流学习. 1.登录 2.系统主界面 3.用户与角色 3.菜单管理 4.角色与授权 5.登陆日志 6.简易工作流 7.客户分类 8.客户管理 9.报价管理 业务员反馈 报价明细 ...
- 【数值分析】误差的分析与减少及Matlab解线性方程的四种方法
1.误差的来源 模型误差:数学模型与实际问题之间的误差 观测误差:测量数据与实际数据的误差 方法误差:数学模型的精确解与数值方法得到的数值解之间的误差:例如 舍入误差:对数据进行四舍五入后产生的误差 ...
- Android驱动中的Kconfig文件与Makefile文件
内核源码树的目录下都有两个文档Kconfig(2.4版本是Config.in)和Makefile.分布到各目录的Kconfig构成了一个分布式的内核配置数据库,每个Kconfig分别描述了所属目录源文 ...
- 框架页面高度自动刷新Javascript脚本
实现原理:加载index.htm时候,每隔1秒钟自动调用脚本刷新框架页面代码 代码优点:只需要设置index.html框架页面中的脚本,调用加载的子页面中不需要设置任何代码. index.htm代码如 ...