课程地图 业务场景库
场景库 术语表
Business Scenario Library

从业务场景
反向理解技术

当你熟悉支付、审批、文件导入或 AI 生成,却还不熟悉幂等、事务、队列和缓存时,可以从这里进入。每个场景都会链接回对应课程小节。

133 个业务案例22 类场景覆盖全部 120 个小节
133 个场景
TRACK 01

账号、登录与权限

从登录状态、企业单点登录到角色权限和安全审计。

账号与权限

一个注册表单如何从设计稿变成网页?

用户输入邮箱、密码并勾选协议后提交注册。

会出什么问题:只有视觉图层时,浏览器不知道哪些是输入框、标签、错误提示和可点击按钮,也无法处理键盘和屏幕阅读器。

DOMSemantic HTMLEvent
01.02|HTML、CSS、JavaScript 分别负责什么? →
账号与权限

为什么每个接口都能统一检查登录和请求频率?

用户连续调用导出接口,系统需要验证登录、限制频率并记录请求链路。

会出什么问题:把相同逻辑复制到每个 Controller 会造成遗漏和规则不一致。

MiddlewareRate LimitTrace ID
03.05|Middleware 与横切能力 →
账号与权限

Web 登录和移动 App 登录为什么保存状态的方式不同?

用户在浏览器登录后台,也在手机 App 登录同一账号。

会出什么问题:浏览器与 App 的存储、跨站限制和安全模型不同。

CookieSessionToken
05.02|Cookie、Session 与 Token →
账号与权限

“使用 Google 登录”背后发生了什么?

用户不想注册新密码,选择 Google 登录。

会出什么问题:你的系统不能直接获取用户的 Google 密码,也需要确认授权范围。

OAuthJWT
05.03|JWT、OAuth 与 SSO →
安全与审计

密码、身份证文件和支付密钥应该怎样保存?

系统同时保存用户密码、加密后的身份证附件和第三方支付 API 密钥。

会出什么问题:明文保存会在数据库或代码泄露时造成直接损失。

HashEncryptionSecret
05.06|Hash、Encryption、Secret 与审计 →
账号与权限

验证码为什么一分钟只能发一次?

用户频繁点击发送验证码,攻击脚本也可能批量调用接口。

会出什么问题:短信成本上升,接口可能被滥用。

RedisKey-Value
06.05|Redis 能做什么? →
TRACK 02

项目、审批与企业协作

从创建项目、成员协作、审批状态到多人同时编辑。

项目与协作

一个项目列表页背后到底有多少系统?

项目经理打开项目列表,筛选负责人并下载某个项目的合同附件。

会出什么问题:页面需要拿到项目数据、成员权限和附件地址;其中任何一层缺失,页面都只能展示假数据或静态内容。

ClientBackendInfrastructure
00.01|软件产品由哪些部分组成? →
项目与协作

用户点击“创建项目”后,系统怎样真正创建一条数据?

用户填写名称、负责人和日期后点击提交。

会出什么问题:重复提交、权限不足、名称冲突、网络超时和数据库失败都可能让结果与页面提示不一致。

EventRequestResponse
00.02|点击“创建项目”后发生了什么? →
项目与协作

一个能点击的后台原型,距离真正可用还有什么?

团队拿到 AI 生成的项目管理页面,按钮能点、弹窗能开,但刷新后刚创建的数据全部消失。

会出什么问题:交互只发生在浏览器内,没有真实 API、数据库、权限和错误恢复,无法持续承载业务。

StaticDynamicPersistent
00.03|静态页面、动态应用与完整系统 →
项目与协作

同一个项目系统为什么会同时有 Web、App 和桌面端?

管理者在 Web 后台排期,成员在手机 App 更新任务,设计师在桌面端上传本地设计文件。

会出什么问题:不同设备能力、交互方式和发布渠道不同,但项目、任务和成员数据必须保持一致。

BrowserNative AppCross-platform
01.01|客户端有哪些形态? →
项目与协作

一个筛选组件怎样被多个列表复用?

项目、成员和合同列表都需要日期、负责人和状态筛选。

会出什么问题:各页面各写一套筛选会产生不同交互和字段规则。

ComponentPropsState
01.04|Component、Props 与 State →
项目与协作

给项目系统增加“导出”功能时,代码会放在哪里?

开发需要新增导出按钮、调用接口、处理下载状态并复用权限逻辑。

会出什么问题:所有代码挤在一个文件里会让页面、组件、接口和工具函数相互缠绕,后续改动容易影响无关功能。

package.jsonnpm/pnpmVite
01.06|真实前端工程长什么样? →
多租户 SaaS

用户输入公司域名后,怎样到达正确的 SaaS 应用?

用户访问 acme.example.com,希望进入自己公司的工作区。

会出什么问题:域名需要解析到服务器,服务器上可能同时运行多个应用和租户入口,端口也不能直接暴露给用户。

URLDNSPort
02.01|输入一个网址后发生了什么? →
项目与协作

保存项目表单时,浏览器实际发送了什么?

用户修改项目名称并点击保存。

会出什么问题:服务端需要知道用户身份、数据格式和具体修改内容;网络传输也要防止被窃听和篡改。

HeaderBodyHTTPS
02.02|HTTP Request 与 Response →
项目与协作

列表中的查、新、改、删怎样映射到接口?

用户查看项目列表、新建项目、修改状态和删除草稿。

会出什么问题:接口动作含糊会让前后端难以约定,错误码不清会让页面只能统一显示“操作失败”。

