目录
一、流程驱动设计
1.1流程驱动设计
1.2流程
1.3流程驱动设计实践
1.4流程驱动设计的不足
二、微服务
三、领域驱动设计
3.1领域驱动设计
3.2领域驱动设计实践
四、两种设计方法的关系
一、流程驱动设计
1.1流程驱动设计
流程驱动设计,是指根据实际业务流程,设计产品流程,并以产品流程为驱动,设计产品架构、功能的方式。
B端产品设计流程复杂,可以流程为主线梳理B端业务逻辑。
1.2流程
1.3流程驱动设计实践
具体步骤
1.4流程驱动设计的不足
流程驱动设计的核心是以业务流程为基础来分析、设计产品。这种方式对于简单、核心业务流程较少的产品非常好用。不过这种方式对复杂的、涉及多领域的产品则显得不太好用了,原因有以下几个。
1)复杂流程易混乱
2)模型不匹配
3)耦合度高
高内聚的意思是让同一业务领域的管理实体、功能尽可能地聚合在一起,做到相近的业务形成内部聚合。低耦合的意思是不同业务领域的功能尽量减少交叉和重复,降低耦合度,做到不同业务的关联尽量少。
B端产品经理作为中间桥梁,就需要在进行产品设计时就遵从这一原则,让产品从业务角度做到“高内聚、低耦合”,这样才能让架构师或后台人员更准确合理地设计后台架构。
4)协同成本高
不同团队之间的沟通方式、内容、边界、成本等,各个小团队无法形成对产品全貌的认识。
二、微服务
“微”是指微小,即将单体式架构的产品化整为零,拆分成一个个更小的单元,进行解耦;“服务”是指用户可以感知的、独立的功能单元,每个服务都具有自主运行的业务功能,它既可以是一个个系统,也可以是一个个独立的功能模块。
微服务针对的是产品后台架构,用户感知到的还是一个完整的产品,它统一的风格、良好的体验。
三、领域驱动设计
3.1领域驱动设计
领域驱动设计是一种开发复杂软件的方法,是指在某个具体的领域中,一种面向对象的设计方式。
3.2领域驱动设计实践
1)分析需求,识别实体
2)多个维度,划分子域
3)分析实体,建立关系
4)走查场景,优化模型
5)统一名词,形成共识
6)子域内流程驱动设计
在领域驱动设计中,领域是指业务范围内所有的服务和活动。将领域按一定规则划分成逻辑分离、同时彼此间又有联系的小领域,就是子域。
四、两种设计方法的关系
流程驱动设计更适合简单的小型产品,而领域驱动设计更适合复杂的产品。
对于复杂系统而言,我们需要先采用领域驱动设计划分子域,当将复杂领域化繁为简后,在子域内就能采用流程驱动设计的方式了。
业务比较简单的产品,依然可以先采用领域驱动设计的方式把实体及其相互间的关系分析清楚,这样就可以解决流程驱动设计中与开发模型不匹配的问题,不需要再划分子域。