DDD学习笔记(一)
最近开始筹备一个电商项目. 其实是公司的老本行了. 但今年公司希望在做项目的同时, 沉淀出一套针对电商的基础产品. 这样可以提高新项目的开发效率, 减少重复劳动.
那现如今, DDD(领域驱动设计)应该是比较受推崇的. 所以在这个项目里, 大家决定用DDD来设计系统与抽象业务.
我是十分懵逼的. 只能抓紧时间恶补了.
一开始请教度娘, 看了很多播客, 然而看完之后还是懵逼, 并没有获取到什么有效的知识. 少有的两篇结合能结合实际例子, 上点代码. 然而代码的简易程度也是幼稚的可怜.
这条路看来不行, 那就看书吧. 本想先看大名鼎鼎的<实现领域驱动>, 但鉴于其吓人的厚度, 加上也没从网络上找到电子版资源. 我就先看DDD的开山制作, Eric Evans <领域驱动设计>吧.
因为看的是英文原版, 所以速度较慢.
第一章还没看完, 但我已经感觉有点看不下去了. 因为感觉从开篇到现在,作者强调的东西, 都太空泛了.
比如他强调的'ubiquotus language' 通用语言, 这么高大上的名词, 我真是一点都不懂. 可是看下去才发现, 无非就是说开发人员与业务专家在对于业务理解上很大可能存在不一致, 要消除这种不一致罢了. 我觉得这就属于沟通的艺术的范畴了......
顺便记录几个DDD扯淡专属名词:
1, maps are models : 这句话我很喜欢. map 和model有个共同点, 对现实世界的一种描述与展现.
2,单一职责: OO设计模式老生常谈了.
3,实体Entity: 需要唯一的身份标识
4, 值对象 value_object: 属性相同则认为相同, 只读
5, 领域服务Domain Service: Domain Servcie: 只有方法, 操作,行为, 没有属性和状态.
6, 聚合与聚合根(aggregation &aggregation root)
若干个同类的实体, 值对象 可以聚合, 但这些只能通过聚合根被外界访问.
7, 工厂factory
8, Repository: 数据库交互层
9,CQRS: 查询与命令分离的架构
DDD学习笔记(一)的更多相关文章
- DDD学习笔记二
参考:感谢博主的分享... http://www.cnblogs.com/netfocus/archive/2012/02/12/2347938.html DDD ==> 领域驱动设计(Doma ...
- DDD学习笔记一
由于也是初学DDD,难免有很多不足和认识错误的地方.多数内容来自其他网络资料或者书籍. 参考:http://www.cnblogs.com/Leo_wl/p/4418663.html 希望多多提出宝贵 ...
- DDD学习笔记1——分层架构
新旧架构对比图: DDD中的基础设施层包括数据持久化(ORM数据访问),IoC容器实现,AOP实现(安全,日志记录,缓存等) Repository的接口通常放在领域层,具体实现在基础设施层 旧架构的业 ...
- Redis学习笔记~目录
回到占占推荐博客索引 百度百科 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合). ...
- RAC学习笔记
RAC学习笔记 ReactiveCocoa(简称为RAC),是由Github开源的一个应用于iOS和OS开发的新框架,Cocoa是苹果整套框架的简称,因此很多苹果框架喜欢以Cocoa结尾. 在学习Re ...
- 初学者的python学习笔记1
推荐一段时间闲的蛋疼,总觉得再堕落下去不太好,便捡起了之前一直想学而没有学的python,以此记录一下学习笔记,同时亦是督促和复习. 学习51cto上的<2016最新Python开发基础课程-2 ...
- js再学习笔记
#js再学习笔记 ##基本 1.js严格区分大小写 2.js末尾的分号可加,也可不加 3.六种数据类型(使用typeof来检验数据的类型) `typeof` - undefined: `var ...
- MVC_学习笔记_2_Authorize
MVC5_学习笔记_2_Authorize/* GitHub stylesheet for MarkdownPad (http://markdownpad.com) *//* Author: Nico ...
- Android(java)学习笔记167:Java中操作文件的类介绍(File + IO流)
1.File类:对硬盘上的文件和目录进行操作的类. File类是文件和目录路径名抽象表现形式 构造函数: 1) File(String pathname) Creat ...
随机推荐
- C#中字段、属性、只读、构造函数赋值、反射赋值的相关
C#中字段.属性和构造函数赋值的问题 提出问题 首先提出几个问题: 1.如何实现自己的注入框架? 2.字段和自动属性的区别是什么? 3.字段和自动属性声明时的直接赋值和构造函数赋值有什么区别? 4.为 ...
- java随笔——HashMap与红黑树
前言: hashmap是一种很常用的数据结构,其使用方便快捷,接下来笔者将给大家深入解析这个数据结构,让大家能在用的时候知其然,也知其所以然. 一.Map 首先,从最基本的讲起,我们先来认识一下map ...
- Spring jndi数据源配置方法
xml配置: <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverMana ...
- Unity下的开发框架--适应web和微端游戏异步资源请求的框架
一. 内容简介: 1. 框架对Web与微端游戏特性的支持: Web和微端游戏最重要的特性是,资源是持续从服务器上即时下载下来的.而保证体验流畅的关键就是保证资源下载分散到持续的体验过程中,并保 ...
- java学习笔记—HTTP协议(10)
客户端浏览器和服务器Tomcat要进行基本的请求和响应的处理. 其实浏览器和服务器通信的数据的格式已经使用协议进行固定好了,只要双方发送固定格式的数据,那么就可以完成基本的通信. 如果开发者需要查看这 ...
- LOJ#162. 快速幂 2(分块)
题面 传送门 题解 orzljz 我们分块,设\(s=\sqrt{p}+1\),那么\(x^a\)可以拆成\((x^s)^{a/s}\)和\(x^{a\bmod s}\),\(O(s)\)预处理,\( ...
- webpack 安装
先安装node ----去nodejs官网上下载最新稳定版 一般node上面会有npm,所以选择npm安装webpack 命令:npm install webpack -g 有时候输入该命令会失败,一 ...
- Linux 服务器加入Windows AD
背景信息: Windows AD Version: Windows Server 2012 R2 zh-cn 计算机全名:hlm12r2n1.hlm.com 域:hlm.com 域控管理员:stone ...
- 10分钟教你用Python打造微信天气预报机器人
01 前言 最近武汉的天气越来越恶劣了.动不动就下雨,所以,拥有一款好的天气预报工具,对于我们大学生来说,还真是挺重要的了.好了,自己动手,丰衣足食,我们来用Python打造一个天气预报的微信机器人吧 ...
- redhat基本操作
实验:安装redhat 需求:使用DVD镜像文件rhel-server-6.5-x86_64-dvd.iso,在虚拟机中安装RHEL 6系统 分区方案选择“使用所有空间”. 软件组选择“基本服务 ...