GETPOSTStatus Code
02.03|Method 与状态码如何对应产品操作? →
项目与协作

“项目”在页面、接口和数据库里为什么长得不完全一样?

新建项目表单只提交名称和负责人,详情页却要展示成员数、风险数和创建人信息。

会出什么问题:直接把数据库 Entity 原样返回,会泄露内部字段,也难以适配不同页面的数据需求。

EntityDTOSchema
03.04|Model、Entity、DTO 与 Schema →
项目与协作

为什么刷新页面后项目仍然存在?

用户创建项目后关闭浏览器,第二天继续查看。

会出什么问题:只保存在前端内存中的数据会在刷新、换设备或程序重启后消失。

PersistenceDatabaseBackup
04.01|数据为什么需要数据库? →
项目与协作

一个用户为什么能加入多个项目?

成员可以参与多个项目,一个项目也包含多名成员,并且每个成员有不同角色。

会出什么问题:把成员名单直接写进项目字段会难以查询、更新和保存角色信息。

Primary KeyForeign KeyJoin Table
04.03|Primary Key、Foreign Key 与关系 →
项目与协作

给项目增加“风险等级”字段,线上旧数据怎么办?

新版项目详情需要新增 risk_level,开发代码也要读取和写入它。

会出什么问题:直接修改线上表可能导致旧版本代码报错或历史数据为空。

ORMMigration
04.07|NoSQL、ORM 与 Migration →
企业审批

员工能登录报销系统,为什么仍然看不到财务审批页?

员工成功登录,只能查看自己的报销单;财务可以审核全公司的报销。

会出什么问题:把“已登录”和“有权操作”混为一谈会造成越权访问。

AuthenticationAuthorizationPrincipal
05.01|Authentication 与 Authorization →
多租户 SaaS

企业员工为什么登录一次就能进入多个内部系统?

员工已登录公司身份平台,再打开项目系统和财务系统。

会出什么问题:每个系统重复登录会增加使用成本和账号管理风险。

SSO
05.03|JWT、OAuth 与 SSO →
项目与协作

项目经理和普通成员为什么看到不同按钮?

项目经理可以编辑计划和邀请成员,普通成员只能更新自己的任务。

会出什么问题:权限散落在页面判断中容易遗漏,后端也可能被绕过。

RBACABACPolicy
05.04|RBAC 与 ABAC →
企业审批

为什么“财务可审批”还要加金额条件?

普通财务可审批五万元以下报销,大额需要财务负责人。

会出什么问题:单纯角色无法表达金额、部门和单据状态等上下文条件。

ABACPolicy
05.04|RBAC 与 ABAC →
企业审批

谁在什么时候把合同金额改了?

合同审批后金额发生变化,管理员需要追溯操作人和变更前后内容。

会出什么问题:只有最终数据无法解释过程,也无法满足合规和争议处理。

Audit Log
05.06|Hash、Encryption、Secret 与审计 →
项目与协作

项目管理系统为什么要先划清项目、任务和成员边界?

团队持续增加合同、任务、工时、风险和权限功能。

会出什么问题:模块边界不清会让任何改动都触碰大量代码和数据,团队也无法明确负责范围。

ArchitectureModuleData Ownership
08.01|架构到底在设计什么? →
多租户 SaaS

五人创业团队为什么常从单体开始?

团队要快速上线客户、项目、账单和通知功能。

会出什么问题:过早拆很多服务会增加部署、通信和运维成本,反而拖慢验证。

MonolithDeployment UnitCoupling
08.02|Monolith:单体架构 →
项目与协作

单体项目越来越大,怎样先避免代码互相侵入?

项目、合同和财务功能仍由一个团队部署,但各模块频繁互相读取内部数据。

会出什么问题:高 Coupling 会让局部改动引发连锁影响。

EncapsulationContractDependency Rule
08.03|Modular Monolith:模块化单体 →
多租户 SaaS

新产品应该直接上微服务吗?

三人团队准备验证一个企业知识库产品,预计前半年客户有限。

会出什么问题:架构追求复杂和流行会消耗时间,也可能与团队能力和业务规模不匹配。

Trade-offEvolutionary ArchitectureQuality Attribute
08.07|如何选择架构? →
多租户 SaaS

数据库机器故障时,企业客户还能继续访问吗?

主数据库突然宕机,系统保存了大量项目和合同。

会出什么问题:单份数据会形成单点故障,单台机器容量也可能达到上限。

ReplicationShardingFailover
09.03|复制、分片与高可用 →
多租户 SaaS

一个域名怎样同时访问网页和 API?

用户访问 example.com,前端资源和 /api 请求由不同程序处理。

会出什么问题:用户不能记住多个端口,应用实例也不应直接暴露。

NginxReverse ProxyTLS Termination
10.03|Nginx 与反向代理 →
项目与协作

开发会议里三个 Service 分别指什么?

团队说“Project Service 里加校验”“拆成文档微服务”“K8s Service 没转发到 Pod”。

会出什么问题:同一个词跨代码、架构和平台层使用,容易造成理解错位。

Service LayerMicroserviceKubernetes Service
11.07|三个 Service 如何区分? →
企业审批

“新增合同审批”如何从需求走到上线?

产品提出金额分级审批和撤回能力。

会出什么问题:只有页面稿时,开发可能遗漏状态规则、权限、通知和验收边界。

SDLCAcceptance CriteriaRelease
12.01|一个功能如何走完生命周期? →
项目与协作

