技术债识别与分类

共 18 题
📑 题目列表 18 题
#
★★★

1. 技术债(Technical Debt, Ward Cunningham)的"原意"中战术债(短期)vs 战略债(长期)

技术债(Technical Debt)这一概念由 Ward Cunningham 提出。请解释技术债的"原意",并说明战术债(短期)与战略债(长期)的区别?

  • 技术债概念的起源(Ward Cunningham 的钱/金融隐喻)
  • 技术债是"有借有还"的取舍,而非单纯的"坏代码"
  • 战术债与战略债在时间尺度、目的与偿还方式上的差异

技术债由 Ward Cunningham 在一次演讲中提出,其核心隐喻是"借来的钱":为了加快当前交付,你选择了一种暂时简化、日后需要额外成本去偿还的实现方式,就像借贷需要支付利息。因此技术债不是"烂代码"的同义词,而是对"短期快 vs 长期慢"的清醒取舍。战术债(short-term debt)指为了赶某个紧急版本、上线某功能而临时简化实现,通常是小范围、几周内应还清的债,如硬编码、绕过测试、临时表结构;战略债(strategic debt)则是为了换取战略时机(先发优势、抢占市场)而主动承担的结构性债,如单体架构、缺乏抽象,其偿还周期以季度甚至年计。区分二者的关键在于是"被迫的权宜之计"还是"主动的战略选择":前者要尽快偿还,后者要有明确的战略意图与偿还路线图。

回答此题要体现"技术债是投资决策"的视角,而非简单地把所有复杂度都归为债务。战术债强调"及时止损",战略债强调"有计划的长期投入"。面试官希望看到你既能识别两类债,又能为每一类设计不同的偿还节奏。

#
★★★

2. 技术债的"显性债"(explicit debt)中注释、ADR、issue 标记的已知债

什么是技术债中的"显性债"(explicit debt)?请说明如何通过注释、ADR、issue 标记来记录已知技术债?

  • 显性债的定义:被明确识别、记录并跟踪的债
  • 记录载体的选择:TODO 注释、ADR(架构决策记录)、issue/backlog 条目
  • 显性债是"可管理"的前提

显性债(explicit debt)是指被团队明确识别、记录下来并纳入跟踪管理的已知技术债。它与隐性债(implicit debt)相对,是"可被谈论、可被排期、可被偿还"的债。记录显性债的常见载体包括:代码内 TODO/FIXME 注释(标注近期应还的债)、ADR(Architecture Decision Record,记录架构决策及其权衡,含已知的取舍)、以及 issue/backlog 条目(登记债的类型、影响、估算工时与优先级)。例如代码中写 // TODO(2026-08): 该临时接口需在 v2 迁移后移除,关联 issue #123,并同步在 issue 系统登记为债务卡。显性债的价值在于把"模糊的担忧"转化为"可排期的任务",让债务进入团队与业务的共同视野。

显性债的核心是"可见性"。只有被记录的债才能被排队、被估算、被偿还,也才能避免团队在不知情的情况下重复踩坑。回答时强调"记录 + 跟踪 + 关联上下文"三要素,比单纯说"在代码里写 TODO"更有深度。

// 显性债:TODO 注释 + 关联 issue,明确债的到期与类型
// TODO(2026-08-01, issue #123): 临时兼容旧版报文格式,v2 迁移完成后移除
public String parseLegacyFormat(String raw) {
    // ...
}
#
★★★

3. 技术债的"隐性债"(implicit debt)中未识别、未量化、未管理的债

什么是技术债中的"隐性债"(implicit debt)?它为何比显性债更危险?

  • 隐性债的定义:未识别、未量化、未管理的债
  • 隐性债的成因:缺乏记录、认知偏差、团队变动
  • 隐性债的危害:无法排期、利息持续累积却又无人负责

隐性债(implicit debt)是指未被识别、未量化、未进入管理流程的技术债。它藏在代码里却没人登记:某段逻辑复杂到没人敢改、某个模块的测试缺失、某处依赖已严重过时,但团队没有把它标记为债务。隐性债的危险在于它"不透明":因为不可见,就无法被排期偿还,其利息(维护成本、缺陷率、变更风险)会持续累积却无人认领;等到某次事故或大重构时才暴露,往往已是积重难返。它还会随人员流动而恶化——知道"为什么这么写"的人走了,这段代码就变成无人能懂的黑洞。隐性债的成因包括:赶工未记录、团队缺乏债务盘点习惯、以及"报喜不报忧"的文化导致没人愿意承认问题。

