Was ist Boilerplate und warum verwenden wir es? Notwendigkeit der Codierung Style Guide

In der Informationstechnologie ist eine 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“.

Rechtliche Vereinbarungen, einschließlich der Geschäftsbedingungen für Software und Hardware, verwenden häufig Boilerplates.

Zum Beispiel kann ein Anwalt Ihnen einen fünfseitigen Vertrag zur Unterzeichnung geben, aber der größte Teil des Vertrags ist ein Kesselschild - was bedeutet, dass er für alle, die diesen Vertrag erhalten, gleich ist, da hier und da nur wenige Zeilen geändert werden.

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

In der Webentwicklung würde beispielsweise ein einfaches Boilerplate für HTML folgendermaßen aussehen:

Hello world! This is HTML5 Boilerplate.

Sie können das gesamte Repository hier anzeigen:

h5bp / html5-boilerplate

html5-boilerplate - Eine professionelle Front-End-Vorlage zum Erstellen schneller, robuster und anpassbarer Web-Apps oder Websites. github.com

In den 1890er Jahren wurde Boilerplate tatsächlich für die Druckmaschine in Metall gegossen oder gestempelt und an Zeitungsdruckmaschinen und Firmen in den Vereinigten Staaten 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.

Die meisten professionellen Webentwickler haben eine Sammlung von Assets und Codeausschnitten erstellt, die sie für Projekte wiederverwenden, um die Entwicklung zu beschleunigen. Es gibt einige universelle oder nahezu universelle Muster, die alle Websites gemeinsam haben. Anstatt diese kontinuierlich neu zu erstellen, kopieren die meisten Entwickler zunächst den Code, den sie für ein ähnliches Projekt verwendet haben, und ändern ihn dann.

Einige Entwickler erkennen den Wert dieser Startervorlagen für Boilerplates und nehmen sich die Zeit, um die Boilerplate allgemeiner zu gestalten und sie online für andere freizugeben.

Dies beschränkt sich nicht nur auf die Webentwicklung. Es wird darüber hinaus in AI / ML verwendet, da es immer mehr Frameworks und Bibliotheken gibt.

Notwendige Eigenschaften der Kesselplatte für große Projekte (produktionsbereit)

  • Gute und lesbare Dokumentation?
  • Codestruktur mit einer tieferen Abstraktionsebene
  • Befolgen Sie den richtigen Codierungsstandard
  • Hat CLI-Tool (für Rapid Prototyping und Setup)
  • Skalierbar?
  • Einfache Testwerkzeuge
  • Notwendige API-Module
  • Unterstützung für Internationalisierung und Lokalisierung?
  • Code-Aufteilung
  • Server- und Client-Code für die Einrichtung
  • Richtige Navigations- und Routingstruktur?

Nach all diesen Mindestanforderungen sollten Sie mit der Bearbeitung und Änderung des Codes beginnen, um Ihr Projekt zu erstellen.

Es gibt einige Big Tech-Unternehmen, die sogar ihre eigene Heizplatte bauen. Sie verwenden es im Laufe der Zeit für entsprechende und ähnliche Projekte.

Ein perfektes Beispiel hierfür wäre das Boilerplate von react.js:

React-Boilerplate / React-Boilerplate

React-Boilerplate -: fire: Eine hoch skalierbare Offline-First-Grundlage mit der besten Entwicklererfahrung und einem Fokus… github.com

Boilerplate für kleinere Projekte (Gerüste)

Diese Art von Kesselplatten sind in der Regel „Starter Kits“ oder werden auf professionelle Weise als „Gerüste“ bezeichnet. Ihre Hauptzielbenutzer sind unerfahrene Entwickler oder neue Early Adopters.

Es konzentriert sich auf schnelles Prototyping, indem die Elemente erstellt werden, die nur für neue Projekte erforderlich sind. Diese erfordern weniger Funktionalität und sind über Zeit und Projekt nicht skalierbar.

Ihre Codestruktur ist nicht sehr erweitert und beinhaltet keine tiefere Abstraktionsschicht, da Benutzer nur Kernfunktionen erstellen müssen. Dadurch sind keine zusätzlichen Dienstprogramme erforderlich.

Das einfachste Beispiel ist Facebooks Boilerplate zum Erstellen und Reagieren von Apps:

facebookincubator / create-react-app

create-react-app - Erstellen Sie React-Apps ohne Build-Konfiguration. github.com

Was ist der Unterschied zwischen einer Boilerplate und einer Template?

Wie Joachim Pense klar feststellt, ist Boilerplate etwas, das Sie kopieren und einfügen und einfach einem Dokument hinzufügen. Es kommt am häufigsten in Verträgen vor, in denen Sprache verwendet und wiederverwendet wird, und beschreibt Dinge wie Bedingungen und Vorbehalte.

Autoren verwenden Vorlagen als Modelle , manchmal mit negativen Auswirkungen. Im Allgemeinen ist eine Vorlage ein Modell oder Muster, mit dem neue Objekte erstellt werden. Beim Schreiben handelt es sich um eine standardisierte Form eines Lebenslaufs , mit dem Autoren ihre eigenen Versionen ausarbeiten können.

