1. 引言
设计复杂系统的能力是高阶工程师的必备能力,设计出完备、健壮、优雅、前瞻的系统是工程师的不懈追求。在上一篇文章中,笔者介绍了设计一个复杂系统的第一步:深入理解业务。本文作为《如何设计一个复杂的系统》主题的延续,将从技术的角度出发带领读者掌握系统设计的思考框架和方法论(通俗地说,就是系统设计的套路)。
2. 系统设计简述
回顾自己在过往职业生涯所经历的项目,在做系统设计的时候都会按照一个套路去做,这个套路就是:
系统设计的目的 -> 系统设计的目标 -> 围绕目标的核心设计 -> 围绕核心设计形成设计原则 -> 各子系统/模块的详细设计
系统设计的目的
首先要明确做这个系统设计的目的是什么?部分工程师在做系统设计的时候,拿到需求就迫不及待地展开设计了,甚至无暇顾及为什么要做一个新系统的设计,或者为什么要做一个系统的重构/演进设计。如果系统设计的目的都没有搞清楚,在系统设计时很容易出现偏差。
系统设计的目标
在明确了系统设计的目的之后,接下来需要整理出系统设计的目标,简而言之,就是把系统设计目的相关的描述,转换为可衡量的目标的描述。之所以要形成可衡量的目标,主要目的有二:
- 后续系统设计围绕目标来进行,避免偏题;
- 清晰、可衡量的系统建设的目标有助于评估系统的建设效果和进度。
围绕目标的核心设计
明确了设计目的和目标,接下来便是通过设计去实现上面的目标。这是系统设计中最为重要的环节,