系统设计的目标:把系统划分为子系统,对系统或子系统进行分层,将子系统分配给硬件设备
系统设计步骤如下
1. 估算性能
如我们会大概估算访问我们站点的并发请求数量,并估算我们站点可以接收的并发请求数量,推测我们的站点会不会存在性能问题
2. 定制复用计划
即讨论我们需要使用哪些开源的库,框架,模式等
3. 将系统拆分
我们一般对子系统进行横向和纵向拆分,纵向拆分为子系统,横向拆分为分层
对于领域驱动设计,我们依据边界上下文划分子系统,而领域驱动设计的分层则是4层
4. 分配子系统
我们会讨论将子系统如何部署在服务器上面,以及服务器之间的物理连通
5. 确定使用的数据存储
我们可以使用内存,文件,数据库,nosql去存储我们的数据,而具体使用哪种则需要自己考虑
6. 处理全局资源
我们需要考虑全局资源(如磁盘文件,cpu等)的访问控制
7. 处理边界条件
即在系统初始化,终止,失效时,我们如何进行处理