DDD在存在许多DDD模式的同时,也有大量实践和指导原则,这些都是DDD思想体系成功的关键。

1、专注于核心领域

DDD强调的是在核心子域付出最多努力的需要。核心子域是你的产品会成功还是会失败的差异化因素所在。它是产品的独特卖的点,也是构建而非购买产品的原因。

核心领域是将为你的业务提供竞争优势并产生真实价值的产品内容。

至关重要的是,团队要理解核心领域是什么。

2、通过协作进行学习

DDD强调的是开发团队和业务专家之间协作,以生产出解决问题的有用模型的重要性。

没有业务专家的协作和投入,就不能产生大量的知识共享,开发团队就无法获得问题域的深刻见解。同样,通过协作与知识提炼,企业也有机会获得更多与其领域有关的信息。

3、通过探索和实验来创建模型

只有在团队拥有足够时间探究模型并使用模型设计进行实验时才会产生突破。

花费时间进行原型制作和实验,对于你塑造一个更好的设计大有助益。它还能揭示出一个较差的设计但看起来会是什么样子。

4、通信

能够有效描述 构建用于呈现问题域的模型 的能力 是DDD的基础。

所以,UL的创建造是DDD唯一最重要的。

没有公共语言,业务和开发团队之间为解决问题的协作将没有效率。在团队之间的知识提炼环节中,产生的分析和思维模型需要一种公共语言来将其绑定到技术实现上。在理念和问题域中的解之间没有一种有效的通信方式,就不会产生设计突破。

正是UL的协作与构造才使得DDD如此强大。

它使得(业务和开发团队)对问题域的更多理解和更有效的通信成为可能。

5、理解模型的适用性。

所构建的每个模型都能在其子域的上下文中被理解并使用UL进行描述并且不会出现语言歧义。

每个上下文会定义一个语言边界,确保模型能在特定上下文中被理解,避免语言歧义。

因此,具有重叠术语的模型会被分成两个模型,每个都在其专有的上下文中清晰定义。

6、让模型持续发展

DDD仍非灵丹妙药,并且需要持续致力于知识提炼,以生成可以在数年而不仅仅是数月中可维护的软件。

新的业务用例可能会破坏之前有用的模型,或者可能必须进行变更以便让新的或现有的概念更易于理解。

