意大利面条式代码是指一段代码结构混乱、组织不佳的程序。
大多数人将意大利面条式代码归咎于“愚蠢懒惰的程序员”,但演讲者(Tim Cain,一位资深游戏开发者)认为这只占极小一部分原因。
以一个角色扮演游戏中的伤害抗性(DR)功能为例,演示代码如何因设计变更而变得复杂。
item_armor_get_dr 函数,获取单件护甲的DR值。item_armor_get_dr 函数,使其遍历所有护甲并累加DR。item_armor_get_dr 函数,使其遍历护甲并记录最大DR值。item_armor_get_dr 函数,使其在计算护甲DR后,再调用状态效果系统获取总的DR并累加。item_armor_get_dr 添加参数以排除状态效果?创建新函数?或者在UI层手动减去状态效果DR?