【领域驱动】—— 领域驱动导读

  参考书籍:《领域驱动设计·精简版》

领域驱动模型

  各层的作用如下:

概念讲解

1 需求的反向工程:需求是反复推敲出来的

2 DDD的中心思想:关注精简的业务模型及实现的匹配

3 在设计编码前,应该先了解领域

4 软件成为领域的反射

5 瀑布模型:业务人员——设计人员——开发人员——测试人员

6 敏捷编程:不断迭代

7 软件开发两大过程:创建优良的模型,实现代码

8 模型植根于领域、并精确反应出领域中的基础概念

9 分析模型:从代码中分离出来、多个人协助完成。缺点:不能预见模型中存在的缺陷以及领域中的复杂关系。

10 推荐的方法:紧密关联领域建模和设计,模型构建时,让开发人员参与设计。

11 实体对象:需要有唯一的标识

12 值对象:只关心某些属性,不要建立唯一的标识(如果是共享的,则应该是不可变的)

13 服务:链接两个独立的对象。服务操作设计一个领域,不属于任何对象。被执行的操作涉及到领域中其他对象。操作室无状态的。

14 模块:组织相关概念,降低复杂度

15 聚合(主题):定义对象所有权和边界。有一个根

16 工厂:封装复杂的创建过程

17 资源库:

18 界定上下文:定义模型的范围,确定上下文边界,保持模型的一致性。

19 持续集成:模型先被创建,再基于对领域心的发现和来自开发过程的反馈,再继续完善。

20 上下文映射:防止模型之间过度依赖,耦合

21 共享内核:无法被公用模型修改,目的是为了减少重复。

22 客户-供应商:一个模型依赖于另一个。子系统间接口预先明确定义。

23 顺从者:由于强烈的依赖另一方,因此只能读取其内容,却无法进行修改

24 防崩溃层:模型与其他模型之间,建立一个集成层。

25 独立方法:几个不同内容的模块,独立设计

26 开放主机服务:定义开放接口,方便其他系统调用

时间: 2024-10-11 23:54:31

【领域驱动】—— 领域驱动导读的相关文章

ABP领域层——领域事件(Domain events)

ABP领域层——领域事件(Domain events) 基于DDD的现代ASP.NET开发框架--ABP系列之14.ABP领域层——领域事件(Domain events) ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称. ABP的官方网站:http://www.aspnetboilerplate.com ABP在Github上的开源项目:https://github.com/aspnetboilerplate 在C#中,一个类可以定义其专属的

(笔记)linux设备驱动--LED驱动

linux设备驱动--LED驱动 最近正在学习设备驱动开发,因此打算写一个系列博客,即是对自己学习的一个总结,也是对自己的一个督促,有不对,不足,需要改正的地方还望大家指出,而且希望结识志同道合的朋友一起学习技术,共同进步. 作者:liufei_learning(转载请注明出处) email:[email protected] IT学习交流群:160855096 转至:http://blog.csdn.net/liufei_learning/article/details/7025246 开发环

【驱动】USB驱动实例·串口驱动·键盘驱动【转】

转自:http://www.cnblogs.com/lcw/p/3159370.html Preface USB体系支持多种类型的设备. 在 Linux内核,所有的USB设备都使用 usb_driver结构描述. 对于不同类型的 USB设备,内核使用传统的设备驱动模型建立设备驱动描述,然后映射到 USB设备驱动,最终完成特定类型的 USB设备驱动 USB驱动·入门:http://infohacker.blog.51cto.com/6751239/1226257 USB串口驱动 USB串口驱动关键

ABP(现代ASP.NET样板开发框架)系列之14、ABP领域层——领域事件(Domain events)

点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之14.ABP领域层——领域事件(Domain events) ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称. ABP的官方网站:http://www.aspnetboilerplate.com ABP在Github上的开源项目:https://github.com/aspnetboilerplate 在C#中,一个类可以定义其专属的事件并且其它类可以注册该

[驱动] 蓝牙 驱动

问题:电脑新换一个系统,有蓝牙驱动和服务都打开啦,就是搜不到蓝牙 解决方法:下载一个鲁大师,对系统的蓝牙进行升级或重新安装,然后别忘了勾选下面的选项:允许设备查找..... PS: 鲁大师可以检测你的电脑硬件的信息,准确的找到合适的驱动程序,我尝试了用驱动精灵.万能驱动或者官网找驱动都无法快速有效的解决.这里驱动精灵没有解决问题,官网找需要输入电脑型号(我忘啦),万能蓝牙驱动就是个坑(他是自己销售蓝牙硬件设备然后提供万能驱动软件,所以他说可以传音乐等功能,笔记本自带蓝牙,这个不适用) >_<:

Linux驱动设计—— 驱动调试技术

参考博客与书籍: <Linux设备驱动开发详解> <Linux设备驱动程序> http://blog.chinaunix.net/uid-24219701-id-2884942.html 对于驱动程序设计来说,核心问题之一就是如何完成调试.当前常用的驱动调试技术可分为: 1. 打印调试 printk 重定向控制台消息 消息记录 开启和关闭消息速度限制 打印设备编号 2. 调试器调试 gdb kdb内核调试器 kgdb补丁 3. 查询调试 使用/proc文件系统 ioctl方法 4.

入门级的按键驱动——按键驱动笔记之poll机制-异步通知-同步互斥阻塞-定时器防抖

文章对应视频的第12课,第5.6.7.8节. 在这之前还有查询方式的驱动编写,中断方式的驱动编写,这篇文章中暂时没有这些类容.但这篇文章是以这些为基础写的,前面的内容有空补上. 按键驱动——按下按键,打印键值: 目录 概要 poll机制 异步通知 同步互斥阻塞 定时器防抖 概要: 查询方式: 12-3 缺点:占用CPU99%的资源.中断方式:12-4 缺点:调用read函数后如果没有按键按下,该函数永远不会结束,一直在等待按键按下. 优点:使用到了休眠机制,占用cpu资源极少.poll机制: 1

linux驱动摸索 --驱动框架初始化(结合韦东山视频教程)

一.驱动框架 初始化:insmod 加载 1.确定主设备号: 分为静态和动态分配,其中LED_GPIO_SIZE 表示支持的次设备号数目,一般默认为1. 相关实现代码如下: [cpp] view plain copy int result; dev_t dev; /*分配主设备号*/ if (scull_major)   /*静态分配一个主设备号*/ { dev = MKDEV(scull_major,0); result = register_chrdev_region(dev,LED_GPI

自己动手写最简单的Android驱动---LED驱动的编写【转】

本文转载自:http://blog.csdn.net/k_linux_man/article/details/7023824 转载注明出处,作者:K_Linux_Man, 薛凯 山东中医药大学,给文章内容引入个人毕业设计. 开发平台:farsight s5pc100-a 内核:linux2.6.29 环境搭配:有博文介绍 开发环境:Ubuntu .Eclipse 首先强调一下要点: 1.编写Android驱动时,首先先要完成Linux驱动,因为android驱动其实是在linux驱动基础之上完成

驱动: i2c驱动

1. IIC协议: <<um_s3c2440a_rev10.pdf>>  p481 Figure 20-3. IIC-Bus Interface Data Format<<AT24C08_DataSheet.pdf>>  Figure 1-12 Bus Timing and Device operations iic总线里的角色:    主机(Master):初始化发送.产生时钟信号和终止发送的器件     从机(Slave):被主机寻址的器件 I2C的原则