组件样式没变,为什么上线后键盘用户却无法操作?

按钮视觉还原正确,但缺少焦点状态和语义。

会出什么问题:只做视觉验收会遗漏可访问性和交互回归。

Visual RegressionAccessibility TestDesign QA
13.07|设计质量与工程质量如何连接? →
多租户 SaaS

移动端首页为什么不能一次调用二十个接口?

弱网用户打开工作台,需要头像、项目、任务、提醒和统计。

会出什么问题:每次 Round Trip 都有延迟,小请求过多也增加 Header 和连接成本。

PayloadRound TripBFF
14.03|网络与 API 性能 →
项目与协作

项目列表只有 100 条,为什么却发出 101 次数据库查询?

页面展示每个项目及负责人名称。

会出什么问题:先查项目,再为每条项目单独查负责人,形成 N+1 Query。

N+1 QueryConnection PoolProfiling
14.04|后端与数据库性能 →
多租户 SaaS

一套企业项目 SaaS 的所有层怎样连在一起?

企业员工从浏览器登录、查看项目、上传合同并接收通知。

会出什么问题:只看单个页面无法理解身份、API、数据、文件、消息、部署和监控之间的依赖。

SaaSEdgePlatform
16.01|一个 SaaS 产品的完整架构 →
项目与协作

创建项目的主事务、后续事件和审计如何协作?

用户创建项目后,系统还要生成默认任务、通知成员并记录操作。

会出什么问题:把所有附加动作塞进一次请求会变慢,任何通知失败都可能让核心创建失败。

Primary TransactionDomain EventAudit
16.02|案例一:创建项目 →
多租户 SaaS

同一套系统怎样保证 A 公司看不到 B 公司的数据?

多个企业共用一套 SaaS,每个企业都有成员、项目和合同。

会出什么问题:查询遗漏 Tenant 条件会造成严重数据泄露。

Multi-tenancyTenantData Isolation
16.05|案例四:企业多租户系统 →
项目与协作

设计师想独立做一个业务产品,最值得深入哪条主线?

目标是把项目管理系统从设计做到可上线版本。

会出什么问题:只学界面难以接入真实数据,平均用力学习所有基础设施也难以形成产出。

TypeScriptFull-stack FrameworkProduct Engineer
17.02|设计师建议深入掌握的主线 →
项目与协作

怎样用一个项目管理产品贯穿全栈学习?

先做项目列表,再逐步加入详情、成员、权限、文件和通知。

会出什么问题:按技术章节分别做零散 Demo,很难理解它们如何协作。

CRUDVertical SliceIteration
17.05|用一个产品贯穿学习 →
项目与协作

怎样把全景知识变成持续可执行的学习路线?

学习者容易在前端、Docker、微服务和 AI 之间频繁跳转。

会出什么问题:缺少闭环会积累名词,却没有可运行成果和判断能力。

Learning LoopPortfolio ProjectRetrospective
17.07|一条可执行的学习路线 →
TRACK 03

订单、库存与支付

从提交订单、并发扣库存、支付回调到退款和对账。

订单与支付

如何从一张支付架构图读懂真实业务?

用户从订单页发起支付,支付平台完成扣款后通知商城更新订单。

会出什么问题:图中可能同时出现客户端、网关、订单服务、支付服务、数据库和第三方支付,工具名很多,容易失去业务主线。

BoundaryDependencyData Flow
00.05|如何读一张架构图? →
订单与支付

同一个订单卡片为什么能显示不同内容?

订单列表里同时存在待支付、待发货、已退款三种订单。

会出什么问题:复制三套几乎相同的页面会造成样式和逻辑分叉,状态变化也难以统一维护。

ComponentPropsState
01.04|Component、Props 与 State →
订单与支付

订单服务为什么会通过 gRPC 调库存服务?

用户提交订单时,订单服务需要快速确认库存并锁定商品。

会出什么问题:内部服务调用频繁,接口契约和性能要求更高。

RESTgRPC
02.04|REST、GraphQL、RPC 与 gRPC →
订单与支付

用户付完钱后,商城怎么知道支付成功?

用户跳转到支付平台完成付款。

会出什么问题:商城无法预测付款完成时间,用户也可能直接关闭支付页。

Webhook
02.05|WebSocket、SSE 与 Webhook →
订单与支付

用户点击“提交订单”后,后端承担哪些工作?

用户选择地址、优惠券和支付方式后提交订单。

会出什么问题:价格可能变化、库存可能不足、优惠券可能失效,外部支付也可能不可用。

BackendBusiness LogicExternal Service
03.01|后端到底负责什么? →
订单与支付

一笔退款请求在后端如何分层处理?

客服在订单详情点击退款并填写原因。

会出什么问题:接口接收、退款规则、数据库读取和第三方支付调用混在一起,会难以测试和维护。

ControllerService LayerRepository
03.03|Controller、Service、Repository →
订单与支付

用户连续点击支付,为什么不会扣两次钱?

支付按钮响应变慢,用户连续点击两次;客户端也可能因网络超时自动重试。

会出什么问题:后端可能创建两笔支付单、重复扣款或重复发放权益。

IdempotencyError Code
03.06|Validation、错误处理与幂等 →
订单与支付

订单列表按订单号搜索,为什么有时一秒有时十秒?

客服在上亿条订单中查询某个订单号和用户手机号。

会出什么问题:没有合适 Index 时数据库可能执行 Full Table Scan,数据越多越慢。

IndexFull Table ScanQuery Plan
04.05|Index 与性能 →
订单与支付