隐性债与显性债的对比是本题的核心。管理的本质是"把隐性债转化为显性债"——通过代码评审、债务盘点工作坊、静态分析扫描等手段把未记录的债挖出来并登记。回答要强调隐性债的"不可见性"正是其危险性所在。

#
★★★

4. 技术债四象限(Martin Fowler 中鲁莽/审慎 × 故意/无意)在债务分类登记中的应用

请解释 Martin Fowler 提出的技术债四象限(鲁莽/审慎 × 故意/无意),并说明它如何应用于债务的分类登记?

  • 四象限的两个维度:鲁莽/审慎(reckless/prudent)与故意/无意(deliberate/inadvertent)
  • 四个象限各自的含义与典型例子
  • 四象限在债务盘点与优先级设定中的作用

Fowler 用两个维度把技术债分成四类:横轴是"故意/无意"(deliberate/inadvertent,即是否知道自己在借债),纵轴是"鲁莽/审慎"(reckless/prudent,即借债的决定是否理性)。四象限为:1) 审慎-故意(prudent-deliberate):明知有债但有意为之,如"先上线、后重构",这是合理的技术债;2) 审慎-无意(prudent-inadvertent):没人知道有债,但事后发现当初的选择其实合理,如随着需求演进暴露的旧设计局限;3) 鲁莽-故意(reckless-deliberate):明知是坏方案还硬上,如"我们没时间设计,直接堆代码";4) 鲁莽-无意(reckless-inadvertent):既不知道也不在乎,随手写错,如"不懂并发就写了共享状态"。在债务登记中的应用:四象限帮助团队对每一笔债做"定性"——审慎-故意是可接受的战略性债,应正常登记并配偿还路线;鲁莽-故意要立即纠正决策流程;审慎-无意要补充文档与说明;鲁莽-无意是真正的技术债,应列最高优先级尽快修正。

四象限的价值在于"把情绪化的'代码很烂'转化为结构化的定性"。它让团队区分"该还的债"(鲁莽类)与"合理的权衡"(审慎-故意),避免把合法的战略取舍误判为债务,也避免把真正的烂代码合理化。登记时可在债务卡上标注象限,指导优先级。

#
★★★

5. 技术债盘点工作坊中如何组织研发团队完成识别-分类-定级-登记的技术债盘点,让研发与业务对债务形成共同语言与优先级共识?

如何组织研发团队完成一次"识别-分类-定级-登记"的技术债盘点工作坊,并让研发与业务对债务形成共同语言与优先级共识?

  • 盘点工作坊的完整流程:识别、分类、定级、登记
  • 用债务的"业务影响"语言与业务对齐,而非纯技术术语
  • 优先级共识的达成机制

技术债盘点工作坊是把隐性债转化为显性债的关键活动。流程分四步:1) 识别(Identify):团队先在黑板上自由列出各自发现的"痛点",用代码评审记录、事故复盘、静态扫描报告、热点分析作为输入,尽可能多地收集候选债务;2) 分类(Classify):用 Fowler 四象限或"设计债/实现债/测试债/文档债/基础设施债"框架给每项债定性;3) 定级(Rate):为每项债估算"本金(修复成本)"与"利息(每月持续代价)",用 P0/P1/P2 或高/中/低定级;4) 登记(Register):把选定的债写入债务卡/backlog,标注影响、估算、负责人。与业务对齐的关键是把每项债翻译成"业务影响的代价"——例如"该模块每次改动要 3 天且易引入故障,会拖慢某功能上线"而非"这里圈复杂度太高"。让业务参与优先级排序会议,共同决定还债顺序,形成共识。

本题难点在于"研发与业务形成共同语言"。技术债的"人民币代价"(利息、风险、交付延迟)是两者都能理解的共同语言,因此盘点时要主动把技术指标翻译成业务后果。工作坊不是一次性的,应定期(如每季度)举办,让债务清单持续更新。

#
★★★

6. 技术债利息的构成与非线性中维护成本、缺陷率与交付速度如何因债累积而恶化,如何量化?

请说明技术债"利息"的构成及其非线性特征,即维护成本、缺陷率与交付速度如何因债累积而恶化,并谈谈如何量化?

  • 利息的三个构成:维护成本、缺陷率、交付速度
  • 利息的非线性:债越多,单位新债的边际代价越大
  • 量化的方法:时间度量、缺陷密度、周期时间

