Cos'è boilerplate e perché lo usiamo? Necessità di guida allo stile di codifica

Nella tecnologia dell'informazione, un boilerplate è un'unità di scrittura che può essere riutilizzata più e più volte senza modifiche. Per estensione, l'idea viene talvolta applicata alla programmazione riutilizzabile, come nel "codice boilerplate".

Gli accordi legali, inclusi i termini e le condizioni del software e dell'hardware, fanno un uso abbondante di boilerplate.

Ad esempio, un avvocato può darti un contratto di cinque pagine da firmare, ma la maggior parte del contratto è standard, il che significa che è lo stesso per tutti coloro che ottengono quel contratto, con solo poche righe cambiate qua e là.

Nella programmazione del computer, il codice boilerplate o boilerplate si riferisce a sezioni di codice che devono essere incluse in molti punti con poca o nessuna alterazione. Viene spesso utilizzato quando si fa riferimento a linguaggi considerati verbosi , ovvero il programmatore deve scrivere molto codice per eseguire lavori minimi.

Ad esempio, nello sviluppo web, un semplice boilerplate per HTML sarebbe simile a questo:

Hello world! This is HTML5 Boilerplate.

Puoi visualizzare l'intero repository qui:

h5bp / html5-boilerplate

html5-boilerplate: un modello di front-end professionale per la creazione di app o siti Web veloci, affidabili e adattabili. github.com

Negli anni 1890, il boilerplate veniva effettivamente fuso o stampato in metallo pronto per la stampa e distribuito alle macchine da stampa e alle aziende degli Stati Uniti. Fino agli anni '50, migliaia di giornali ricevevano e utilizzavano questo tipo di boilerplate dal più grande fornitore della nazione, la Western Newspaper Union. Alcune aziende hanno anche inviato comunicati stampa come boilerplate in modo che dovevano essere stampati come scritti.

La maggior parte degli sviluppatori web professionisti ha creato una raccolta di risorse e frammenti di codice che riutilizzano nei progetti per accelerare lo sviluppo. Esistono alcuni modelli universali o quasi universali che tutti i siti Web condividono in comune. Piuttosto che ricostruirli continuamente, la maggior parte degli sviluppatori inizia copiando il codice che hanno usato per un progetto simile e poi inizia a modificarlo.

Alcuni sviluppatori riconoscono il valore di questi modelli iniziali standard e si prendono il tempo necessario per renderli più generici e condividerli online affinché altri possano usarli.

Questo non è solo limitato allo sviluppo web. Viene utilizzato oltre in AI / ML poiché ci sono framework e librerie in crescita.

Caratteristiche necessarie del boilerplate per grandi progetti (pronto per la produzione)

  • Documentazione buona e leggibile?
  • Struttura del codice con un livello di astrazione più profondo
  • Segue lo standard di codifica corretto
  • Dispone di uno strumento CLI (per la prototipazione rapida e la configurazione)
  • Scalabile?
  • Strumenti di test facili
  • Moduli API necessari
  • Supporto per internazionalizzazione e localizzazione?
  • Suddivisione del codice
  • Codice server e client per l'installazione
  • Navigazione corretta e struttura del percorso?

Dopo tutte queste specifiche minime, dovresti iniziare a modificare e alterare il codice per costruire il tuo progetto.

Ci sono alcune grandi aziende tecnologiche che costruiscono persino il proprio standard. Lo usano per progetti rispettivi e simili nel tempo.

Un perfetto esempio per questo sarebbe il boilerplate di react.js:

reagire-boilerplate / reagire-boilerplate

react-boilerplate -: fire: una base offline altamente scalabile e offline con la migliore esperienza di sviluppo e un focus ... github.com

Boilerplate per piccoli progetti (ponteggi)

Questi tipi di boilerplate sono generalmente delle specie di “Starter Kit” o in modo professionale si chiamano “Ponteggi”. I loro principali utenti target sono sviluppatori inesperti o nuovi early adopter.

Si concentra sulla prototipazione rapida creando gli elementi necessari solo per nuovi progetti. Questi richiedono meno funzionalità e non sono scalabili nel tempo e nel progetto.

La loro struttura del codice non è molto espansa e non coinvolge un livello di astrazione più profondo poiché gli utenti devono solo creare funzionalità di base. Ciò elimina la necessità di utilità aggiuntive.

L'esempio più semplice è il boilerplate di Facebook create-react-app:

facebookincubator / crea-reagisci-app

create-react-app - Crea app React senza configurazione di build. github.com

Qual è la differenza tra un boilerplate e un modello?

Come afferma chiaramente Joachim Pense, boilerplate è qualcosa che si copia e incolla e si aggiunge a un documento. Viene fuori più spesso nei contratti in cui la lingua viene utilizzata e riutilizzata, precisando cose come condizioni e avvertenze.

