设计总则
高内聚、低耦合、高复用、可扩展、可切分。
高内聚
- 功能内聚:明确系统边界,单一业务功能内聚在单一模块,避免模块间交叉实现;
- 数据内聚:明确数据模型中的根实体,普通实体内聚到正确的根实体上;业务关联性强的数据由单一模块维护。
低耦合
- 避免DB依赖:避免模块之间直DB依赖,单一DB只能被单一模块直接依赖
- 服务依赖:服务化方式解耦,服务接口和实现之间解耦
- 消息依赖:异步消息方式解耦,消息生产者和消费者之间解耦
复用性
- 模块平台化:基础服务平台化,减少重复建设;
- 避免造轮子:技术方案选型尽量采用开源或公司已有组件;
扩展性
- 模型抽象:重视抽象和建模,保证数据架构和应用架构的稳定和可扩展
- 代码抽象:使用面向对象的思想以及设计模式来进行代码层面的设计
隔离性
- 核心与非核心隔离:核心业务、流程与非核心业务、流程使用不同模块维护,保障核心模块的精简、稳定
- 内、外部系统分离:内部人员使用的系统和外部客户使用的系统SLA有差异
- 稳定和活跃分离:稳定服务和活跃服务分离,保证稳定服务的稳定性以及活跃服务的灵活性
- 稳定部分不依赖不稳定服务、易变服务依赖稳定服务