创建订单成功、扣库存失败时怎么办?

用户提交订单,系统需要创建订单、扣减库存并使用优惠券。

会出什么问题:其中一步失败会产生“有订单但没库存”或“优惠券被扣却没有订单”等半完成状态。

TransactionCommitRollback
04.06|Transaction 与一致性 →
订单与支付

用户已登录银行网站,恶意页面能否替他发起转账?

用户保持登录状态时访问了攻击者页面。

会出什么问题:浏览器可能自动携带 Cookie,恶意页面诱导发送请求,形成 CSRF。

CSRFSQL Injection
05.05|常见 Web 安全问题 →
库存与抢购

最后一张优惠券被很多人同时领取怎么办?

高峰期多个服务器同时处理同一张券的领取请求。

会出什么问题:多个请求都可能读取到“剩余 1 张”,造成超发。

RedisDistributed Lock
06.05|Redis 能做什么? →
订单与支付

“创建订单”和“订单已创建”为什么是两种消息?

用户提交订单后,库存、积分和通知系统需要协作。

会出什么问题:把要求执行的动作和已经发生的事实混在一起,会导致责任边界不清。

CommandEventPub/Sub
07.04|Command、Event 与 Pub/Sub →
订单与支付

支付成功消息被消费两次,积分会加两遍吗?

消费者处理完成后确认消息时网络中断,队列再次投递同一消息。

会出什么问题:At-least-once 保证消息尽量不丢,但可能重复执行扣款、发券或加积分。

AcknowledgementDead Letter QueueAt-least-once
07.05|重试、重复消费与幂等 →
订单与支付

订单显示已支付,积分为什么晚几秒到账?

支付服务先更新订单,积分服务通过事件异步处理。

会出什么问题:分布式系统无法保证所有服务同一瞬间成功,可能出现 Partial Failure。

Eventual ConsistencyPartial FailureCompensation
07.06|最终一致性与产品状态 →
订单与支付

大型电商为什么把订单、支付和库存拆成微服务?

不同团队分别负责订单、支付和库存,促销时各模块流量增长也不同。

会出什么问题:一个应用统一发布会让团队互相等待,订单高峰也迫使所有模块一起扩容。

MicroserviceService BoundaryIndependent Deployment
08.04|Microservices:微服务 →
订单与支付

一次下单为什么可能涉及十几台机器?

订单请求经过网关、订单服务、库存服务、支付服务、数据库和消息系统。

会出什么问题:每个 Node 都可能独立变慢或失败,整体仍需给用户明确结果。

Distributed SystemNodePartial Failure
09.01|什么是分布式系统? →
库存与抢购

演唱会开票时,增加一台更强服务器够吗?

开票瞬间并发从几百上升到几十万。

会出什么问题:Scale Up 有硬件上限和单点风险,带状态的应用也难以平均分配请求。

Scale UpScale OutStateless
09.02|Scale Up 与 Scale Out →
订单与支付

银行卡余额和社交点赞为什么采用不同一致性?

银行转账必须立即看到准确余额;点赞数晚几秒同步通常可以接受。

会出什么问题:网络分区时,系统无法同时保证所有节点立即一致和始终可用。

CAPStrong ConsistencyEventual Consistency
09.04|CAP 与一致性选择 →
库存与抢购

最后一个会议室时段被两个人同时预订怎么办?

两名用户几乎同时确认同一会议室和时间。

会出什么问题:多个服务或实例同时检查“可用”后都写入,会产生重复预订。

Distributed Lock
09.05|分布式锁与分布式事务 →
订单与支付

跨服务下单失败后,怎样撤销已经完成的步骤?

订单创建成功、库存已锁定,支付服务随后失败。

会出什么问题:跨服务无法使用一个本地数据库事务覆盖全部步骤。

SagaCompensation
09.05|分布式锁与分布式事务 →
订单与支付

一笔支付卡了八秒,开发怎样找到慢在哪?

用户只看到支付处理中,后端请求经过网关、订单、支付和数据库。

会出什么问题:单个服务日志无法还原完整调用链。

ObservabilityDistributed TraceCorrelation ID
09.07|可观测性是分布式系统的眼睛 →
订单与支付

支付逻辑为什么不能写完就直接上线?

开发修改退款金额计算和幂等处理。

会出什么问题:一个细小错误可能导致重复退款或金额异常。

Pull RequestCode ReviewApproval
12.04|Pull Request 与 Code Review →
订单与支付

新版结算页怎样只给 5% 用户试用?

团队想验证新流程,同时控制支付风险。

会出什么问题:一次全量发布会把潜在问题暴露给所有用户。

Canary ReleaseBlue-GreenFeature Flag
12.07|环境、发布策略与回滚 →
订单与支付

为什么支付功能要同时做单元、集成和端到端测试?

团队上线优惠券叠加和退款功能。

会出什么问题:只测试页面可能漏掉金额函数错误,只测试函数又无法发现支付平台接入和完整流程问题。

Unit TestIntegration TestE2E Test
13.01|为什么需要多层测试? →
订单与支付

用户说“昨晚 9 点订单一直转圈”,开发靠什么定位?

同一时间系统处理了数万笔订单。

会出什么问题:只有用户截图无法知道请求经过哪里、耗时多少和具体错误。

LoggingMetricTrace
13.03|Logs、Metrics 与 Traces →
库存与抢购

开票页面“快”到底要看哪些指标?

十万用户同时进入购票流程。