Gli scrittori usano modelli come modelli , a volte con effetti negativi. In termini generali, un modello è un modello o un motivo utilizzato per creare nuovi oggetti. Nella scrittura, è una forma standardizzata di qualcosa come un curriculum che gli scrittori possono utilizzare per arricchire le proprie versioni.

A differenza dei boilerplate, i modelli sono adattati per un uso particolare. Il problema è sorto per me quando gli studenti hanno utilizzato modelli di Word per i loro curriculum e hanno finito per sembrare tutti uguali.

Sia i modelli che i boilerplate possono rendere la scrittura aziendale artificiosa e artificiale se usati in modo sconsiderato.

Guida allo stile per la scrittura del codice

Indipendentemente dal fatto che tu stia utilizzando boilerplate o meno, ci sono alcuni standard seguiti dalle aziende per la scrittura del codice. Uno di questi è Style Guide. Tenta di spiegare gli stili e i modelli di base utilizzati in varie aziende o organizzazioni. È generalmente una regola che i dipendenti devono adottare la guida allo stile di codifica della loro azienda.

La Guida allo stile descrive tonnellate di regole per la scrittura di codice, come il rientro di tabulazioni e spazi, denominazione di variabili e funzioni, scrittura di commenti necessari, formattazione, strutture dei file di origine, utilizzo del metodo corretto delle strutture di dati, evitando il sollevamento, l'ambito, le istruzioni di controllo e un molto di più.

Gli stili di programmazione si occupano comunemente dell'aspetto visivo del codice sorgente con l'obiettivo della leggibilità. È da tempo disponibile un software che formatta automaticamente il codice sorgente, lasciando i programmatori a concentrarsi sulla denominazione, sulla logica e sulle tecniche superiori.

In pratica, l'utilizzo di un computer per formattare il codice sorgente consente di risparmiare tempo ed è quindi possibile applicare standard a livello aziendale senza discussioni. (Fonte - Wiki).

Questi sono alcuni dibattiti comuni come: Tabs v Spaces Guerra santa , scelta del codice IDE perfetto e così via. La cosa interessante è che puoi essere coinvolto in questi dibattiti che per lo più avvengono su Reddit . Puoi anche partecipare ad alcune delle domande e risposte su stackoverflow .

Per gli sviluppatori web, la guida di stile più comune per JS è la guida di stile javascript di Airbnb. È open source e tutti possono contribuire.

airbnb / javascript

javascript - Guida allo stile JavaScript github.com

Se qualcuno ha dei dubbi sul motivo per cui Javascript ha bisogno di una guida di stile, leggi la seconda risposta di questo problema di Harrison Shoff, che è programmatore di Airbnb .

Perché JavaScript necessita di una guida di stile? · Numero 102 · airbnb / javascript

Una delle mie parti preferite della comunità JavaScript è che le persone scelgono di scriverlo in tanti modi diversi… github.com

Ecco alcune guide di stile per alcune delle lingue più popolari di oggi:

Formattatore di codice DotNet

Java: Google-Java-Format

Javascript Standard Style (diverso dal javascript di airbnb)

Standard di codifica PHP Fixe r

Python: YAPF di Google

Rubino: Rubocop

Altro da Boilerplate: Concept for OOP

Nei programmi orientati agli oggetti, alle classi vengono spesso forniti metodi per ottenere e impostare variabili di istanza. Le definizioni di questi metodi possono essere spesso considerate come standard.

Sebbene il codice varierà da una classe all'altra, è sufficientemente stereotipato nella struttura che sarebbe meglio generato automaticamente che scritto a mano.

Ad esempio, nella seguente classe Java che rappresenta un animale domestico, quasi tutto il codice è boilerplate ad eccezione delle dichiarazioni di animale domestico , nome e proprietario :

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; }}

La definizione di Boilerplate sta diventando più globale in molti altri linguaggi di programmazione al giorno d'oggi. Proviene da OOP e linguaggi ibridi che una volta erano procedurali ma sono diventati OOP. Ora hanno lo stesso obiettivo di ripetere il codice che crei con un modello / modello / classe / oggetto, quindi adottano questo termine. Crei un modello e le uniche cose che fai per ogni istanza di un modello sono i singoli parametri.

Questa parte è ciò che chiamiamo boilerplate. Devi semplicemente riutilizzare il codice di cui hai creato un modello, ma con parametri diversi.

Boilerplate come API

Poiché stai semplicemente riutilizzando il codice del modello con parametri diversi, ciò implica che potremmo creare API riutilizzabili che richiedono solo una modifica di input e output.

Conclusione

Il "codice Boilerplate" è qualsiasi codice apparentemente ripetitivo che si ripresenta ancora e ancora per ottenere un risultato che sembra dovrebbe essere molto più semplice.

Ho scritto questo articolo perché recentemente sono stato incaricato da un Team Lead di conoscere le molte varietà di boilerplate che potrebbero essere adatte al nostro progetto. Quindi ho dovuto cercare il boilerplate perfetto.

Qualsiasi tipo di feedback sarà apprezzato! Hustle On!