457

A coworker had never heard of this, and I couldn't provide a real definition. For me, it's always been an instance of 'I-know-it-when-I-see-it'.

Bonus question, who originated the term?

4

15 回答 15

255

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

这是一个主观的定义。

该术语来自报业的“样板”:wiki

于 2010-10-21T21:40:22.567 回答
77

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

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

对于一点历史,根据维基百科

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

现在根据维基百科

在面向对象的程序中,通常会为类提供获取和设置实例变量的方法。这些方法的定义通常可以被视为样板文件。尽管代码会因一个类而异,但它在结构上是非常典型的,因此自动生成比手工编写要好。例如,在以下表示宠物的 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;
    }
}
于 2015-09-18T05:49:28.003 回答
61

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

有趣的是,这个词起源于报业。联合的专栏和其他文章以垫子(即矩阵)的形式发送给订阅报纸。收到后,将沸腾的铅倒入该垫子中以创建用于打印该作品的板,因此称为样板。由于印在样板上的文章无法更改,因此该术语开始被律师用来指代合同中通过在不同应用中重复使用而不会改变的部分,最后是指在一般情况下不会改变的语言。任何在不同场合重复使用的文件。

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

于 2010-10-22T13:51:16.130 回答
43

它是许多应用程序/上下文可以使用的代码,几乎不需要更改。

Boilerplate 源自 1900 年代初期的钢铁工业。

于 2010-10-21T21:41:24.310 回答
40

来自维基百科

在计算机编程中,样板是用于描述必须包含在许多地方而很少或没有更改的代码部分的术语。当提到被认为是冗长的语言时,它更常使用,即程序员必须编写大量代码才能完成最少的工作。

因此,基本上您可以将样板代码视为一种编程语言所需要的文本,通常围绕着您用该语言编写的程序。

现代语言正试图减少它,但也有具有特定类型检查器的旧语言(例如 OCaml 有一个类型推断器,它允许您避免如此多的声明,这些声明将成为像 Java 这样更冗长的语言中的样板代码)

于 2010-10-21T21:42:27.840 回答
28

样板是优秀程序员避免的:重复。

于 2014-07-22T09:20:53.060 回答
21

软件开发中的样板对不同的人可能意味着不同的东西,但通常意味着反复使用的代码块。

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

于 2017-02-13T16:50:04.397 回答
10

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

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

于 2016-10-28T10:50:41.383 回答
8

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

于 2010-10-22T12:20:01.973 回答
6

Joshua Bloch有一个关于 API 设计的讨论,其中涵盖了糟糕的 API 设计如何使样板代码变得必要。(第 46 分钟参考样板,今天听这个)

于 2010-10-22T11:39:20.080 回答
5

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

在 HTML 中,接口中的样板代码。

<!DOCTYPE html>   
<html>   
   <head>   
      <title></title>   
   </head>   
   <body> </body>   
</html>

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

class Price
{   
  private string _price;   
  public string Price
  {   
     get {return _price;}   
     set {_price= value;}   
  }   
}  
于 2020-11-30T19:02:13.050 回答
3

您可以将其称为“片段”或更准确地说是“片段集合”。我认为这个词是从印刷业创造出来的,他们使用实际的“印版”,然后再次将它们重新用作块。把简单的东西用花哨的说法,以显得更时尚和精致。见响应=适应性/流体。

于 2012-05-23T02:50:43.013 回答
3

来自whatis.techtarget.com

在信息技术中,样板是一种可以反复重复使用而无需更改的写作单元。通过扩展,这个想法有时被应用于可重用编程,如“样板代码”。该术语源自钢铁制造,其中样板是将钢轧制成大板用于蒸汽锅炉。这意味着要么是样板编写已经过时间考验并且像“钢铁”一样强大,要么可能它已经被推出了足够强大的东西,可以重复使用。

超越编程:

样板可以比作某种模板,可以将其视为填空样板。一些典型的样板文件包括:使命声明、安全警告、常用安装程序、版权声明和免责声明。

以我作为程序员的经验,正确的样板代码通常是一堆你开始使用的代码,它们不够大和/或复杂到足以被称为框架。

一个典型的例子是HTML5 Boilerplate

于 2016-01-25T20:20:10.953 回答
1

样板是一种可以反复重用而无需更改的写作单元。通过扩展,这个想法有时被应用于可重用编程,如“样板代码

于 2019-09-27T12:33:54.137 回答
-1

可重复的代码部分只是增加了不必要的输入层来完成工作。

这些有必要吗?

在大多数情况下,这些是结构性和装饰性标记。它提供了代码、函数、语言外观的一致性。

所以它作为开发人员有点多余,因为我们已经多次看到它,但确实向非开发人员和编译器传达了一些实际意义。

于 2022-02-25T06:19:18.083 回答