1. 技术债(Technical Debt, Ward Cunningham)的"原意"中战术债(短期)vs 战略债(长期)
技术债(Technical Debt)这一概念由 Ward Cunningham 提出。请解释技术债的"原意",并说明战术债(短期)与战略债(长期)的区别?
- 技术债概念的起源(Ward Cunningham 的钱/金融隐喻)
- 技术债是"有借有还"的取舍,而非单纯的"坏代码"
- 战术债与战略债在时间尺度、目的与偿还方式上的差异
技术债由 Ward Cunningham 在一次演讲中提出,其核心隐喻是"借来的钱":为了加快当前交付,你选择了一种暂时简化、日后需要额外成本去偿还的实现方式,就像借贷需要支付利息。因此技术债不是"烂代码"的同义词,而是对"短期快 vs 长期慢"的清醒取舍。战术债(short-term debt)指为了赶某个紧急版本、上线某功能而临时简化实现,通常是小范围、几周内应还清的债,如硬编码、绕过测试、临时表结构;战略债(strategic debt)则是为了换取战略时机(先发优势、抢占市场)而主动承担的结构性债,如单体架构、缺乏抽象,其偿还周期以季度甚至年计。区分二者的关键在于是"被迫的权宜之计"还是"主动的战略选择":前者要尽快偿还,后者要有明确的战略意图与偿还路线图。
回答此题要体现"技术债是投资决策"的视角,而非简单地把所有复杂度都归为债务。战术债强调"及时止损",战略债强调"有计划的长期投入"。面试官希望看到你既能识别两类债,又能为每一类设计不同的偿还节奏。