如果真的要想学习东西,而且想学的更快更深入,就要关注自己如何集中注意力,要思考自己的思考方式,研究自己的研究方式。
文档结构基本原则:金字塔结构, 不仅是文档结构, 同时也是思考方式
文档结构汇总
1、概念名词解释
2、产品目标
3、业务介绍(why为什么做):背景、问题冲突、业务解决方案、业务价值
4、业务分析:列用例场景、提取概念模型、画核心业务调用、划分业务子域
5、系统设计:系统设计目标、系统如何交互、系统模型、技术架构
----------------------------------------------------------------------------------------------------------------
1、概念名词解释(了解业务的前提)
业务相关概念, 概念可以先做了解,或者在后续遇到时, 再来查阅
2、产品(项目)目标:业务目标、技术目标
什么目标:这里的目标是业务层面的目标,不是技术的目标
明确做什么:知道我们要做的是什么事情, 知道我们要干什么, 不是讲了半天, 根本不知道我们的目的是什么,这个是很严重的问题。
引出疑问:目标提出后,就会有疑问,为什么要提出这样的目标
3、业务背景、冲突、业务解决方案、业务价值
业务背景
问题冲突(提出疑问):某件或是某类事情, 导致出现问题
问题影响:分为业务上的, 技术上的影响, 或是痛点
可以描述问题的影响严重程度,比较有力的论据:通过真实案例,如产生公司资损;用户工单投诉
业务解决方案(疑问回答):是否能解决问题上面的, 技术开发也是需要考虑的
4、价值:业务价值、技术价值(主要介绍为什么做)
5、业务分析(疑问回答,领域建模角度:问题域)
适用场景:从0开始建设的系统;新的业务, 如果只是简单在原有基础上修改,不必这么复杂。当然, 以下可以做为参考, 如何解决问题域, 如何提炼概念模型,如何划分子域
5.1、用例
用例集合:场景 + 参与者, 这一步重要的一点, 场景一定要全,
5.2、概念模型(领域模型)
这里先统一下概念:概念模型也叫领域模型,概念实体,也叫领域对象。
从用例中找名词, 提取概念实体、概念包含的属性、概念与概念的关系(一对一, 还是一对多),这一步很重要,为后续的子域的划分、数据模型(数据库表)做准备
todo 具体参考方法,后续梳理。
5.3、核心业务画调用的时序图
概念模型已经梳理出来了, 业务功能、业务流程如何实现呢?
通过概念实体(在后续代码实现时,可以转化为领域对象)之间的调用关系,来实现业务功能、业务流程,具体使用时序图。
时序图可以思考每个概念实体的职责, 职责并不是拍脑袋的,有一定的原则
todo 具体原则,后续梳理。
1、业务执行清晰:方便、快速理解业务
2、梳理可复用的能力:提炼出每个领域对象需要哪些能力, 这里存在不同的场景使用相同的能力
5.4、划分子域
什么是子域?具体如何划分?
todo 后续完善
6、系统设计目标(提出疑问)
基本功能的实现:比如整个业务流程, 如何实现, 如何驱动整个流程向执行
扩展性:新的业务方接入是否可以快速接入;流程中的节点,是否有变化的可能,是否考虑后续的扩展。这里要注意的是:适度
兼容:与原有业务逻辑、实现, 是否兼容
安全:是否存在资损、并发是否有问题、接口是否支持幂等
还有其他的考虑, 后续再完善
7、系统设计(疑问回答,领域建构角度:问题解决域)
7.1、系统交互
按用户场景画, 一般画主的场景。 有交互, 站在建设的整体角度,梳理与外部上下游的交互,明确整个链路流程,确认每个系统(不是指某个应用)的边界。
7.2、系统模型
7.2、架构
上下游整个链路的改造
应用架构
8、稳定性
如何保证稳定性