技术债盘点 · Tech Debt Audit

Django 单体应用

5 年 · ~150k LOC · React 前端 · 20 人工程团队
审计日期 2026-05-15 · Martin Fowler Tech Debt Quadrant 框架
680 d
估计总债务
35%
测试覆盖率
2h+
单次发布
32
过期依赖
01 技术债 4 类分布
4象限
Deliberate Reckless · 明知偷懒25%
Deliberate Prudent · 明知但合理20%
Inadvertent Prudent · 后见之明30%
Inadvertent Reckless · 无心之债25%
推荐还债节奏:Boy Scout 规则(每个改动顺手清理)占 20% 工程时间 + 每个 sprint 固定 5% 还债容量 + 每季度 1 次专项重构 sprint(2 周)。先杀 Quick Win(ROI > 10x),再拆战略债,低 ROI 债接受不还。
02 5 维审计明细
维度 现状 核心问题 利息 / 月 本金 ROI
🧪
代码质量

覆盖 35% · 重复 ~18% · 圈复杂度高
回归 bug 频发;重构无安全网;CR 耗时但不可靠;新人害怕改动 3-5 d bug 修复
2-3 d 回归验证
40-60 d
补测试 + DRY
~3×
🏗️
架构
中差
单体 · 模块边界模糊 · 无 bounded context
一处改动影响多处;必须全量发布;团队并行开发互相踩脚 4-6 d merge 冲突
+ 意外回归
100-150 d
渐进拆分 + 边界
~2×
📦
依赖

过期 32 个 · 待确认 CVE 若干
安全攻击面扩大;新功能受限于旧 API;升级路径阻塞 安全风险(不可量化)
1-2 d 绕路成本
15-25 d
分批升级 + CVE
~6×
📄
文档

架构图缺失 · API doc 不完整 · 无 runbook
新人 ramp-up 8 周+;跨团队靠口口相传;离职即丢知识 3-4 d 沟通试错
重复答疑
10-15 d
架构图+API+runbook
~4×
⚙️
DevOps
中差
发布 2h+ · CI 串行 · 监控碎片化
发布窗口固定→功能堆积→大爆炸发布→更慢;故障发现靠用户报 2-3 d 发布等待
1-2 d 故障排查延迟
12-20 d
CI加速+灰度+告警
~5×
03 优先级分类
⚡ Quick Win
ROI > 10× · 1 周内可交付
DevOps CI 并行化 + 缓存 → 发布 120min→30min
依赖 32 个过期依赖分 3 批升级,先修已知 CVE
DevOps P0 告警:DB 慢查询 / API 5xx / 队列积压
文档 1 页架构现状图 + 核心 API list(1 天速写)
🎯 Strategic
高 ROI · 季度计划推进
工程 测试覆盖率 35% → 70%,优先核心业务路径
架构 定义模块边界(DDD bounded context),画目标架构
架构 渐进拆分:先从无状态服务入手(通知 / 报表)
DevOps 灰度发布 + feature flag + 自动回滚
文档 API 文档自动化(DRF spectacular)+ runbook
📦 Defer
低 ROI · 接受不还
工程 老旧 jQuery 组件→React(不影响核心功能)
架构 「完美」DDD 重构 —— 等拆分完成后再说
工程 非关键路径追求 100% 覆盖率
依赖 非安全小版本追逐 → 交给 Renovate bot
04 30 / 60 / 90 天还债计划
30天 · 止血
覆盖率 35% → 45%
发布 120min → < 45min
CVE 清零
CI 流水线拆分并行 + 缓存5d
过期依赖批量升级(分 3 批)8d
核心业务路径 P0 测试补全10d
P0 监控告警上线3d
架构现状图 + API list1d
投入 ~27d / 交 2 人 sprint
60天 · 加固
覆盖率 45% → 55%
模块边界定义完成
灰度发布就绪
集成测试为主,推覆盖率至 55%15d
DDD bounded context + 目标架构5d
通知 / 报表服务独立部署12d
灰度发布 + feature flag 基建10d
API 文档自动生成3d
投入 ~45d / 持续推进
90天 · 提质
覆盖率 55% → 70%
发布 < 20min
新人 ramp-up 4 周
E2E 关键流程测试,覆盖率→70%12d
重复代码消除(DRY 重构)8d
用户 / 订单模块拆分15d
Runbook + 故障处理 SOP5d
自动化回滚机制5d
投入 ~45d / 累计 117d
ROI 总览:总还债投入 ~117 工程师天(约占 3 个月团队容量的 18-20%),预计每年节省 200-300 工程师天,首年 ROI ~2.5×,次年复利更高。单笔最大回报:CI/CD 优化(5×)、依赖安全更新(6×)。
Django 单体应用 · 技术债盘点 · 2026-05-15 · Martin Fowler Tech Debt Quadrant · 仅供内部工程决策参考
本页面由 办一下|banyixia.com AI 生成