技术债的"利息"是持续付出的额外代价,主要包括三部分:1) 维护成本上升——代码越复杂、耦合越高,改一处牵扯多处,每次改动耗时增加;2) 缺陷率上升——复杂模块更容易被改错,测试缺失使回归风险加大;3) 交付速度下降——新功能要绕开"雷区"或先扫清障碍,周期时间(lead time)拉长。利息具有非线性特征:债的累积不是线性叠加,而是"滚雪球"——复杂度越高,新增代码的边际维护成本越大,缺陷相互纠缠,形成恶性循环。量化上,可用"每次改动平均耗时"(对比高债与低债模块)、"缺陷密度"(每千行代码缺陷数)、"变更失败率"、"周期时间"等可观测指标,把利息货币化(如"该模块每月因改动返工损失 X 人天")。

"非线性"是本题的关键词,体现你对债务深刻机理的理解。债的可怕之处不在于"当前慢一点",而在于它会指数级恶化并使还债成本越来越高。量化利息是还债优先级排序的依据,也是向管理层证明"必须还债"的证据。

#
★★

7. 技术债的"基线"(baseline)中当前快照

什么是技术债的"基线"(baseline)?它为什么重要?

  • 基线的定义:某一时刻技术债的当前快照
  • 基线用于对比趋势,而非绝对值
  • 基线的建立应基于统一口径的度量

技术债的基线(baseline)是指在某一时刻对系统技术债状态的快照,例如 SonarQube 的债务比、某模块的复杂度分布、缺陷密度等。建立基线是为了"对比",而非"打分"——通过将后续度量与基线对比,能看到债务在增长还是下降、哪些区域在恶化。基线的重要性在于:1) 它是"变化"的参照系,单看某个绝对值没有意义,只有相对基线的趋势才有意义;2) 它帮助团队设定目标(如"半年内把债务比从当前基线降到 X");3) 它让新加入的成员了解系统处在什么状态。建立基线时要注意口径统一(同一套度量标准、同一批模块),否则基线缺乏可比性。

基线的核心词是"趋势"与"参照系"。面试时强调"基线是起点不是标准"、"用趋势而非绝对值判断健康度",能体现你理解度量的相对性。

#
★★

8. 技术债的"度量"(measurement)中 SonarQube 技术债比率

请介绍 SonarQube 的技术债比率(Technical Debt Ratio),它如何度量技术债?

  • SonarQube 技术债比率 = 修复成本 / 系统开发成本
  • 基于 SQALE 模型估算修复时间
  • 债务比率的含义与局限

SonarQube 的技术债比率(TDR)是衡量技术债的常用指标,定义为"修复所有违规所需的时间(技术债务)除以系统开发所需的总时间"。修复成本由 SQALE 模型估算:每个规则违规根据其严重程度对应一个"修复成本"(如一个 blocker 块问题 X 分钟),累加得到总债务;开发成本则按代码行数估算(如每行代码 Y 分钟)。TDR 的结果常以百分比表示,例如 5% 的债务比意味着"修复所有问题约需当前开发时间的 5%"。SonarQube 还给出评级(A-E),A 代表债务比在阈值(如 5%)以下。该指标的局限在于:它只覆盖静态分析能发现的问题(复杂度、重复、命名等),无法度量架构债、测试债、性能债等更深的债;且修复成本是估算值,需与团队实际结合校准。

回答要体现"度量是工具、不是目的"。SonarQube 债务比擅长呈现"可静态发现的债"的趋势,但要用它结合人工发现(架构债、测试债)才能全面。强调"比率"而非"绝对债务数",因为比率归一化了规模差异,便于跨项目比较。

#
★★

9. 技术债的"识别信号"中代码坏味道、热点分析、变更失败率

技术债有哪些"识别信号"?请结合代码坏味道、热点分析、变更失败率说明?

  • 代码坏味道(code smell)作为静态信号
  • 热点分析(hotspot)作为动态信号
  • 变更失败率(CFR)作为结果信号

识别技术债需要多类信号相互印证:1) 代码坏味道(code smell)——静态代码分析能发现的重复代码、长方法、过深嵌套、上帝类、未使用依赖等,是低成本的"入口信号",但只能反映局部问题;2) 热点分析(hotspot)——CodeScene 等工具把"修改频率"与"代码复杂度"叠加,找出"改动多又复杂"的区域,这类区域是变更风险与债务利息的高发区;3) 变更失败率(change failure rate,CFR)——指部署或变更引入缺陷的比例,高 CFR 的模块往往藏着被测试缺失掩盖的债。这些信号结合使用:坏味道告诉你"哪里脏",热点分析告诉你"哪里疼",变更失败率告诉你"哪里在流血"。真正值得优先处理的,是三者重叠的区域。

