Was ist Boilerplate-Code?


384

Ein Mitarbeiter hatte noch nie davon gehört, und ich konnte keine wirkliche Definition liefern. Für mich war es immer ein Beispiel für "Ich weiß es, wenn ich es sehe".

Bonusfrage, wer hat den Begriff ins Leben gerufen?


68
Der Begriff Boilerplate bezieht sich nicht nur auf die Programmierung. Zum Beispiel kann ein Anwalt Ihnen einen 5-seitigen Vertrag zur Unterzeichnung geben, aber der größte Teil des Vertrags ist ein Kesselschild. Das heißt, es ist für alle gleich, die diesen Vertrag erhalten, mit nur wenigen Zeilen, die hier und da geändert werden.
Mellowsoon

26
Ich weiß von niemand anderem, aber in meiner Firma ist der Boilerplate-Code der Code, der das Boilerplate bedient: Öffnen, Schließen, Waschen, Ersetzen usw.
ulty4life

1
Diese Frage scheint nicht zum Thema zu gehören, da es sich um Jargon handelt.
Adriano Repetti

4
Ich kam wegen Laravels Dokumentation hierher und dachte .. "Was ist das für ein Kesselschild-Zeug, von dem sie sprechen?". Nachdem ich einige Antworten gelesen hatte, dachte ich, dass diese direkt verwandte Wiki-Seite auch Einblicke in die Angelegenheit zeigt: en.wikipedia.org/wiki/Boilerplate_code
Ben Fransen

1
Ich habe den Begriff kürzlich gehört. Ich bin gespannt, ob ich sie als Plugin oder Modul für die Programmiersprachen aufrufen kann.
Anjil Panchal

Antworten:


215

"Boilerplate-Code" ist ein sich scheinbar wiederholender Code, der immer wieder angezeigt wird, um ein Ergebnis zu erzielen, das viel einfacher zu sein scheint.

Es ist eine subjektive Definition.

Der Begriff stammt von "Boilerplate" in der Zeitungsbranche: Wiki


2
Die Idee hinter Multiproperties in OOP ist es, die Boilerplate zu reduzieren, sodass sie bei richtiger Anwendung erheblich reduziert werden kann.
Andrew Sledge

Es wird auch gesagt, es kommt aus der Stahlindustrie, wo Stahlplatten in Kesseln verwendet werden
Mohammed Shareef C

55

Auf der Etymologie der Begriff Boilerplate : von http://www.takeourword.com/Issue009.html ...

Interessanterweise entstand der Begriff aus dem Zeitungsgeschäft. Spalten und andere Stücke, die syndiziert wurden, wurden in Form einer Matte (dh einer Matrix) an abonnierende Zeitungen verschickt. Nach Erhalt wurde kochendes Blei in diese Matte gegossen, um die Platte zu erzeugen, die zum Bedrucken des Stücks verwendet wurde, daher der Name Boilerplate. Da der auf einem Kesselschild gedruckte Artikel nicht geändert werden konnte, wurde der Begriff von Anwälten verwendet, um sich auf die Teile eines Vertrags zu beziehen, die sich durch wiederholte Verwendung in verschiedenen Anwendungen nicht geändert haben, und schließlich auf die Sprache im Allgemeinen, die sich nicht geändert hat Jedes Dokument, das wiederholt für verschiedene Anlässe verwendet wurde.

Was macht Boilerplate in der Programmierung aus? Wie andere vielleicht betont haben, handelt es sich nur um einen Teil des Codes, der immer wieder kopiert wird, ohne dass dabei Änderungen vorgenommen wurden.


Es gibt eine alternative Erklärung mentalfloss.com/article/26087/why-it-boilerplate-text, für die ich weitere Referenzen gesehen habe.
Fgysin wieder Monica

1
Verdammt! Dies scheint eine Antwort für einen Grammatik-Stapelaustausch zu sein ... eigentlich vielleicht die ganze Frage, aber ich kann sehen, warum wir sie hier brauchen ...
pythonian29033

55

Boilerplate-Code bedeutet einen Code, der immer wieder verwendet werden kann. Auf der anderen Seite kann jeder sagen, dass es sich um einen wiederverwendbaren Code handelt.

Der Begriff stammt eigentlich aus der Stahlindustrie.

Für ein bisschen Geschichte laut Wikipedia :

