技术债有哪些类型
债务不只在代码里:设计债(结构劣化、依赖成网)、测试债(缺少自动化、用例脆弱)、文档债、构建与依赖债(版本陈旧)、环境债(构建缓慢、配置漂移)、数据债(口径混乱)都常见。分类的目的是找准偿还动作——不同类型的债务偿还手法完全不同,用重构去还环境债只会白费力气。
基本信息
| 核心类型 | 代码、设计、测试、依赖、环境、数据、文档 |
|---|---|
| 分类目的 | 匹配偿还动作,而不是给历史作者贴标签 |
| 常见误区 | 只盯代码债,忽略利息更高的类型 |
| 排序依据 | 利息高低与偿还成本之比 |
| 产出形式 | 债务清单加影响描述加排期 |
典型使用场景
- 接手老系统时做一次债务盘点
- 排期时区分哪些债务能顺手还、哪些需要专项
- 汇报时把不同类型的债务换算成实际影响
- 评审中识别新债务的产生源头
- 制定季度技术改进目标时平衡各类债务
快速盘点
快速盘点
# 按类型各找三个具体症状,并标注证据
代码债:同一段校验逻辑复制到五个文件,近三个月改过三次
设计债:订单模块直接依赖报表模块,改动互锁
测试债:核心计价逻辑没有自动化用例,只能人工回归
依赖债:主版本落后两个大版本,安全补丁缺失
环境债:构建耗时 25 分钟,本地与线上配置不一致常见类型与症状
| 类型 | 症状 | 偿还方向 |
|---|---|---|
| 代码债 | 重复、命名混乱、坏味道密集 | 重构手法加评审约束 |
| 设计债 | 依赖成网、边界模糊 | 模块化与端口划分 |
| 测试债 | 缺自动化、用例脆弱 | 补特征测试与分层 |
| 依赖债 | 版本陈旧、生态脱节 | 小步升级加锁定版本 |
| 环境债 | 构建缓慢、配置漂移 | 基础设施即代码 |
排期靠利息而不是靠讨厌程度:先算每类债务在工单耗时、缺陷与发布节奏上造成的实际成本,再决定投入顺序。
只盯代码债会漏掉利息更高的设计与环境债:构建慢一小时、配置靠手工改,每天都在消耗团队时间,却常被当成理所当然。