大变更与分阶段审查

共 19 题
#

1. 大变更的"分阶段"(phased)拆分中 Strangler Fig(绞杀者)与 Branch by Abstraction 的协同

A Branch by Abstraction 建立抽象契约,Strangler Fig 提供逐步替换节奏,二者协同让大变更分阶段可回滚 ✓ 正确答案
B 两者互斥,只能选其一
C 分阶段只适用于旧系统,新功能不可分
D 大变更必须一次性切换,无法分阶段
#

2. 大变更的"功能开关"(feature flag)驱动中发布 ≠ 上线

A 功能开关把发布与上线解耦,允许提前部署、按节奏灰度、出问题一键关闭回退 ✓ 正确答案
B 发布与上线必须同时,代码部署即生效
C 功能开关只能用于前端
D 开关一旦开启就不能关闭
#

3. 大变更的"影子流量"(shadow traffic)测试中生产流量拷贝到新系统

A 影子流量把真实请求直接发给用户的新系统
B 影子流量复制生产请求到新系统但不影响用户,通过对比响应验证新系统正确性 ✓ 正确答案
C 影子流量只用于性能测试
D 影子流量会中断线上服务
#

4. 大变更的"接口契约"(interface contract)演进中版本化、Adapter、Facade

A 契约可以随意破坏,调用方自行适配
B 版本化是唯一合法手段
C 契约演进只能一次性全部替换
D 通过版本化、Adapter、Facade 提供兼容层,让调用方平滑迁移、渐进演进 ✓ 正确答案
#

5. 大变更的「可观测性先行」中迁移前如何建立新旧系统对比指标体系(对账、错误率、延迟差、数据一致性),支撑灰度放量与回滚决策?

A 迁移完成后才需要建立指标
B 迁移前建立对账、错误率、延迟差、数据一致性等对比指标,作为灰度放量与回滚依据 ✓ 正确答案
C 指标只用于事后复盘
D 灰度决策无需指标支持
#

6. 大变更(big bang change)的反模式与风险中 Knight Capital 因发布脚本误部署在 45 分钟内损失约 4.4 亿美元的事故教训?

A big bang 变更高效无风险,应推广
B 大爆炸式变更失败面大、难回滚,Knight Capital 事故警示必须拆解、分阶段、可观测、可回滚 ✓ 正确答案
C 大爆炸变更只对金融公司有风险
D 事故教训是不要用脚本发布
#

7. 大变更的"PR 拆分"(PR split)中按层、按特性、按风险

A 按层、特性、风险拆分,使每个 PR 可独立合并、验证、回滚 ✓ 正确答案
B 大变更应合并成一个超大 PR,便于整体评审
C 拆分会让合并顺序混乱,应避免
D 拆分只适用于前端项目
#

8. 大变更的"指标灰度"(metric-based)中错误率、延迟指标触发回滚

A 灰度放量无需监控,直接全量
B 回滚只能人工手动执行
C 指标只用于性能优化
D 指标灰度逐步放量,错误率/延迟等指标超阈值即触发回滚或停止放量 ✓ 正确答案
#

9. 大变更的拆解中如何分成可审的小 PR?

A 拆解就是把文件按行数平均分块
B 拆解只对代码风格有意义
C 拆解会增加合并冲突,应整体提交
D 按功能切片、依赖顺序与关注点分离拆解,使每个 PR 独立可编译、可测试、可合并 ✓ 正确答案
#

10. 大变更的文档中设计说明与迁移计划?

A 设计说明记录方案与取舍,迁移计划给出分阶段步骤与回滚预案,支撑评审与执行 ✓ 正确答案
B 大变更无需文档,直接写代码
C 文档只在完成后补写
D 文档只用于向管理层汇报
#

11. 不可简单回滚的数据迁移如何设计可逆方案,双写、回放、切换开关与对账的配合,以及回滚后如何恢复双写状态?

A 数据迁移必然不可逆,无法规避风险
B 通过双写、回放、切换开关与对账设计可逆方案,回滚时先切读、停写、补数据并恢复双写 ✓ 正确答案
C 数据迁移只需直接切换,无需方案
D 回滚时数据一定丢失
#

12. 大变更的干系人与变更窗口中发布窗口、回滚预案与跨团队沟通如何纳入分阶段计划?

A 大变更只需自己团队执行,无需跨团队
B 回滚预案只在出事后才需要
C 变更窗口随时可发,无需选择
D 明确干系人、选择发布窗口、准备回滚预案并跨团队沟通,纳入分阶段计划 ✓ 正确答案
#

13. 大变更的灰度试点选择中如何挑选低风险、高验证价值的业务先行切换,再逐步扩展范围?

A 选择低风险、高验证价值的业务先行,验证通过再逐步扩展范围 ✓ 正确答案
B 应直接选择核心业务做试点,验证最充分
C 试点与扩展无关,直接全量
D 试点只用于验证性能
#

14. 大变更的"流量灰度"(traffic split)中按 header、cookie、IP

A 流量灰度只能按比例随机切分,无法定向
B 灰度切分无需稳定,用户可随机切换版本
C 可按 header/cookie/IP 维度切分,实现稳定路由与定向灰度、逐步放量 ✓ 正确答案
D 流量灰度只用于 A/B 实验
#

15. 分阶段审查的节奏中里程碑与合并策略?

A 分阶段审查无需里程碑,直接合并
B 以里程碑划分阶段,按"契约→核心逻辑→接入层"顺序合并,每阶段过门禁再放行 ✓ 正确答案
C 每个阶段可跳过验证直接合并
D 合并顺序无关紧要
#

16. 大重构的评审中如何降低风险?

A 重构无需测试,直接改
B 重构风险与普通功能相同
C 重构评审重点验证行为等价性,配合测试、影子流量与小步拆分降低风险 ✓ 正确答案
D 重构只能全量重写,无法小步
#

17. 大 PR 的文档中变更说明与决策记录?

A 大 PR 无需文档,代码自解释
B 变更说明与决策记录(ADR)让评审者快速理解动机与取舍,提升评审效率 ✓ 正确答案
C 文档只在评审完成后补写
D 决策记录只用于向领导汇报
#

18. 分阶段合并中 feature flag 与渐进发布?

A 合并即上线,无法分离
B feature flag 只用于停止开发中的功能
C feature flag 让代码可提前合并(默认关闭),与渐进发布结合实现"合并≠上线"的分阶段发布 ✓ 正确答案
D 渐进发布无需开关支持
#

19. 分阶段迁移的阶段门禁中每阶段的完成定义与放行标准如何制定,防止半成品状态长期滞留?

A 每个阶段定义完成标准与放行条件,防止半成品长期滞留,保证迁移可控 ✓ 正确答案
B 阶段门禁会拖慢迁移,应取消
C 阶段可以无限期停留,无需处理
D 门禁只适用于数据迁移