本题考察"多渠道识别"的意识。单一信号容易误判(复杂度高但从不改动就不是急债),而把静态、动态、结果三类信号叠加,才能精准定位急需偿还的债,从而避免"为指标而重构"。

#
★★

10. 技术债的分类框架中设计债、实现债、测试债、文档债、基础设施债如何识别与权衡优先级?

技术债可分为设计债、实现债、测试债、文档债、基础设施债等类型,请说明如何识别各类债并权衡优先级?

  • 五类债的含义与识别方式
  • 各类债的利息形态与影响范围
  • 优先级权衡的维度(影响、风险、偿还成本)

技术债可按性质分为几类:1) 设计债/架构债——架构层面缺陷,如单体耦合、依赖方向错误、缺乏边界,影响面最大、利息最高,识别靠架构评审与依赖分析;2) 实现债——代码层面的坏味道,如重复、复杂条件、未用抽象,识别靠静态分析;3) 测试债——测试缺失、脆弱、覆盖不足,识别靠覆盖率与测试质量评估,它直接推高变更失败率;4) 文档债——文档缺失、过时、与代码脱节,识别靠文档评审,它抬高新人上手与维护成本;5) 基础设施债——构建、部署、CI/CD、环境配置的债,识别靠交付流程评估,它拖慢交付速度。优先级权衡要考虑"影响范围 × 利息速率 × 偿还成本":架构债影响面大、应优先,但也要看它是否正阻塞当前迭代;测试债虽小但直接威胁稳定性;文档债与基础设施债可结合时机处理。终局是让各类债在同一张债务清单上按统一口径(本金+利息)排序。

回答要体现"分类是为了更好地权衡"。分类本身不是目的,目的是让不同性质的债能被识别、被评估、被合理地安排优先级。强调"利息速率"与"影响范围",体现对债的差异化理解。

#
★★

11. 技术债的量化中如何用代码度量(圈复杂度、重复率)、缺陷密度、变更成本估算技术债规模?

如何用代码度量(圈复杂度、重复率)、缺陷密度、变更成本等技术债规模?

  • 代码度量:圈复杂度、重复率、可维护性指数
  • 缺陷密度:每千行缺陷数
  • 变更成本:每次改动耗时、变更失败率

技术债规模可从多个层面量化:1) 代码度量——圈复杂度(cyclomatic complexity)衡量代码决策路径数量,过高说明逻辑复杂、易出错;重复率(duplication)衡量复制粘贴代码的比例,重复代码多处修改易漏改;可维护性指数(maintainability index)综合这些给出维护性评分。这些是静态层面的"债量";2) 缺陷密度(defect density)——每千行代码(KLOC)的缺陷数,反映该模块的"隐性债"与稳定性;3) 变更成本(change cost)——用"每次改动该模块的平均耗时""变更失败率"等数据度量,反映"利息"而非"本金"。综合以上,可估算债务规模:本金≈修复成本(人天),利息≈持续维护的额外代价。三者结合能给出一个既看"存量"又看"流向"的债务画像。

量化要区分"存量"与"利息":静态指标(复杂度、重复率)反映存量债,变更成本与缺陷密度反映利息。回答时强调"代码度量告诉我们有多少债,缺陷密度与变更成本告诉我们债多疼",形成完整画像。

#
★★

12. 技术债的准入规则中什么情况下允许「先快速上线、后补债」,如何用显式 TODO + 债务卡(debt card)防止隐性债无声沉淀?

在什么情况下允许"先快速上线、后补债"?如何用显式 TODO 与债务卡(debt card)防止隐性债无声沉淀?

  • 准入规则:可接受的借债条件(时效、影响可控、有偿还计划)
  • 显式 TODO 在代码中标记借债
  • 债务卡(debt card)登记并跟踪,防止沉底

