跳到主要内容

技术债务治理

问题

项目积累了大量技术债,如何系统性治理?

答案

债务分类

类型示例优先级
稳定性崩溃率高、内存泄漏P0
架构模块耦合、God ViewControllerP1
工程化无 CI、无代码规范P1
代码质量重复代码、命名混乱P2
依赖过时的三方库P2

治理方法

Boy Scout Rule

// 每次修改文件时,顺手改善一点

// 改之前:
func getData() -> Any { ... }

// 改之后(明确返回类型):
func getUserList() -> [User] { ... }

量化指标

指标工具目标
代码覆盖率Xcode Coverage核心模块 > 60%
技术债务数JIRA/Notion 看板每季度减少 20%
SwiftLint 告警CI 集成趋势下降
编译时间Xcode Build Timeline< 3min

常见面试问题

Q1: 怎么说服业务方投入时间还技术债?

答案:用数据说话。展示技术债的影响:崩溃率影响留存、编译慢影响研发效率、无测试导致线上事故。将技术优化和业务目标绑定(如「优化启动速度 → 提升次日留存 2%」),让业务方理解 ROI。

相关链接