何时抽象和模块化是编程中的一个不好的做法?

yre*_*uta 6 language-agnostic abstraction modularization

刚刚在"你使用什么JS lib"民意调查中看到了这个评论

"@Xanti - 是的,是的,编程中的模块化和抽象是一种可怕的做法.调用其他函数的函数?浪费."

这让我很好奇,因为我正在使用Kohana框架为PHP和Jquery库的javascript.

为什么有些人会考虑抽象和模块化的不良做法?是不是为简化和加快开发而制定的框架和库?

这是投票的链接

Nor*_*sey 11

我发现过多的抽象可能会对您的工作效率造成危害:

  • 选择不当的抽象可能会更糟,然后根本就没有抽象.

  • 如果您需要阅读四个或五个不同的模块以了解简单算法的工作原理,那么抽象障碍可能不在正确的位置.也许有一个很好的方法来重构代码,或者可能只是去除障碍会更容易.

  • 如果抽象不符合相对熟悉的想法,则新团队成员可能难以学习.

抽象不是"无意识的好"; 它的存在是为了特定目的.其中最常见的目的是

  • 为了保护不变量的数据结构

  • 为了封装设计决策有可能改变

我在抽象方面遇到的最大经验是我们的C--研究编译器.学生们习惯于在编译器类中看到更多的抽象:

  • 目标机器是抽象的
  • 汇编语言是抽象的
  • 调用约定是抽象的
  • 堆栈框架布局使用了一种不寻常的"块"抽象

每个抽象的服务的一个重要宗旨,为我们的研究,但总的效果是,这是非常困难的新学生学习的编译器.因此,即使原始评论是开玩笑的,也有一些地方抽象可能会导致问题.