技术债务的分类法

主要观点:

  • 作为《英雄联盟》冠军团队的工程经理,Bill “LtRandolph” Clark 痴迷于技术债务,致力于寻找、理解并修复它。
  • 提出衡量技术债务的三个主要轴:影响、修复成本和传染性。
  • 介绍了在《英雄联盟》开发中遇到的四种技术债务类型:本地债务、麦格芬债务、基础债务和数据债务,并分别用具体例子进行说明。

关键信息:

  • 技术债务定义为未来开发者将为之付出代价的代码或数据。
  • 三个衡量轴的含义:影响包括对玩家和开发者的问题;修复成本涉及修复所需时间和风险;传染性指技术债务继续存在时的扩散程度。
  • 本地债务类似编程的“黑箱”模型,对其他系统影响小但内部混乱;麦格芬债务是两个冲突系统在代码库接口处的拼凑;基础债务是系统核心的深层假设;数据债务是基于其他类型技术债务构建大量内容后导致的修复风险。

重要细节:

  • 以 Jarvan 的大招“Cataclysm”为例说明本地债务,其由小兵组成,虽有影响但修复成本高且传染性低。
  • 以 C++的 std::string 和自定义 AString 类为例说明麦格芬债务,两者在代码中并存并逐步转换。
  • 以《英雄联盟》中的 lua 脚本语言为例说明基础债务,其深层嵌入引擎导致替换困难。
  • 以游戏中的参数命名 bug 为例说明数据债务,修复简单但因传染性强需谨慎规划。

总结:通过三个轴衡量技术债务,介绍四种类型的技术债务及其特点和示例,希望提供思考和讨论技术债务的有用术语。

阅读 13
0 条评论