In den 1890er Jahren wurde Boilerplate tatsächlich für die Druckmaschine in Metall gegossen oder gestempelt und an Zeitungen in den USA verteilt. Bis in die 1950er Jahre erhielten und verwendeten Tausende von Zeitungen diese Art von Heizplatte vom größten Lieferanten des Landes, der Western Newspaper Union. Einige Unternehmen verschickten auch Pressemitteilungen als Kesselschild, so dass sie wie geschrieben gedruckt werden mussten.

Jetzt laut Wikipedia :

In objektorientierten Programmen werden Klassen häufig mit Methoden zum Abrufen und Festlegen von Instanzvariablen bereitgestellt. Die Definitionen dieser Methoden können häufig als Boilerplate angesehen werden. Obwohl der Code von Klasse zu Klasse unterschiedlich ist, ist seine Struktur ausreichend stereotyp, sodass er besser automatisch generiert als von Hand geschrieben wird. In der folgenden Java-Klasse, die ein Haustier darstellt, ist beispielsweise fast der gesamte Code mit Ausnahme der Deklarationen von Haustier, Name und Eigentümer ein Boilerplate:

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

Es ist Code, der von vielen Anwendungen / Kontexten ohne oder mit nur geringen Änderungen verwendet werden kann.

Boilerplate stammt aus der Stahlindustrie in den frühen 1900er Jahren.


34

Aus Wikipedia :

In der Computerprogrammierung wird Boilerplate verwendet, um Codeabschnitte zu beschreiben, die an vielen Stellen ohne oder mit nur geringen Änderungen enthalten sein müssen. Es wird häufiger verwendet, wenn auf Sprachen verwiesen wird, die als ausführlich gelten, dh der Programmierer muss viel Code schreiben, um minimale Jobs auszuführen.

Grundsätzlich können Sie Boilerplate-Code als Text betrachten, der von einer Programmiersprache sehr häufig rund um die Programme benötigt wird, die Sie in dieser Sprache schreiben.

Moderne Sprachen versuchen, dies zu reduzieren, aber auch die ältere Sprache mit speziellen Typprüfern (zum Beispiel hat OCaml einen Type-Inferrer, mit dem Sie so viele Deklarationen vermeiden können, bei denen es sich um Boilerplate-Code in einer ausführlicheren Sprache wie Java handelt).


24

Boilerplate vermeiden gute Programmierer: Wiederholung.


36
OMG, du hast zweimal "ti" in deiner Antwort! Wie Sie sehen können, ist Wiederholung nicht immer schlecht.
Tamás Sengel

3
Wie vermeide ich public static void main(String[] _)?
Koray Tugay

15

Boilerplate in der Softwareentwicklung kann für verschiedene Personen unterschiedliche Bedeutungen haben, bedeutet jedoch im Allgemeinen den Codeblock, der immer wieder verwendet wird.

In der MEAN- Stack-Entwicklung bezieht sich dieser Begriff auf die Codegenerierung mithilfe von Vorlagen. Es ist einfacher als die gesamte Anwendung von Grund auf von Hand zu codieren, und es gibt dem Code Blockkonsistenz und weniger Fehler, da es sich um sauberen, getesteten und bewährten Code handelt und Open Source ist, sodass es ständig aktualisiert oder repariert wird, wodurch viel Zeit bei der Verwendung gespart wird Framework oder Codegenerator. Weitere Informationen zum MEAN-Stack finden Sie hier .


7

In der Praxis ist Boilerplate-Code das Zeug, das Sie überall ausschneiden und einfügen. Oft sind es Dinge wie ein Modulheader und einige Standard- / erforderliche Deklarationen (jedes Modul muss einen Logger deklarieren, jedes Modul muss Variablen für seinen Namen und seine Revision deklarieren usw.) In meinem aktuellen Projekt schreiben wir Nachrichtenhandler und sie haben alle die gleiche Struktur (eine Nachricht lesen, validieren, verarbeiten) und um Abhängigkeiten zwischen den Handlern zu beseitigen, wollten wir nicht, dass sie alle von einer Basisklasse erben, also haben wir ein Boilerplate-Skelett entwickelt. Es wurden alle Routinevariablen, die Standardmethoden und das Framework für die Ausnahmebehandlung deklariert. Ein Entwickler musste lediglich den Code hinzufügen, der für die zu behandelnde Nachricht spezifisch ist. Es wäre schnell und einfach zu bedienen gewesen,


