[译文]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 领域驱动 ...
随机推荐
- Java学习从菜鸟变大鸟之三 多线程中Thread 和Runnable的区别与运用
多线程机制是java中的一个特点,掌握它对后面的知识的理解至关重要,是java工程师的必备知识,多线程指在单个程序中可以运行多个不同的线程执行的不同的任务,线程是一个程序内部的顺序控制流.进程是静态的 ...
- 《java入门第一季》之tcp协议下的网络编程
tcp协议相对于udp更加安全. 首先看一下需求:服务器端开启,多个客户端同时向服务器发送数据,看哪个客户端先到达. 说明:这里我开启三个电脑实验,一台电脑写服务器端的程序,两台电脑开客户端的程序.服 ...
- CCDrawNode类的引用
CCDrawNode Class Reference Inherits from CCNode : CCResponder : NSObject Declared in CCDrawNode.h 总览 ...
- 四大组件之Activity小结
一大波面试就要靠近,赶紧总结总结一些基础问题 1.Activity的概念 是Android应用层开发的四大组件之一,主要负责和用户交互部分,有自己的生命周期,在其上可以布置按钮,文本框等各种控件,简单 ...
- Chapter 2 User Authentication, Authorization, and Security(2):创建登录帐号
原文出处:http://blog.csdn.net/dba_huangzj/article/details/38705965,专题目录:http://blog.csdn.net/dba_huangzj ...
- 视音频编解码学习工程:H.264分析器
=====================================================视音频编解码学习工程系列文章列表: 视音频编解码学习工程:H.264分析器 视音频编解码学习工 ...
- apache tomcat集群
今天花了大概两个小时完成了tomcat与apache的集群.现记录一下,也希望能帮助后来者. 建议看这篇博客前,先阅读一下鄙人拙作 tomcat整合apache 看完那个后,再进行集群,就很快了. 和 ...
- mysql进阶(五)数据表中带OR的多条件查询
MySQL数据表中带OR的多条件查询 OR关键字可以联合多个条件进行查询.使用OR关键字时: 条件 1) 只要符合这几个查询条件的其中一个条件,这样的记录就会被查询出来. 2) 如果不符合这些查询条件 ...
- objc一个NetConnector类示例
NetConnector是自定义的一个类,该类使用代理的方法实现异步下载特定url页面的内容. HyNetConnector.h // // HyNetConnector.h // HyNetConn ...
- studio grandle渠道打包
1. Mainfest 文件中添加一个键值对,这里的value 我定义为 "UMENG_CHANNEL_VALUE"(当然实际应用中可以根据自己的需要命名),后面打包的时候会对这 ...