课程名称:DDD(领域驱动设计)思想解读及优秀实践
课程章节: 领域驱动设计的背景和来源
课程讲师: 尤达_技术咖啡
课程内容:理解学习DDD的必要性,DDD能对我们带来什么帮助,它的核心思想和解决的痛点问题是什么,它的发展历史、现状和未来前景如何?它和现有方法体系的联系和区别(如面向对象设计思想、敏捷)?以及学习DDD对技术人员的成长有什么意义?我们应该怎样学习DDD?
学习收获、心得,也可以分享过程中产生的疑惑、思考和最终的解决思路等
推荐书籍
1,领域驱动设计软件核心复杂性应对之道(不好读)
2,实现领域驱动设计(容易读)
问题1)DDD能解决什么问题?
1,项目时间长了,产品,开发,测试,新需求,都比较难理解。
问题2)1,为什么需要领域驱动,主要原因是信息失真,如果实现通用不失真呢,可以使用通用语言,在企业里面说某个词语,大家都知道指的是什么,就叫做通用语言。
3,领域驱动四层模型
展现和接口层:就是controller层,主要提供封装的api,不同的场景需要不同的api,
应用层:(传统的应用层负责逻辑,任务的调度管理,编排策略),这里的应用层只负责编排,把业务逻辑下方。(例如:参数的组装)(应用层是调用领域层,并且自己也可以有服务)
领域层:业务逻辑层
基础架构层:负责缓存,消息队列等。(这一层也可以通过控制翻转往上层放)
4,那三个角度,主导设计过程?
前端主导:先有是app,小程序,前端依靠模块化,后端就需要根据模块化给前端提供数据。
业务逻辑为主导:(先有用户的行为逻辑)DDD设计是根据业务逻辑,一切以中间逻辑为主,不太关心用户的界面,和后端数据库的数据存储,关心的是用户的行为,抽象成一个个小逻辑模块或者单元,关心的是这个小单元的完整性和事务性,根据这个完整的逻辑去驱动前端的展现和数据的存储
数据主导:uml和er图,以数据表为单元,考虑的主要点是,数据怎么存储,数据该怎么查询
产品导向:用户的行为逻辑,抽象成单元
适合中大型项目:已经拆分成微服务的项目,包含很多领域,根据现有的微服务,拆分出核心领域,通用领域,支撑域。
**api经济(现有逻辑直接调用api),中台:**包装好的api,关注核心领域,外包非核心域。
5,要有新意,有创新与众不同的点
比如:述职报告,年终总结,使用uml,传统的技术,领导一看老三样,会觉得你没新意,没有进步空间。所以使用DDD,或者新的技术会觉得你。
包装,对很简单的东西,进行包装显得会有逻辑性和新意,比如,微服务,如果使用老三样,显得不够新意,可以使用
共同学习,写下你的评论
评论加载中...
作者其他优质文章