什么是锅炉板代码?为什么要避免?

时间:2015-12-12 12:24:16

标签: refactoring boilerplate

什么是样板代码,为什么会这样调用? android的示例:

onCreate(Bundle saveInstance){
    setcontentView(R.layout.m);

    findViewById(R.id.f1);
    findViewById(R.id.f2);
    findViewById(R.id.f3);
    findViewById(R.id.f4);
}

还有哪些其他例子?我们为什么要避免使用样板代码?

1 个答案:

答案 0 :(得分:3)

Boilerplate代码是需要包含在许多地方的重复代码。 wikipedia article on the subject

很好地解释了起源
  

有趣的是,这个词来自报业。串联的列和其他片段以垫子(即矩阵)的形式发送到订阅报纸。收到后,将沸腾的铅倒入这个垫子中,形成用于印刷该块的板,因此称为样板。由于打印在样板上的文章不能改变,律师使用这个术语来指代合同的部分,这些部分在不同的应用程序中通过重复使用而没有改变,最后是指在一般情况下没有改变的语言。任何在不同场合反复使用的文件。

样板代码有几个问题:

  1. 这很容易出错。您的示例可能是直截了当的,但并非所有样板实例都是。在代码包含更多逻辑的情况下,存在更多犯错误的空间(=错误)。特别是如果这些块只是从一个地方复制粘贴到另一个地方,但需要一些改动来工作。
  2. 此外 - 如果你不得不改变这种逻辑,那就更难做了,因为你需要去几个地方去做。
  3. 它占用屏幕房地产和关注。更多代码阅读意味着在尝试理解您正在阅读的代码时,需要处理更多内容。 Boilerplate代码只会增加另一个分心。
  4. 占用最终(通常编译)产品的实际空间。你愿意提供什么?一个1MB的JAR文件还是一个10MB的文件?