主要观点:
- 作为《英雄联盟》冠军团队的工程经理,Bill “LtRandolph” Clark 痴迷于技术债务,致力于寻找、理解并修复它。
- 提出衡量技术债务的三个主要轴:影响、修复成本和传染性。
- 介绍了在《英雄联盟》开发中遇到的四种技术债务类型:本地债务、麦格芬债务、基础债务和数据债务,并分别用具体例子进行说明。
关键信息:
- 技术债务定义为未来开发者将为之付出代价的代码或数据。
- 三个衡量轴的含义:影响包括对玩家和开发者的问题;修复成本涉及修复所需时间和风险;传染性指技术债务继续存在时的扩散程度。
- 本地债务类似编程的“黑箱”模型,对其他系统影响小但内部混乱;麦格芬债务是两个冲突系统在代码库接口处的拼凑;基础债务是系统核心的深层假设;数据债务是基于其他类型技术债务构建大量内容后导致的修复风险。
重要细节:
- 以 Jarvan 的大招“Cataclysm”为例说明本地债务,其由小兵组成,虽有影响但修复成本高且传染性低。
- 以 C++的 std::string 和自定义 AString 类为例说明麦格芬债务,两者在代码中并存并逐步转换。
- 以《英雄联盟》中的 lua 脚本语言为例说明基础债务,其深层嵌入引擎导致替换困难。
- 以游戏中的参数命名 bug 为例说明数据债务,修复简单但因传染性强需谨慎规划。
总结:通过三个轴衡量技术债务,介绍四种类型的技术债务及其特点和示例,希望提供思考和讨论技术债务的有用术语。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。