什么是样板代码?


384

一位同事从未听说过,我无法提供真正的定义。对我来说,它一直是“我知道它的时候”的一个实例。

奖金问题,这个词的起源是谁?


68
需要注意的是,样板一词并不是编程所独有的。例如,律师可能会给您一份5页的合同,但大多数合同都是样板。这意味着对于获得该合同的每个人都是一样的,只是在这里和那里改变了几行。
mellowsoon 2010年

26
我不知道其他人,但是在我公司中,样板代码是操作样板的代码:打开,关闭,清洗,更换等……
ulty4life 2010年

1
这个问题似乎与主题无关,因为它是关于行话的。
Adriano Repetti 2014年

4
我是出于Laravel的文档和思想而来这里的。“他们在说什么样板材料?”。阅读了一些答案后,我认为这个直接相关的Wiki页面也显示了对此事的见识:en.wikipedia.org/wiki/Boilerplate_code
Ben Fransen

1
我最近听说过这个词,所以我很想知道是否可以将它们称为编程语言的插件或模块。
Anjil Panchal 2015年

Answers:


215

“样板代码”是任何看似重复的代码,它们会反复出现以得到一些看起来应该更简单的结果。

这是一个主观的定义。

该术语来自报纸行业的“样板”:Wiki


2
OOP中的多属性背后的想法是减少样板,因此,如果正确应用它,可以大大减少。
Andrew Sledge 2010年

也有人说,它来自钢铁工业,在钢铁工业中钢板被用作整体锅炉
Mohammed Shareef C

55

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

有趣的是,这个词源于报纸行业。联合的专栏和其他作品以垫子(即矩阵)的形式发送到订阅报纸。收到后,将沸腾的铅倒入该垫子中,以制成用于印刷件的板,因此命名为样板。由于不能更改印在样板上的物品,因此律师开始使用该术语来指代合同中因在不同应用中重复使用而没有改变的部分,最后指的是在在不同场合重复使用的任何文档。

编程中的样板是什么?正如其他人可能指出的那样,只是一小段代码被一遍又一遍地复制,而在此过程中几乎没有进行任何更改。


还有另一种说明mentalfloss.com/article/26087/why-it-boilerplate-text,我已经看到了更多参考文献。
fgysin恢复Monica 2015年

1
该死的!这似乎是对语法
stackexchange

55

样板代码是指可以重复使用的一段代码。另一方面,任何人都可以说这是一段可重用的代码。

该术语实际上来自钢铁行业。

根据Wikipedia历史记录

在1890年代,样板实际上是用金属铸造或冲压制成的,准备用于印刷机,并分发给美国各地的报纸。直到1950年代,成千上万的报纸从美国最大的供应商西方报纸联盟那里接收并使用了这种样板。一些公司还发布了新闻稿作为样板,因此必须按书面印刷。

现在根据维基百科

在面向对象的程序中,通常为类提供获取和设置实例变量的方法。这些方法的定义通常可以视为样板。尽管代码在一个类之间会有所不同,但其结构具有足够的陈规定型观念,因此与手动编写相比,自动生成更好。例如,在以下表示pet的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;
    }
}

38

几乎没有任何变化,许多应用程序/上下文可以使用该代码。

样板源自1900年代初期的钢铁行业。


34

来自维基百科

在计算机编程中,样板语言是用于描述必须包含在几乎没有任何更改的许多地方的代码段的术语。当引用被认为是冗长的语言时,通常会使用它,即程序员必须编写大量代码才能完成最少的工作。

因此,基本上,您可以将样板代码视为编程语言经常在使用该语言编写的程序周围所需的文本。

现代语言正在尝试减少这种情况,但同时也尝试使用具有特定类型检查器的较旧的语言(例如,OCaml具有类型推断器,它使您可以避免使用太多冗长的语言(如Java)中的样板代码声明。



15

软件开发中的样板对于不同的人可能意味着不同的事情,但通常意味着一遍又一遍地使用的代码块。

MEAN中堆栈开发中,该术语是指通过使用模板来生成代码。这比从头开始对整个应用程序进行手工编码要容易得多,并且由于它是干净,经过测试和验证的代码,并且提供了开源代码,因此可以不断地更新或修复它,从而使代码块的一致性和错误更少,因此可以节省大量的使用时间。框架或代码生成器。有关MEAN堆栈的更多信息,请单击此处


7

实际上,样板代码是您到处剪切粘贴的内容。通常情况下会是诸如模块标头之类的事情,加上一些标准/必需的声明(每个模块都必须声明一个记录器,每个模块都必须为其名称和修订版声明变量,等等。)在我当前的项目中,我们正在编写消息处理程序它们都具有相同的结构(读取消息,对其进行验证,对其进行处理),并且为了消除处理程序之间的依赖关系,我们不想让它们都从基类继承,因此我们提出了一个样板框架。它声明了所有例程变量,标准方法,异常处理框架-开发人员要做的就是添加特定于要处理消息的代码。它本来可以快速简便地使用,


7

如今,样板定义在许多其他编程语言中正变得越来越全球化。它来自OOP和混合语言,这些语言已经成为OOP,并且在程序化之前已经具有相同的目标,即不断重复使用模型/模板/类/对象构建的代码,因此为什么要使用此术语。您制作了一个模板,并且对模板的每个实例所做的唯一操作就是使对象个性化的参数,这就是我们所说的样板。您只需使用不同的参数即可重复使用作为模板的代码。

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



2

来自whatis.techtarget.com

在信息技术中,样板是写作的单位,可以重复使用而无需更改。通过扩展,该思想有时被应用到可重用的编程中,例如“样板代码”。该术语源自钢铁制造,其中样板是将钢材轧制成大块的板,用于蒸汽锅炉。这可能是因为样板文字已经过时间测试并且很坚固,就像“钢”一样,或者可能已经推广到足以重复使用的强度。

超越编程:

可以将样板与某种模板进行比较,可以将其视为空白模板。一些典型的样板包括:任务声明,安全警告,常用的安装过程,版权声明和责任免责声明。

以我作为程序员的经验来看,正确的样板代码通常是一堆起步的代码,这些代码规模不大和/或不够复杂,无法称为框架。

一个典型的例子是HTML5 Boilerplate


1

您可以将其称为“代码段”,或更准确地说是“代码段集合”。我认为该术语是在印刷业中创造的,他们使用实际的“印版”,然后再次将其重新用作大块。花哨的简单事物的名词,以显得更加时尚和精致。请参阅响应=适应性强/流畅。


“摘要”传达的含义并不完全相同。“样板”倾向于表示较大的块,该块应进行修改以适合,而不是几行复制/粘贴/忘记代码。一个示例可能是WinMainWin32应用程序中该函数的代码。它注册应用程序的窗口类,创建主窗口,运行事件循环,并返回窗口过程的退出代码。该功能通常在应用程序之间变化不大,并且可以通过相对较少的修改就可以重用,但是它并不是那么常规,以至于作为库(或片段)而言,它意义非凡。
cHao 2012年

0

样板是写作的单位,可以不断重复使用而无需更改。通过扩展,该思想有时会应用于可重复使用的编程,例如“样板代码”

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.