会出什么问题:平均响应时间可能很好,但少数用户等待十秒;系统也可能每秒处理能力不足。

LatencyThroughputConcurrencyPercentile
14.01|Latency、Throughput 与 Concurrency →
订单与支付

同一个支付系统为什么需要三种不同的图?

团队既要给业务解释边界,也要梳理支付步骤,还要说明部署位置。

会出什么问题:一张图塞入所有细节会失去阅读目标。

Context DiagramSequence DiagramDeployment Diagram
16.07|如何画一张有用的系统图? →
TRACK 04

文件、Excel 与内容处理

从上传大文件、异步解析、错误报告到对象存储和 CDN。

文件与 Excel

一个 Excel 导入功能为什么会牵涉多个角色?

运营上传十万行客户数据,希望看到进度、错误行和最终导入结果。

会出什么问题:产品规则、界面状态、接口、异步任务、数据校验、测试和线上监控缺一项,都可能造成数据丢失或用户误判。

QADevOpsSRE
00.04|软件团队为什么会分很多角色? →
内容与媒体

商品详情、管理后台和活动页为什么采用不同渲染方式?

消费者打开商品详情需要快速看到内容并被搜索引擎收录;运营后台需要高频切换页面;活动页长期不变。

会出什么问题:所有页面都采用同一种渲染策略,会牺牲首屏速度、搜索收录或交互流畅度。

RouterCSRSSRSSG
01.05|路由与页面切换 →
文件与 Excel

多个系统和 AI 怎样正确调用统一的 Excel 服务?

Java 后台、Python 脚本和 AI Agent 都需要调用 Excel 导出能力。

会出什么问题:参数名称、字段类型、错误码和返回格式不统一,会导致重复沟通和错误调用。

OpenAPISwaggerSchema
02.06|OpenAPI 为什么重要? →
文件与 Excel

一万行导入中有三行格式错误,系统怎样反馈?

运营上传客户名单,其中部分手机号和日期格式不合法。

会出什么问题:缺少 Validation 会把脏数据写入系统;统一显示“导入失败”又无法帮助用户修复。

ValidationError Code
03.06|Validation、错误处理与幂等 →
内容与媒体

内容平台的文章结构经常变化,为什么可能用 NoSQL?

不同文章包含段落、图片、引用、视频和自定义模块,结构差异大。

会出什么问题:固定关系表频繁变更字段会增加开发和迁移成本。

NoSQL
04.07|NoSQL、ORM 与 Migration →
内容与媒体

评论区为什么不能直接渲染用户输入的脚本?

攻击者在评论里提交一段恶意 JavaScript。

会出什么问题:如果页面直接执行,可能窃取登录信息或冒充用户操作。

XSS
05.05|常见 Web 安全问题 →
文件与 Excel

一份 200MB 合同压缩包应该存在哪里?

用户上传合同、图片和 Excel 附件,并在项目详情中查看。

会出什么问题:把大文件直接塞进关系型数据库会增加备份、迁移和查询压力。

Object StorageBucketMetadata
06.01|文件为什么通常不直接放在数据库? →
内容与媒体

2GB 视频上传到一半断网,为什么可以继续?

创作者上传长视频,移动网络中途断开。

会出什么问题:普通单次上传需要从头重传,文件越大失败成本越高。

Presigned URLMultipart UploadChecksum
06.02|文件上传的完整过程 →
文件与 Excel

Excel 上传成功,为什么还要显示“解析中”?

文件本体已经到达对象存储,系统仍需读取、校验和写入数据。

会出什么问题:把上传完成和业务处理完成混为一体,会让用户误以为数据已经可用。

Presigned URLChecksum
06.02|文件上传的完整过程 →
内容与媒体

海外用户打开商品图片,为什么还能很快?

图片源站在东京,欧洲用户浏览包含几十张高清图的详情页。

会出什么问题:每次都从源站跨洲下载会增加延迟和带宽压力。

CDNEdge NodeCache-Control
06.03|CDN 如何加速静态资源? →
文件与 Excel

十万行 Excel 导入为什么不能让页面一直等?

运营提交大文件,解析和写入需要几分钟。

会出什么问题:同步请求可能超时,浏览器关闭后结果也难以找回。

SynchronousAsynchronousJob ID
07.01|同步与异步 →
内容与媒体

用户上传图片后,为什么可以自动生成缩略图?

图片进入对象存储后,需要生成多种尺寸并提取元数据。

会出什么问题:长期保持一台专用服务器空闲会浪费资源,流量也高度波动。

ServerlessFunction as a ServiceCold Start
08.06|Serverless 与事件驱动 →
内容与媒体

推荐服务故障时,首页为什么还能打开?

首页依赖推荐服务,服务响应变慢并持续报错。

会出什么问题:无限等待和盲目 Retry 会堆积请求,拖垮整个首页。

TimeoutRetryCircuit BreakerFallback
09.06|Timeout、Retry、Circuit Breaker 与降级 →
文件与 Excel

文件上传测试为什么不能只测成功?

用户可能上传空文件、超大文件、错误格式、重复文件,也可能中途断网。

会出什么问题:只覆盖 Happy Path 会让真实边界在上线后集中暴露。

Happy PathEdge CaseRegression
13.02|测试哪些状态和边界? →
文件与 Excel

从上传 Excel 到看到导入结果,完整链路是什么?

运营上传十万行客户数据并等待校验、写入和错误报告。

会出什么问题:上传、解析和写库混在一起会导致超时,也无法展示真实 Progress。

