复杂度治理与质量门禁

共 17 题
#

1. 复杂度预算(complexity budget)如何设定并按模块/服务分配,超预算即登记为技术债?

A 复杂度预算只限制某个函数
B 复杂度预算无需分配
C 复杂度预算设定总量并分配到模块,超预算登记为技术债 ✓ 正确答案
D 超预算不需要登记
#

2. 复杂度增量门禁中 PR 中新增代码的圈复杂度/认知复杂度阈值如何独立于存量代码设定,防止"新代码复杂、存量豁免"被绕过?

A 只对 PR 新增代码设复杂度阈值,用基线豁免存量,防"新代码复杂被存量掩护" ✓ 正确答案
B 只对存量代码设阈值
C 新增代码与存量代码用同一阈值
D 增量门禁无法识别新增代码
#

3. 认知复杂度门禁的工具落地中 SonarQube、ESLint complexity、clippy cognitive_complexity、complexipy 等在 CI 中如何配置为阻断门禁?

A 认知复杂度无法用工具检查
B SonarQube、ESLint、clippy、complexipy 等可设复杂度阈值并在 CI 中作为阻断门禁 ✓ 正确答案
C 复杂度门禁只能手动检查
D 各工具复杂度阈值无法配置
#

4. 复杂度热点驱动重构中如何用"变更频率 × 复杂度"矩阵识别高热度高复杂度区域并排定重构优先级?

A 矩阵中"高变更 × 高复杂度"是最高风险热点,重构优先级最高 ✓ 正确答案
B 复杂度与变更频率无关
C 低变更高复杂度的代码最需要立刻重构
D 矩阵无法排序重构优先级
#

5. AI 生成代码的复杂度治理中 AI 代码复杂度普遍偏高的实证背景下,如何在 AI 工作流中强制复杂度门禁与自动拆分?

A 在 AI 工作流中强制复杂度门禁,并用 AI 自动拆分超高复杂度函数 ✓ 正确答案
B AI 代码复杂度天然合理,无需治理
C AI 代码应豁免复杂度检查
D 复杂度门禁无法用于 AI 代码
#

6. 复杂度门禁的演进式收紧中如何从"仅新增代码卡阈值"逐步过渡到"全量代码达标",迁移路径与风险如何管理?

A 应一步到位要求全量达标
B 存量代码永远豁免
C 先只卡新增,再分批清理存量,最后全量达标,用分批与限期管理风险 ✓ 正确答案
D 演进收紧无需管理风险
#

7. 复杂度门禁的豁免机制中生成代码、DSL、配置类等场景如何豁免,豁免如何审计与过期?

A 豁免一旦设定即永久有效
B 生成代码、DSL 等可豁免,但豁免需审计、设过期并定期清理 ✓ 正确答案
C 任何代码都不可豁免
D 豁免无需记录原因
#

8. 质量门禁(Quality Gate)的分层设计中提交级、PR 级、发布级门禁的阻断条件与软性告警如何区分?

A 所有门禁都应在提交级用最严标准
B 阻断与告警无区别
C 门禁只能有一层
D 提交级、PR 级、发布级分层设检,阻断针对硬性标准、告警针对建议指标 ✓ 正确答案
#

9. 门禁误伤的治理中门禁误报导致团队整体绕过(boycott)的常见原因,基线、豁免与规则裁剪如何组合?

A 门禁误报应越严越好,无需治理
B 团队绕过门禁是正常的,无需处理
C 用基线放行存量、豁免处理例外、规则裁剪消除误报,避免团队整体绕过 ✓ 正确答案
D 规则裁剪无法降低误报
#

10. 门禁与发布流程联动中质量门禁结果如何影响发布审批、灰度放量与回滚决策?

A 门禁不达标仍应正常发布
B 质量门禁与发布无关
C 门禁结果影响发布审批,结合灰度监控与回滚机制管控质量风险 ✓ 正确答案
D 灰度放量无需看质量指标
#

11. 函数/类/模块三级复杂度治理中单函数、单类、模块聚合复杂度的阈值与治理分工?

A 只治理函数级即可
B 模块级复杂度与函数级无关
C 三级复杂度阈值完全相同
D 函数级抓拆分、类级抓职责、模块级抓热点,各有阈值与分工 ✓ 正确答案
#

12. 复杂度债的登记与偿还中超预算模块如何进入技术债看板并关联还债计划与效果验证?

A 复杂度债只需登记,无需偿还
B 复杂度债与看板无关
C 复杂度债无法验证效果
D 超预算模块登记进技术债看板,关联还债计划与效果验证,形成闭环 ✓ 正确答案
#

13. 认知负荷的团队共识中如何用复杂度数据统一"这段代码太复杂"的主观争论,形成评审共同语言?

A 复杂与否完全靠主观争论
B 数据会加剧主观争论
C 复杂度数据无法用于评审
D 用复杂度量化数据与阈值统一标准,让评审有共同语言、聚焦具体改进点 ✓ 正确答案
#

14. 复杂度与可测试性中高复杂度函数的测试缺口如何量化,复杂度门禁与覆盖率门禁如何互补?

A 复杂度与可测试性无关
B 覆盖率门禁可以替代复杂度门禁
C 高复杂度函数测试缺口大,复杂度门禁与覆盖率门禁互补治理 ✓ 正确答案
D 高复杂度函数覆盖率一定很高
#

15. 复杂度工具的覆盖矩阵中 Java/JS/Python/Go/C/C++/Rust 各语言复杂度工具的阈值口径差异与统一口径策略?

A 各语言复杂度工具口径完全一致
B 各语言工具与阈值口径不同,需在报告层统一复杂度定义与阈值保证可比 ✓ 正确答案
C 一个工具可覆盖所有语言
D Rust 无法检查复杂度
#

16. 门禁的"警告 vs 阻断"分级中哪些规则用 warning、哪些用 error,如何防止 warning 疲劳?

A 所有规则都应是 error 阻断
B 影响正确性/安全的规则用 error,建议性规则用 warning,并控制 warning 数量防疲劳 ✓ 正确答案
C warning 越多越好
D 分级与防止疲劳无关
#

17. 质量门禁即代码(quality gate as code)中门禁配置的版本化、评审与回滚,如何与规范文档同源?

A 门禁配置应私下修改,不入库
B 门禁配置与规范文档无关
C 门禁配置作为代码管理,可版本化、评审、回滚,并与规范文档同源 ✓ 正确答案
D 门禁即代码无法回滚