并非所有借债都该被禁止,关键是设定"准入规则":允许借债的条件包括——1) 有明确的时间压力(如紧急上线、抢占市场);2) 债的影响可控且局部(不扩散到核心路径);3) 有明确的偿还计划与期限(不是"以后再说");4) 借债是"一次性的临时简化"而非"长期架构妥协"。满足条件的人才允许进入"先上线后补债"。为防止隐性债无声沉淀,要强制两条纪律:借债时必须在代码里写显式 TODO(标注借债原因、妥协点、关联 issue/期限),并在团队债务清单中登记"债务卡"(debt card)——卡片包含债类型、影响、本金估算、承诺还债时间、负责人。债务卡使每一笔债都"有名有姓",进入 backlog 可被排期。若借债没有 TODO 也没有债务卡,则该债视为隐性债,评审时应拒绝合并。

本题考察"理性借债"的管理能力。核心是"借债必须显性化、必须有偿还计划",把"借债的自由"转化为"可追踪的责任"。回答要体现准入条件 + 显性化机制 + 评审把关三层。

#
★★

13. 技术债与新人 onboarding 中遗留系统的高认知成本如何作为债务利息的一部分,如何用文档与演练降低新人上手债?

技术债如何影响新人 onboarding?遗留系统的高认知成本如何作为债务利息的一部分,怎样用文档与演练降低新人上手债?

  • 遗留系统的高认知成本是债务利息的一种
  • 高认知成本如何拖慢新人上手的直接经济损失
  • 用文档、演练、引导式任务降低上手债

遗留系统的高认知成本(high cognitive load)是技术债利息的一部分:新人需要理解沉淀多年的复杂逻辑、历史遗留的变通、缺失的文档,才能开始产出。这笔"上手成本"是真实的经济代价——新人入职后前几周甚至更久,产出效率远低于均值,且对历史代码的误判可能引入新缺陷。这种成本随人员流动而放大:核心成员离职后,认知成本反而上升。降低新人上手债的手段包括:1) 高质量文档——架构概览、ADR、模块地图、关键场景说明,让新人"先看地图再走小路";2) 引导式演练——通过 onboarding 任务(如"修复一个已知小 bug""追踪一次请求链路")让新人在低风险区实操;3) 结对与导师制——把隐性知识传递给新人;4) 让核心成员定期讲解与录制。这些投入本质上是"花一次性成本降低长期利息",是值得的还债投资。

本题把"人"纳入债务框架,体现对模型理解得全面。认知成本是隐性债的高发区,而与"文档/演练"对应的正是把隐性知识显性化。回答时强调"认知成本是利息,文档与演练是偿还本金"。

#
★★

14. 技术债的优先级分级中安全合规债、稳定性债与体验债的偿还紧迫度如何排序?

安全合规债、稳定性债与体验债的偿还紧迫度如何排序?

  • 三类债的定义与影响
  • 紧迫度排序:安全合规 > 稳定性 > 体验
  • 基于风险与影响的权衡

技术债可分级为安全合规债、稳定性债与体验债,其偿还紧迫度通常按"风险与影响"排序:1) 安全合规债最紧迫——涉及漏洞、数据泄露、合规违规(如 GDPR、PCI),一旦触发可能造成法律、财务与声誉的毁灭性打击,必须立即处理,没有讨价还价余地;2) 稳定性债次之——影响系统可用性、可靠性的债(如缺少容错、数据一致性隐患、脆弱的核心模块),会直接导致线上事故与用户流失,应优先于一般功能债;3) 体验债相对宽松——影响用户体验但对核心功能无致命影响的债(如页面加载慢、交互不佳),可结合产品迭代节奏处理。排序的底层逻辑是"影响的严重性与不可逆性":安全合规债的后果不可逆且极其严重,稳定性债后果严重但多数可恢复,体验债则相对温和。当然,排序还要结合"偿还成本"与"触发概率"做综合判断。

排序的核心是"风险价值"而非"团队喜好"。安全 > 稳定性 > 体验是通用原则,但回答时最好补充"结合触发概率与偿还成本微调",体现灵活性。强调"合规债是底线,不可妥协"。

#

15. 技术债与技术演进中引入新框架/重构时,如何判断是"还债"还是"新增债",成本收益如何评估?

引入新框架或进行重构时,如何判断是"还债"还是"新增债"?成本收益如何评估?

  • 还债与新增债的区分依据
  • 成本收益评估:现值与未来收益
  • 避免"以重构之名增债"或"以还债之名逃避"