Import JobBatch WriteProgress
16.03|案例二:上传并解析 Excel →
TRACK 05

消息、实时协作与通知

从聊天、协同编辑、在线状态到消息队列和后台任务。

实时协作

多人编辑文档时,别人刚输入的内容如何立刻出现?

两名成员同时编辑同一份需求文档。

会出什么问题:普通请求只能由客户端主动发起,频繁轮询会产生延迟和大量无效请求。

WebSocket
02.05|WebSocket、SSE 与 Webhook →
消息与通知

短信通知服务用 Java、Python 还是 Node.js,用户会感知吗?

订单完成后系统需要发送短信、邮件和站内信。

会出什么问题:团队容易把技术选型当成产品能力本身,忽略接口契约、可靠性和现有运维体系。

RuntimeFrameworkDependency Injection
03.02|语言和框架只是实现入口 →
消息与通知

下单成功后,短信发送慢会不会拖住支付结果页?

订单创建成功后还要发短信、邮件、积分和数据统计。

会出什么问题:这些附加任务串行执行会增加下单延迟,某个通知故障还可能影响核心订单。

ProducerConsumerBacklog
07.02|Message Queue、Producer 与 Consumer →
异步任务

Excel 解析任务和全站用户行为流为什么选不同消息系统?

一个系统需要可靠分发导入任务,另一个系统需要保存海量点击事件供多方消费。

会出什么问题:两类场景对顺序、吞吐、保留时间和消费方式要求不同。

RabbitMQKafkaTopic
07.03|Kafka、RabbitMQ 与任务队列 →
消息与通知

百万条通知为什么不会同时打爆短信供应商?

活动结束后系统需要向大量用户发送结果通知。

会出什么问题:瞬时发送会超过供应商和系统吞吐,并放大失败。

BatchingBackpressureQueueing
14.06|异步、批处理与削峰 →
异步任务

还没有百万消息时,需要先深入 Kafka 吗?

个人项目只有少量通知任务,但课程里已经遇到 Kafka。

会出什么问题:提前钻研复杂分布式细节会占用大量时间,也缺少真实问题支撑。

Just-in-time LearningTrade-off AwarenessArchitecture Literacy
17.04|哪些先建立认知? →
TRACK 06

搜索、报表与数据看板

从复杂查询、索引、缓存到搜索相关性和指标刷新。

数据看板

筛选条件一变,为什么整张看板能自动更新?

运营切换日期、区域和渠道,十几个指标卡与图表需要同步变化。

会出什么问题:手动逐个寻找 DOM 节点并修改内容容易遗漏,状态之间也很难保持一致。

FrameworkRenderVirtual DOM
01.03|为什么需要前端框架? →
数据看板

一张复杂看板为什么可能使用 GraphQL?

移动端看板只需要项目名称和三个指标,桌面端还需要趋势、成员和风险明细。

会出什么问题:固定 REST 返回可能在移动端传输过多数据,多个接口又会增加往返次数。

RESTGraphQLgRPC
02.04|REST、GraphQL、RPC 与 gRPC →
数据模型

CRM 中一条客户记录如何落到数据库?

销售录入客户名称、行业、联系电话、跟进状态和创建时间。

会出什么问题:字段类型和约束不清,会出现空名称、错误日期或同一手机号重复录入。

TableRowColumnConstraint
04.02|Table、Row、Column 与数据类型 →
数据看板

销售看板的“本月华东成交额”怎样算出来?

管理者筛选本月、华东地区和已成交订单,并按销售人员汇总。

会出什么问题:数据分散在订单、客户和员工表中,需要准确关联与聚合。

SQLJOINQuery
04.04|SQL 与查询思维 →
数据看板

为什么看板显示的是五分钟前的数据?

几千名用户反复查看相同的经营指标。

会出什么问题:每次实时计算会压垮数据库,但缓存又可能让页面数据过期。

CacheTTLCache Invalidation
06.04|缓存存在于很多层 →
搜索与检索

用户搜索“黑色轻薄通勤电脑”时,为什么不能只查等号?

电商用户输入自然语言,希望命中包含相关词、同义词和不同排序的商品。

会出什么问题:关系型数据库适合精确过滤,复杂全文匹配和相关性排序能力有限。

Search EngineInverted IndexRelevance
06.06|搜索引擎与数据库查询 →
数据模型

用户头像、账户余额和搜索日志为什么不能都放一种存储?

一个 SaaS 同时保存核心账户、图片文件、短期会话和海量搜索行为。

会出什么问题:按“工具流行”选择存储会让一致性、成本和查询方式不匹配。

Source of TruthAccess PatternData Lifecycle
06.07|如何选择正确的数据能力? →
数据看板

一万行表格为什么滚动会卡?

运营打开包含大量记录和复杂单元格的列表。

会出什么问题:一次渲染全部 DOM 和脚本会占用内存并阻塞交互。

Lazy LoadingCode SplittingVirtual List
14.02|前端性能 →
数据看板

页面慢时,为什么不能凭感觉先加缓存?

团队认为看板慢是数据库问题,实际可能是前端渲染或网络传输。

会出什么问题:没有数据就优化,可能增加复杂度却没有效果。

BenchmarkLoad TestCapacity Planning
14.07|先测量,再优化 →
TRACK 07

AI 生成、知识库与 Agent

从流式生成、结构化输出、RAG 到工具调用和人工复核。

AI 生成

AI 为什么能一个字一个字地输出?

用户生成报告,希望立即看到内容进展并随时停止。