DDD学习笔录——简介领域驱动设计的实践与原则的更多相关文章

  1. DDD领域驱动设计和实践(转载)

    -->目录导航 一. DDD领域驱动设计介绍 1. 什么是领域驱动设计(DDD) 2. 领域驱动设计的特点 3. 如果不使用DDD? 4. 领域驱动设计的分层架构和构成要素 5. 事务脚本和领域 ...

  2. 如何领域驱动设计?-实践感悟&总结分享

    主要是在开发过程中,个人对于领域驱动设计的实践感悟和总结:也是对新进开发人员的培训资料:希望对关注DDD的童鞋有所帮助. 概述 领域驱动不是纯粹的技术问题,领域建模(建立数据表只是一部分)是领域专家( ...

  3. DDD(Domain Driver Designer) 领域驱动设计简介

    领域驱动设计之领域模型 加一个导航,关于如何设计聚合的详细思考,见这篇文章. 2004年Eric Evans 发表Domain-Driven Design –Tackling Complexity i ...

  4. DDD领域驱动设计落地实践(十分钟看完,半小时落地)

    一.引子 不知今年吹了什么风,忽然DDD领域驱动设计进入大家视野.该思想源于2003年 Eric Evans编写的"Domain-Driven Design领域驱动设计"简称DDD ...

  5. 领域驱动设计和实践(转:http://kb.cnblogs.com/page/112298/)

    引言 软件系统面向对象的设计思想可谓历史悠久,20世纪70年代的Smalltalk可以说是面向对象语言的经典,直到今天我们依然将这门语言视为面向对象语言的基础.随着编程语言和技术的发展,各种语言特性层 ...

  6. DDD学习笔录——简介DDD的战略模式如何塑造应用程序的架构

    前一篇,简单介绍了DDD战略模式的提炼问题域,这篇简单介绍它如何塑造应用程序的架构. 1.创建一个模型以解决领域问题 为每一个子域构建一个软件模型以处理领域问题并让软件与业务保持一致. 这个模型并非现 ...

  7. DDD学习笔录——简介DDD的战术模式、问题空间和解空间

    DDD的战术模式 DDD的战术模式(也称为模型构造块)是一个帮助创建 用于复杂有界上下文的有效模型的 模式集合. 也就是我们常说的设计模式. 问题空间 问题空间将问题域提炼成更多可管理的子域,是真对于 ...

  8. DDD 领域驱动设计-三个问题思考实体和值对象(续)

    上一篇:DDD 领域驱动设计-三个问题思考实体和值对象 说实话,整理现在这一篇博文的想法,在上一篇发布出来的时候就有了,但到现在才动起笔来,而且写之前又反复读了上一篇博文的内容及评论,然后去收集资料, ...

  9. 初学者浅谈我对领域驱动设计(DDD)的理解

    一.为什么要学习领域驱动设计 如果你已经设计出了优雅而万能的软件架构,如果你只是想做一名高效的编码程序员,如果你负责的软件并不复杂,那你确实不需要学习领域驱动设计. 如果用领域驱动设计带来的收获: 能 ...

随机推荐

  1. nodejs 中 excel-export 使用介绍

    1. 为了在nodejs 服务器端操作数据导出excel 格式用的 excel-export  包地址:https://github.com/functionscope/Node-Excel-Expo ...

  2. 一款简易的CSS3扁平化风格联系表单

    CSS3扁平化风格联系表单是一款CSS3简易联系表单非常清新,整体外观不是那么华丽,但是表单扁平化的风格让人看了非常舒服,同时利用了HTML5元素的特性,表单的验证功能变得也相当简单.经测试效果相当不 ...

  3. jedis的源码理解-基础篇

    [jedis的源码理解-基础篇][http://my.oschina.net/u/944165/blog/127998] (关注实现关键功能的类)   基于jedis 2.2.0-SNAPSHOT   ...

  4. 利用selenium爬取豆瓣电影Top250

    这几天在学习selenium,顺便用selenium + python写了一个比较简陋的爬虫,现附上源码,有时间再补充补充: from selenium import webdriver from s ...

  5. IE跨Iframe时Session丢失问题

    例如IIS下,可以打开IIS窗口——〉选择一个网站——〉属性——〉http头,增加一个http头 然后输入头名:P3P 输入头内容:CP=CAO PSA OUR 点评:与上一个方法类似,此方法也要求第 ...

  6. js动态拼接参数到请求的url上

    var queryConfig={ "page" : "index", "method" : 2, //1:按照方法A查看 2:按照方法B查 ...

  7. deep learning (六)logistic(逻辑斯蒂)回归中L2范数的应用

    zaish上一节讲了线性回归中L2范数的应用,这里继续logistic回归L2范数的应用. 先说一下问题:有一堆二维数据点,这些点的标记有的是1,有的是0.我们的任务就是制作一个分界面区分出来这些点. ...

  8. [转载]]Java开发如何在线打开Word文件

    此方案使用了PageOffice产品实现在线打开Word文档: 1. 首先从PageOffice官网下载产品开发包,http://www.zhuozhengsoft.com/dowm/ ,下载Page ...

  9. 第三方开源--Android Image Cropper--图片裁剪

    github下载地址:https://github.com/ArthurHub/Android-Image-Cropper 有两种使用方式: 第一种:Activity用法 1.添加 CropImage ...

  10. Spring_总结_03_装配Bean(一)_自动装配

    一.前言 本文承接上一节:Spring_总结_02_依赖注入 在上一节我们了解到依赖注入的实质就是装配. 这一节我们来学习下装配Bean的相关知识. 二.Bean的装配机制 1.三种装配机制 Spri ...