"烤宽面条代码"这个词对你意味着什么?

azh*_*lov 4 language-agnostic software-quality

根据维基百科的说法,该术语最初是由数据库专家Joe Celko在1982年创造的,这里引用了他1997年的文章,揭示了他的意思:"标准的[结构化编程]解决方案是用嵌套的IF-THEN取代GOTO -ELSE语句和交换机分层如此之深,冗余太多,你有一个控制路径,看起来像一盘烤宽面条."

然而,相同的维基百科条目定义了不同的术语,明确指的是多层应用程序:"......不同的子系统,例如...... Web应用程序代码,业务逻辑和关系数据库." 因此,随着程序员开发新的方法和体系结构,术语的含义也随之发展.

我可以想到两个"烤宽面条代码"的现代定义:

  1. 过度,过度设计或微不足道的软件应用程序层(显然)
  2. 软件应用程序的各个层,缺少适当隔离的单元测试.开发人员仅通过一次切片并消耗多个层来测试系统.

这个词显然意味着批评(就像你可以通过称之为"意大利面条代码"来批评我的东西).但这对你意味着什么,你什么时候使用它?

Mus*_*sis 12

对我来说,这意味着无缘无故地分层.

  • 我认为这就是SevenLayerCake Code的用途? (3认同)

Fro*_*kys 6

太多的GOTO == Spaghetti Code

太多IF-THEN-ELSE/Switch == Lasagna Code

:)

  • 好了,我完成了.现在我饿了. (8认同)
  • 过度使用管道 - Penne Code (4认同)
  • 过度组件化 - 馄饨代码 (4认同)
  • 过多的线程 - 卡佩利尼代码:) (3认同)
  • 过度使用Spring框架 - Fusilli Code (3认同)