会出什么问题:等待完整结果会造成长时间空白,也无法判断任务是否还在运行。

SSE
02.05|WebSocket、SSE 与 Webhook →
AI 生成

一个 AI 报告生成器为什么仍然需要传统前后端?

用户上传销售数据,选择模板并生成经营分析报告。

会出什么问题:模型只负责 Inference,账号、文件、任务、权限、计费和历史记录仍需普通软件系统。

AI ApplicationInferenceModel Provider
15.01|AI 应用依然是一套软件系统 →
AI 知识库

客服机器人为什么有时忘记前面的对话?

用户连续追问退款规则和自己的订单情况。

会出什么问题:模型每次只看到被放入 Context Window 的内容,历史过长会被截断,也会增加 Token 成本。

PromptTokenContext Window
15.02|Prompt、Token 与 Context →
AI 生成

AI 生成合同摘要时,为什么既要流式输出又要固定字段?

用户希望立即看到生成进展,系统还要把风险等级、金额和日期写入页面组件。

会出什么问题:纯文本等待太久;自由文本又难以被程序稳定解析。

StreamingStructured OutputJSON Schema
15.03|Streaming 与 Structured Output →
AI 知识库

员工问“差旅住宿标准”,AI 怎样从公司制度中找到答案?

知识库包含数千份 PDF 和制度文档。

会出什么问题:把全部文档塞进提示词成本高且超出上下文,关键词搜索也可能漏掉同义表达。

EmbeddingVector DatabaseRAGReranking
15.04|Embedding、向量数据库与 RAG →
AI Agent

AI 怎样真正创建一个项目,而不只给建议?

用户说“根据这份需求创建项目、拆任务并邀请成员”。

会出什么问题:模型只有文本能力时无法修改真实系统,直接自由调用又有权限和误操作风险。

Tool CallingMCPAgent
15.05|Tool Calling、MCP 与 Agent →
AI Agent

AI 助手为什么需要记住项目背景和任务进度?

用户连续几天让助手完善同一份项目计划。

会出什么问题:每次都从零开始会重复询问;无限保存又可能混淆项目、泄露信息或让状态失控。

Short-term MemoryLong-term MemoryState Machine
15.06|Memory 与状态 →
AI 生成

AI 客服回答看起来流畅,怎样判断它真的正确?

系统准备让 AI 回复退款政策和订单问题。

会出什么问题:仅凭主观感觉无法稳定评估,错误答案还可能造成客户损失。

EvalGuardrailsHuman-in-the-loop
15.07|Eval、Guardrails 与可观测性 →
AI 生成

AI 已经输出了一段内容,为什么页面还要标注来源和不确定性?

用户用 AI 生成市场报告,其中部分结论来自上传资料,部分是模型推断。

会出什么问题:模型可能 Hallucination;缺少 Provenance 时用户无法验证;没有 Grounding 也无法判断依据。

GroundingHallucinationProvenance
15.08|AI 产品有哪些特殊状态? →
AI 生成

从点击“生成报告”到可下载文件,完整链路是什么?

用户选择数据范围和模板,AI 生成可编辑报告。

会出什么问题:模型调用时间长、格式可能不稳定、部分数据可能缺失。

OrchestrationStructured ReportHuman Review
16.04|案例三:AI 生成报告 →
TRACK 08

上线、扩容与系统稳定性

从服务器、容器、发布策略到监控、熔断和故障恢复。

性能与扩容

大促期间一百万请求如何进入几十个服务实例?

Web、App 和小程序同时请求订单、商品和用户服务。

会出什么问题:客户端直接记住每个实例地址会失控,单台服务器也无法承受全部流量。

API GatewayLoad BalancerService Discovery
08.05|Gateway、Load Balancer 与 Service Discovery →
部署与云

同一台云服务器上为什么能同时运行前端和后端?

团队部署 Web、API 和后台任务三个程序。

会出什么问题:操作系统需要区分每个运行实例,并把网络请求送到正确程序。

ServerProcessPort
10.01|服务器、进程与端口 →
部署与云

线上导出服务异常,开发如何进入服务器检查?

用户持续反馈导出失败,开发需要查看进程和日志。

会出什么问题:没有远程管理和权限控制,团队无法安全定位问题。

LinuxSSHPermission
10.02|Linux 与 SSH →
部署与云

客户绑定自己的企业域名后,为什么还需要证书?

客户把 portal.acme.com 指向你的 SaaS。

会出什么问题:DNS 只负责找到服务器,浏览器仍需确认身份并加密数据。

DomainDNS RecordTLS Certificate
10.04|域名、DNS、证书与 HTTPS →
部署与云

测试环境为什么不能真的扣款?

开发在 staging 测试支付流程,生产环境使用真实支付密钥。

会出什么问题:配置混用可能导致测试订单进入真实支付或生产数据被误改。

EnvironmentEnvironment VariableFeature Flag
10.05|环境与配置 →
部署与云

一段新代码怎样安全变成线上服务?

团队修复订单退款问题并准备发布。

会出什么问题:直接复制代码到服务器难以复现、验证和回退。

ArtifactHealth CheckRollback
10.06|从代码到上线的部署链 →
部署与云

小团队为什么可以不用自己维护数据库和消息队列?

三人团队要上线 SaaS,需要服务器、数据库、对象存储和日志。

会出什么问题:自建所有基础设施需要大量运维知识和时间。

IaaSPaaSManaged Service
10.07|云计算到底提供什么? →
部署与云

