什么是样板代码?

Nat*_*ons 364 terminology definition boilerplate

一位同事从未听说过这一点,我无法提供真正的定义.对我来说,它总是一个'我知道 - 当我看到它'的例子.

奖金问题,谁来源于这个词?

Ada*_*erg 199

"样板代码"是任何看似重复的代码,一次又一次地出现以获得一些似乎应该更简单的结果.

这是一个主观的定义.

该术语来自报业的"样板":维基

  • OOP中多属性背后的想法是减少样板,因此如果应用得当,它可以减少很多. (2认同)

Nea*_*alB 54

在词源上,术语样板:来自http://www.takeourword.com/Issue009.html ...

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

什么构成编程中的样板?正如其他人所指出的那样,只是一大块代码被一遍又一遍地复制,在此过程中很少或根本没有对其进行任何更改.

  • 该死!这似乎是语法堆栈交换的答案...实际上可能是整个问题,但我可以明白为什么我们在这里需要它... (2认同)

onC*_*ion 49

Boilerplate代码表示可以反复使用的一段代码.另一方面,任何人都可以说它是一块可重用的代码.

这个词实际上来自钢铁行业.

根据维基百科的说法,有一点历史:

在19世纪90年代,样板实际上是用金属铸造或冲压成印刷机并分发到美国各地的报纸上.直到20世纪50年代,数以千计的报纸收到并使用了美国最大的供应商西方报业联盟的这种样板.一些公司还发布了新闻稿作为样板,因此必须按照书面印刷.

现在根据维基百科:

在面向对象的程序中,通常为类提供获取和设置实例变量的方法.这些方法的定义经常被视为样板.尽管代码在不同类之间会有所不同,但结构上的定型足以使其自动生成比手工编写更好.例如,在以下表示宠物的Java类中,几乎所有代码都是样板,除了Pet,name和owner的声明:

public class Pet {
    private PetName name;
    private Person owner;

    public Pet(PetName name, Person owner) {
        this.name = name;
        this.owner = owner;
    }

    public PetName getName() {
        return name;
    }

    public void setName(PetName name) {
        this.name = name;
    }

    public Person getOwner() {
        return owner;
    }

    public void setOwner(Person owner) {
        this.owner = owner;
    }
}
Run Code Online (Sandbox Code Playgroud)


Gab*_*abe 37

它的代码可以被许多应用程序/上下文使用,几乎没有变化.

Boilerplate源于20世纪初的钢铁工业.


Jac*_*ack 31

来自维基百科:

在计算机编程中,样板文件是用于描述代码段的术语,这些代码段必须包含在许多地方,几乎没有或没有改变.在引用被认为是冗长的语言时更经常使用它,即程序员必须编写大量代码来完成最小的工作.

因此,基本上您可以将样板代码视为编程语言所需的文本,通常是您使用该语言编写的程序.

现代语言正试图减少它,但也有旧版语言,它们具有特定的类型检查器(例如OCaml有一个类型推断器,允许你避免这么多的声明,这些声明可能是像Java那样冗长的语言中的样板代码)


Jam*_*mes 23

Boilerplate是优秀程序员避免的:重复.

  • 天哪,你的答案中有两次"ti"!如你所见,重复不总是*坏. (31认同)
  • 如何避免`public static void main(String[] _)`? (4认同)

Ner*_*kat 15

软件开发中的Boilerplate对不同的人来说意味着不同的东西,但通常意味着一遍又一遍地使用的代码块.

MEAN堆栈开发中,该术语指的是通过使用模板生成代码.它比从头编写整个应用程序更容易,它提供了代码块一致性和更少的错误,因为它是干净,经过测试和验证的代码,它是开源的,所以它不断更新或修复,因此它节省了大量的时间使用框架或代码生成器.有关MEAN堆栈的更多信息,请单击此处.


Don*_*nga 8

简而言之,样板代码是需要包含在应用程序中的重复代码,程序/框架几乎没有改变,并且对应用程序的逻辑没有任何贡献。当您编写伪代码时,您可以删除样板代码。建议使用合适的编辑器来生成样板代码。

在 HTML 中,界面中的样板代码。

<!DOCTYPE html>   
<html>   
   <head>   
      <title></title>   
   </head>   
   <body> </body>   
</html>
Run Code Online (Sandbox Code Playgroud)

在 C# 中,属性的样板代码。

class Price
{   
  private string _price;   
  public string Price
  {   
     get {return _price;}   
     set {_price= value;}   
  }   
}  
Run Code Online (Sandbox Code Playgroud)


TMN*_*TMN 7

实际上,样板代码是你在整个地方切割粘贴的东西.通常它会像模块头一样,加上一些标准/必需的声明(每个模块必须声明一个记录器,每个模块必须为其名称和修订声明变量等).在我当前的项目中,我们正在编写消息处理程序并且它们都具有相同的结构(读取消息,验证它,处理它)并消除处理程序之间的依赖关系,我们不希望它们都从基类继承,因此我们提出了一个样板框架.它声明了所有常规变量,标准方法,异常处理框架 - 开发人员必须做的就是添加特定于正在处理的消息的代码.它本来就快捷方便,


Thi*_*ous 7

如今,Boilerplate定义在许多其他编程语言中变得越来越全球化.它来自OOP和已经成为OOP的混合语言,并且在程序之前现在具有相同的目标,即继续重复使用模型/模板/类/对象构建的代码,因此他们为什么要适应这个术语.你创建了一个模板,你为模板的每个实例做的唯一事情就是个体化一个对象的参数这个部分就是我们所说的样板文件.您只需使用不同的参数重新使用您制作模板的代码即可.

同义词
蓝图是一个模板
,模板是模板
,页脚是模板
,多用途的设计模式是样板
,邮件的签名是样板


dov*_*ove 5

约书亚布洛赫谈API设计,涵盖那些有多坏让样板代码必要的。(参考第46分钟,请立即收听)