Im Gegensatz zu Boilerplates werden Templates für eine bestimmte Verwendung angepasst. Das Problem trat für mich auf, als die Schüler Word-Vorlagen für ihre Lebensläufe verwendeten und alle gleich aussahen.

Sowohl Vorlagen als auch Boilerplates können das Schreiben von Unternehmen gestelzt und künstlich machen, wenn sie unklug verwendet werden.

Style Guide zum Schreiben von Code

Unabhängig davon, ob Sie Boilerplate verwenden oder nicht, gibt es einige Standards, die von Unternehmen zum Schreiben von Code befolgt werden. Einer davon ist Style Guide. Es wird versucht, die grundlegenden Stile und Muster zu erklären, die in verschiedenen Unternehmen oder Organisationen verwendet werden. Es ist im Allgemeinen eine Regel, dass Mitarbeiter den Coding Style Guide ihres Unternehmens übernehmen müssen.

Der Style Guide beschreibt unzählige Regeln zum Schreiben von Code, wie das Einrücken von Tabulatoren und Leerzeichen, das Benennen von Variablen und Funktionen, das Schreiben der erforderlichen Kommentare, das Formatieren, die Quelldateistrukturen, die Verwendung der richtigen Methode für Datenstrukturen, das Vermeiden von Heben, Scoping, Steueranweisungen und a viel mehr.

Programmierstile befassen sich üblicherweise mit dem visuellen Erscheinungsbild von Quellcode mit dem Ziel der Lesbarkeit. Es gibt seit langem Software, die den Quellcode automatisch formatiert und es den Programmierern ermöglicht, sich auf Benennung, Logik und höhere Techniken zu konzentrieren.

In der Praxis spart die Verwendung eines Computers zum Formatieren des Quellcodes Zeit, und es ist möglich, unternehmensweite Standards ohne Debatten durchzusetzen. (Quelle - Wiki).

Dies sind einige häufige Debatten wie: Tabs v Spaces Holy War , Auswahl der perfekten Code-IDE und so weiter. Das Interessante ist, dass Sie sich an diesen Debatten beteiligen können, die hauptsächlich auf Reddit stattfinden . Sie können auch an einigen Fragen und Antworten zum Stackoverflow teilnehmen .

Für Webentwickler ist der am häufigsten verwendete Styleguide für JS der Javascript-Styleguide von Airbnb. Es ist Open Source und jeder kann dazu beitragen.

Airbnb / Javascript

Javascript - JavaScript Style Guide github.com

Wenn jemand Zweifel hat, warum Javascript einen Styleguide benötigt, lesen Sie die zweite Antwort dieser Ausgabe von Harrison Shoff, Programmierer bei Airbnb .

Warum benötigt JavaScript einen Styleguide? · Ausgabe Nr. 102 · Airbnb / Javascript

Einer meiner Lieblingsteile in der JavaScript-Community ist, dass die Leute es auf so viele verschiedene Arten schreiben… github.com

Hier sind einige Styleguides für einige der beliebtesten Sprachen von heute:

DotNet-Code-Formatierer

Java: Google-Java-Format

Javascript Standard Style (anders als Airbnb's Javascript)

PHP Coding Standards Fixe r

Python: Googles YAPF

Ruby: Rubocop

Mehr von Boilerplate: Konzept für OOP

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 String name; private Person owner;
public Pet(String name, Person owner) { this.name = name; this.owner = owner; }
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public Person getOwner() { return owner; }
public void setOwner(Person owner) { this.owner = owner; }}

Die Definition von Boilerplates wird heutzutage in vielen anderen Programmiersprachen globaler. Es stammt aus OOP und hybriden Sprachen, die früher prozedural waren, aber zu OOP geworden sind. Sie haben jetzt das gleiche Ziel, den Code, den Sie mit einem Modell / einer Vorlage / einer Klasse / einem Objekt erstellen, zu wiederholen. Daher übernehmen sie diesen Begriff. Sie erstellen eine Vorlage, und die einzigen Dinge, die Sie für jede Instanz einer Vorlage tun, sind die einzelnen Parameter.

Diesen Teil nennen wir Boilerplate. Sie verwenden den Code, aus dem Sie eine Vorlage erstellt haben, einfach wieder, jedoch mit unterschiedlichen Parametern.

Boilerplate als API

Da Sie den Vorlagencode einfach mit verschiedenen Parametern wiederverwenden, bedeutet dies, dass wir wiederverwendbare APIs erstellen können, die nur eine Änderung der Ein- und Ausgaben erfordern.

Fazit

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

Ich habe diesen Artikel geschrieben, weil ich kürzlich von einem Teamleiter angewiesen wurde, mehr über die vielen Arten von Kesselplatten zu erfahren, die für unser Projekt geeignet sein könnten. Also musste ich mich auf die Suche nach dem perfekten Boilerplate machen.

Jede Art von Feedback wird geschätzt! Hustle On!