为什么代码在开发电脑能跑,上线却报错?

开发使用某个 Node 版本和系统库,服务器环境不同。

会出什么问题:环境差异造成依赖缺失、版本冲突和难以复现的问题。

ContainerImageHost
11.01|Docker 解决什么问题? →
部署与云

同一个订单服务怎样发布 1.2 和 1.3 两个版本?

测试环境验证新版,生产环境仍运行稳定版。

会出什么问题:没有版本化制品会导致部署内容不确定,也无法快速回滚。

RegistryTagVolume
11.02|Image、Container 与 Registry →
研发协作

新成员如何一条命令启动前端、API 和数据库?

项目包含三个服务,每个都有不同依赖和启动方式。

会出什么问题:手工安装会导致环境不一致,入门成本高。

DockerfileDocker ComposeBase Image
11.03|Dockerfile 与 Docker Compose →
性能与扩容

几十个微服务和几百个容器谁来管理?

业务高峰需要增加实例,故障后还要自动恢复。

会出什么问题:人工登录服务器启动和搬迁容器无法应对大规模变化。

KubernetesClusterControl Plane
11.04|为什么需要 Kubernetes? →
部署与云

一个订单请求在 Kubernetes 里怎样找到正确容器?

外部用户访问 /orders,后台同时运行多个订单 Pod。

会出什么问题:Pod 地址会变化,客户端无法直接依赖某个实例。

PodDeploymentKubernetes ServiceIngress
11.05|Pod、Deployment、Service 与 Ingress →
性能与扩容

发布新版时为什么用户几乎感觉不到停机?

订单服务从 v1 更新到 v2,同时流量持续进入。

会出什么问题:一次关闭全部旧实例再启动新版会造成中断,新实例未准备好也会返回错误。

Rolling UpdateReadiness ProbeAutoscaling
11.06|滚动更新、自愈与自动扩缩 →
研发协作

为什么每次修改都要有一个 Commit?

开发分别调整表单校验、接口和样式,需要记录变化历史。

会出什么问题:直接覆盖文件无法知道谁改了什么,也难以撤销某次改动。

GitRepositoryCommit
12.02|Git、Repository 与 Commit →
研发协作

两个人同时修改同一个支付页面会发生什么?

一人增加优惠券,一人调整支付方式,两条 Branch 同时修改相同行。

会出什么问题:Merge 时可能出现 Conflict,系统无法自动判断应该保留哪个版本。

BranchMergeConflict
12.03|Branch、Merge 与冲突 →
部署与云

开发源码为什么不能直接交给浏览器和服务器运行?

前端包含 TypeScript、模块和资源,后端也依赖特定库。

会出什么问题:源码需要转换、打包并锁定 Dependency,才能形成可重复发布内容。

BuildArtifactDependency
12.05|Build 与 Artifact →
研发协作

提交代码后,为什么测试和部署可以自动发生?

团队每天合并几十次改动。

会出什么问题:人工逐次测试、打包和上传容易遗漏,也难以保持一致。

CIContinuous DeliveryContinuous Deployment
12.06|CI 与 CD →
稳定性与运维

支付错误率突然升高,系统怎样主动发现?

第三方支付接口在凌晨出现异常,用户开始失败。

会出什么问题:等待用户投诉会延长故障时间。

MonitoringAlertRunbook
13.04|Monitoring、Alert 与 Dashboard →
稳定性与运维

“登录服务 99.9% 可用”对用户意味着什么?

企业客户依赖工作日随时登录系统。

会出什么问题:只说“系统稳定”无法衡量,也无法决定投入多少工程成本。

SLISLOSLAError Budget
13.05|SLI、SLO 与 SLA →
稳定性与运维

线上全站打不开后,团队怎样恢复并避免再次发生?

数据库连接配置错误导致生产故障。

会出什么问题:临时修复可以恢复服务,但缺少复盘会重复发生。

IncidentOn-callPostmortem
13.06|Incident、On-call 与 Postmortem →
性能与扩容

营销活动突然爆量,系统怎样保持可用?

一场直播带来平时百倍流量,大量用户查看相同商品。

会出什么问题:单台应用和数据库成为 Bottleneck。

Load BalancingAutoscalingBottleneck
14.05|缓存、负载均衡与自动扩缩 →
稳定性与运维

页面一直转圈,问题可能在哪一层?

用户打开项目详情后骨架屏持续不消失。

会出什么问题:现象可能来自前端异常、网络失败、API 超时、数据库慢或权限判断卡住。

Root CauseSymptomReproduction
16.06|从界面现象反推故障层 →
研发协作

会议里第一次听到 Redis,需要立刻学会写吗?

设计师参与架构讨论,需要理解登录会话和缓存方案。

会出什么问题:所有概念都按同一深度学习,会陷入细节并失去全景。

BreadthDepthCompetency Level
17.01|五个掌握层级 →
部署与云

数据库和登录能否先用托管平台完成?

个人项目需要快速上线账号、数据和文件功能。

会出什么问题:从零维护服务器会让学习主线被运维细节打断。

Managed PlatformConfigurationTroubleshooting
17.03|哪些先做到会用? →
研发协作

AI 已经能写代码,设计师还要练什么?

AI 生成了登录和权限代码,但页面偶发越权且测试不完整。

会出什么问题:复制代码不等于理解,错误可能隐藏在状态、数据和边界条件中。

DiffDebuggingVerification
17.06|AI 时代应该练什么? →
没有找到对应业务场景。