首页/第三阶段/第 2 课

LESSON 02 · SYSTEM DESIGN

拆分系统,设计
实现路径

设计不是画一张漂亮架构图,而是提前决定职责、数据流和失败边界,让开发过程可以分批完成和验证。

课程进度2 / 5

建议学习时间:35 分钟
交付系统图与决策记录

学完这一课,你能:

  • 把需求拆成页面、数据、接口和运行环境
  • 沿着核心流程设计数据如何流动
  • 用决策记录说明为什么选择当前方案

1. 先画最小系统边界

用户浏览器

填写、查看和筛选问题。

界面前端

展示状态并发送请求。

规则后端

校验输入、处理状态变化。

记录数据库

保存问题、证据和时间。

运行部署环境

提供域名、服务和配置。

每个方框只写一个主要职责。若一个组件同时承担太多职责,开发和定位问题都会变难;若拆得过细,第一版又会增加不必要的连接和部署成本。

2. 用四张清单完成设计

页面清单用户看见什么

问题列表、创建表单、详情页,以及每页的主要操作。

数据清单系统保存什么

编号、标题、现象、证据、状态、创建与更新时间。

接口清单组件怎样沟通

新增、查询、更新状态、删除分别需要什么输入和响应。

权限清单谁能做什么

第一版若只有自己使用,也要明确是否允许公开访问。

配置清单环境差异放哪里

服务地址、数据库位置、密钥与运行模式不能散落在代码里。

失败清单出错怎样表现

无网络、输入无效、保存失败、数据不存在时给用户什么反馈。

3. 按垂直功能切片,不按技术层堆积

不要先把所有页面做完,再做后端,再做数据。更稳妥的方法是一次完成一条从界面到数据的完整流程。

  1. 切片 1:查看问题列表准备少量示例数据,让列表能真实显示。
  2. 切片 2:新增问题完成输入、校验、保存和页面反馈。
  3. 切片 3:查看详情根据编号读取记录,并处理不存在的情况。
  4. 切片 4:更新状态限制允许的状态变化,记录更新时间。
  5. 切片 5:筛选与收尾按状态筛选,补齐空状态、错误提示和移动端布局。

4. 把关键取舍写成决策记录

决策:第一版使用单一应用与一个数据库

背景:只有一名使用者,数据量小,需要尽快上线验证流程。

选择:不拆分多个服务,不引入消息队列。

原因:部署和调试更简单,足以支持当前验收标准。

后果:未来多人协作或数据增长时再评估拆分。

好的决策记录让未来的自己知道“当时为什么这样做”,避免把临时选择误认为永远正确。

本课交付 · 30 分钟

完成系统设计包

  1. 画出用户、前端、后端、数据库和部署环境的关系。
  2. 列出页面、数据字段、接口与失败情况。
  3. 把核心功能拆成 4–6 个可独立验收的垂直切片。
  4. 为“数据保存方式”和“是否需要登录”各写一条决策记录。
  5. 让 AI 评审遗漏,但由你决定是否采纳。

离开前自测