判断一次引入新框架或重构是"还债"还是"新增债",关键看它是否改变了"净债务":若它消除了旧债、降低了复杂度与维护成本,是还债;若它引入了新的复杂度、新依赖、新迁移成本,且不带来抵消性收益,则是新增债。现实中很多"重构"其实是新增债——为追赶潮流引入新框架,但团队成员不熟、迁移半途而废、新旧并存,反而债上加债。成本收益评估要算"总拥有成本"(TCO):不仅看当前修复成本,还要估算引入后的维护成本、学习成本、迁移过程中的风险与中断、以及未来收益(性能、可维护性、招聘吸引力)。原则是"只有在收益的现值显著大于总成本现值时才值得做",且要评估"不做的代价"(需持续为旧债付息)。理性判断应避免两种极端:为时尚而重构(新增债),与拒绝对新债(错失还债机会)。

本题考察"技术债的净变化"视角。引入新框架不是天然的好或坏,要具体算账。回答时强调"看净债务变化"与"TCO 评估",并警惕"时尚驱动重构"。

#

16. 技术债的偿还节奏,与业务平衡?

技术债的偿还节奏如何与业务平衡?

  • 偿还节奏与业务交付的平衡
  • 配额策略:固定比例、token、随改随还
  • 业务空窗期集中还债

技术债的偿还节奏要与业务交付平衡,核心是"不因还债阻塞业务,也不因业务忘掉还债"。常见做法:1) 固定配额——如 20% 的迭代时间专门用于还债(但需业务认可,避免成为空话);2) 随改随还(boy scout)——每次修改某个文件时顺手清理该区域的债,不占额外时间块;3) 业务空窗期集中还债——在版本冻结期、需求低谷期、架构演进窗口集中处理大额债;4) 债务搬家——把还债拆成小步,混入正常迭代,避免"还债大爆炸"。平衡的关键是把还债纳入优先级池,与业务需求同台竞争,而不是"业务优先、还债永远靠后"。同时要让业务理解"现在的还债是为了未来的交付速度",用还债换来的效率提升反哺业务。

平衡的本质是"让债务进入同一优先级体系"。回答要体现"配额 + 时机 + 业务沟通"的组合,避免陷入"要么死磕业务、要么死磕还债"的两极。

#

17. 技术债的可视化中仪表盘与汇报?

如何可视化技术债并用于汇报?

  • 技术债仪表盘的关键指标
  • 面向管理者的汇报口径
  • 用趋势与业务影响而非术语汇报

技术债的可视化要兼顾"工程视角"与"管理视角":1) 工程仪表盘——展示债务比趋势、热点模块、复杂度/重复率/测试覆盖的变化、还债进度(已还/待还条数),用图表让团队看到债务的实时动态;2) 管理汇报——翻译成业务语言,如"该模块每月返工损失 X 人天""债务比已从 12% 降到 8%,预计可提速 Y%",避免堆砌技术术语;3) 汇报讲"趋势"而非"绝对值",重点呈现"债务在增长还是下降"以及"还债带来的可量化收益"(如周期时间缩短、变更失败率下降)。可视化还债进度(如债务看板、偿还冲刺的燃尽图)能让团队与管理者看到还债的进展,维持投入的信心。拥有一张"看得见"的债务仪表盘,是让债务管理持续运行的底座。

可视化要"区分受众"。给工程师看技术指标,给管理者看业务影响与趋势。回答强调"趋势 + 业务量化 + 还债成果",体现沟通能力。

#

18. 技术债的发现渠道中评审、事故复盘、性能问题与架构评审中暴露的债如何统一登记?

评审、事故复盘、性能问题与架构评审中暴露的技术债如何统一登记?

  • 多个发现渠道的来源
  • 统一登记到债务清单/backlog
  • 登记的标准与去重

技术债可从多个渠道暴露:代码评审(发现实现债与设计债)、事故复盘(发现稳定性债与容错缺失)、性能问题(发现性能债与架构瓶颈)、架构评审(发现架构债与依赖问题)。这些渠道发现的债需要统一登记到一个"债务清单"(debt register / backlog),否则会散落在各处、无人跟踪。统一登记需遵循:1) 标准字段——债类型、来源渠道、影响、本金估算、利息、优先级、负责人、登记日期;2) 去重合并——同一债可能从多个渠道暴露(如评审与事故都指向同一模块),登记时合并去重;3) 关联上下文——把债与 issue、PR、事故报告关联,便于追溯。通过统一登记,把"被动发现"转化为"主动管理",让每笔债都进入同一优先级池。

本题考察"债务的入口管理"。多个渠道发现是好事,但必须汇聚到单一清单才能避免遗漏。回答强调"统一登记 + 标准字段 + 去重",体现治理能力。