加载中...

意大利面条式代码(Spaghetti Code)形容结构混乱、控制流四处跳转纠缠、模块间随意耦合的代码——如同盘中缠绕的面条,拎起一根会带动整盘。其特征是难以阅读、难以预测修改的影响范围。
该比喻流行于结构化编程运动时期:早期程序大量使用 goto 语句任意跳转,Dijkstra 1968 年的著名信件《Go To Statement Considered Harmful》推动了对无约束跳转的批判,顺序、分支、循环三种结构取代了随意跳转,意大利面条代码成为反面教材的代名词。
即便没有 goto,面条代码依然存在:上千行的巨型函数、层层嵌套的条件分支、全局变量满天飞、模块间循环依赖、复制粘贴导致的重复逻辑。与之相关的还有「馄饨代码」(过度碎片化的小类小函数)与「千层面代码」(层次过多的架构)等衍生比喻。
应对手段包括重构(提炼函数、消除重复)、引入清晰的分层与依赖方向、单元测试保护下的渐进改造,以及通过代码评审和圈复杂度等度量防止面条化蔓延。

登录 后参与讨论
暂无讨论,来发表第一条评论吧