7

Die Definition von Boilerplates wird heutzutage in vielen anderen Programmiersprachen globaler. Es stammt aus OOP und hybriden Sprachen, die zu OOP geworden sind und vor dem Verfahren das gleiche Ziel hatten, den Code, den Sie mit einem Modell / einer Vorlage / einer Klasse / einem Objekt erstellen, immer wieder zu wiederholen, weshalb sie diesen Begriff anpassen. Sie erstellen eine Vorlage und die einzigen Dinge, die Sie für jede Instanz einer Vorlage tun, sind die Parameter zum Individualisieren eines Objekts. Dieser Teil wird als Boilerplate bezeichnet. Sie verwenden den Code, aus dem Sie eine Vorlage erstellt haben, einfach wieder, nur mit unterschiedlichen Parametern.

Synonyme
Eine Blaupause ist ein Boilerplate.
Eine Schablone ist ein Boilerplate.
Eine Fußzeile ist ein Boilerplate.
Ein Entwurfsmuster für die mehrfache Verwendung ist ein Boilerplate.
Eine Signatur einer Mail ist ein Boilerplate



2

Von whatis.techtarget.com :

In der Informationstechnologie ist ein Boilerplate eine Schreibeinheit, die unverändert immer wieder verwendet werden kann. Im weiteren Sinne wird die Idee manchmal auf wiederverwendbare Programmierung angewendet, wie im "Boilerplate-Code". Der Begriff leitet sich von der Stahlherstellung ab, bei der die Kesselplatte aus Stahl besteht, der zur Verwendung in Dampfkesseln zu großen Platten gewalzt wird. Die Implikation ist entweder, dass das Schreiben auf der Kesselplatte erprobt und stark wie "Stahl" ist, oder dass es möglicherweise zu etwas ausgerollt wurde, das stark genug für die wiederholte Wiederverwendung ist.

Über die Programmierung hinaus:

Eine Boilerplate kann mit einer bestimmten Art von Vorlage verglichen werden, die als Boilerplate zum Ausfüllen der Lücken angesehen werden kann. Einige typische Kesselschilder sind: Leitbilder, Sicherheitswarnungen, häufig verwendete Installationsverfahren, Urheberrechtserklärungen und Haftungsausschlüsse.

Nach meiner Erfahrung als Programmierer ist die richtige Art von Boilerplate-Code in der Regel eine Menge Code, mit dem Sie beginnen und der nicht groß und / oder kompliziert genug ist, um als Framework bezeichnet zu werden.

Ein typisches Beispiel wäre das HTML5 Boilerplate .


1

Sie können es als "Snippets" oder genauer als "Sammlung von Snippets" bezeichnen. Der Begriff wurde meiner Meinung nach aus der Druck- und Druckindustrie geprägt, wo sie tatsächliche "Platten" verwendeten und sie dann wieder als Brocken verwendeten. Im modernen Internet ist er Teil eines anhaltenden (ärgerlichen IMHO) Trends der Verwendung ausgefallene Begriffe für einfache Dinge, um trendiger und raffinierter auszusehen. siehe RESPONSIVE = anpassungsfähig / flüssig.


"Snippets" vermitteln nicht ganz die gleiche Bedeutung; "Boilerplate" bedeutet in der Regel größere Teile, die an die Passform angepasst werden sollen, im Gegensatz zu einigen Zeilen Code zum Kopieren / Einfügen / Vergessen. Ein Beispiel könnte Code für die WinMainFunktion in einer Win32-App sein. Es registriert die Fensterklasse der App, erstellt das Hauptfenster, führt die Ereignisschleife aus und gibt den Exit-Code der Fensterprozedur zurück. Diese Funktionalität ändert sich zwischen Apps oft nicht viel und kann mit relativ wenigen Änderungen wiederverwendet werden. Sie ist jedoch nicht so routinemäßig, dass sie als Bibliothek (oder als Snippet) viel Sinn macht.
CHao

0

Eine Boilerplate ist eine Schreibeinheit, die ohne Änderung immer wieder verwendet werden kann. Im weiteren Sinne wird die Idee manchmal auf wiederverwendbare Programmierung angewendet, wie im „Boilerplate-Code“

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.