最近开始筹备一个电商项目. 其实是公司的老本行了. 但今年公司希望在做项目的同时, 沉淀出一套针对电商的基础产品. 这样可以提高新项目的开发效率, 减少重复劳动.

  那现如今, 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学习笔记(一)的更多相关文章

  1. DDD学习笔记二

    参考:感谢博主的分享... http://www.cnblogs.com/netfocus/archive/2012/02/12/2347938.html DDD ==> 领域驱动设计(Doma ...

  2. DDD学习笔记一

    由于也是初学DDD,难免有很多不足和认识错误的地方.多数内容来自其他网络资料或者书籍. 参考:http://www.cnblogs.com/Leo_wl/p/4418663.html 希望多多提出宝贵 ...

  3. DDD学习笔记1——分层架构

    新旧架构对比图: DDD中的基础设施层包括数据持久化(ORM数据访问),IoC容器实现,AOP实现(安全,日志记录,缓存等) Repository的接口通常放在领域层,具体实现在基础设施层 旧架构的业 ...

  4. Redis学习笔记~目录

    回到占占推荐博客索引 百度百科 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合). ...

  5. RAC学习笔记

    RAC学习笔记 ReactiveCocoa(简称为RAC),是由Github开源的一个应用于iOS和OS开发的新框架,Cocoa是苹果整套框架的简称,因此很多苹果框架喜欢以Cocoa结尾. 在学习Re ...

  6. 初学者的python学习笔记1

    推荐一段时间闲的蛋疼,总觉得再堕落下去不太好,便捡起了之前一直想学而没有学的python,以此记录一下学习笔记,同时亦是督促和复习. 学习51cto上的<2016最新Python开发基础课程-2 ...

  7. js再学习笔记

    #js再学习笔记 ##基本 1.js严格区分大小写   2.js末尾的分号可加,也可不加   3.六种数据类型(使用typeof来检验数据的类型) `typeof` - undefined: `var ...

  8. MVC_学习笔记_2_Authorize

    MVC5_学习笔记_2_Authorize/* GitHub stylesheet for MarkdownPad (http://markdownpad.com) *//* Author: Nico ...

  9. Android(java)学习笔记167:Java中操作文件的类介绍(File + IO流)

    1.File类:对硬盘上的文件和目录进行操作的类.    File类是文件和目录路径名抽象表现形式  构造函数:        1) File(String pathname)       Creat ...

随机推荐

  1. Java--下载历史版本登录账户

    目前在官网下载低于jdk1.8的java jdk的时候需要登陆,这边分享一个账号,方便下载 2696671285@qq.com 密码:Oracle123 转自-- jdk下载以前版本需要的账号(转) ...

  2. C#Encoding

    1.Encoding (1).如何生成一个Encoding即一种编码 Encoding位于System.Text命名空间下,是一个抽象类,它的派生类如下图: 要实例化一个Encoding一共有以下两种 ...

  3. ES6学习之const声明常量的学习

    在ES中const关键字用来声明常量,const声明的一经定义不能修改 和let特性差不多, ; console.log(a); a = ; //报错 const定义完常量后必须赋值,后面不允许再次赋 ...

  4. LOJ121 【离线可过】动态图连通性

    题目链接:戳我 [线段树分治版本代码] 这里面的线段树是时间线段树,每一个节点都要开一个vector,记录当前时间区间中存在的边的标号qwq #include<iostream> #inc ...

  5. Eclipes批量创建文件夹

    package file; import java.io.File; import java.io.IOException; import java.util.Scanner; public clas ...

  6. RabbitMq初探——用队列实现RPC

    rabbitmq构造rpc 前言 rpc——remote procedure call 远程调用.在我接触的使用过http协议.thrift框架来实现远程调用.其实消息队列rabbitmq也可以实现. ...

  7. ceph 运维常用指令

    集群 启动一个ceph 进程 启动mon进程 service ceph start mon.node1 启动msd进程 service ceph start mds.node1 启动osd进程 ser ...

  8. “全栈2019”Java第一百零九章:匿名内部类实现唯一抽象类或接口

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  9. httpclient post请求例子(无参数名与带参数名的例子),多线程并发处理

    版本:4.1 带参数名的情况 HttpClient httpClient = new DefaultHttpClient(); HttpPost httpPost = new HttpPost(url ...

  10. 《快学Scala》第四章 映射与元组