Mis on boilerplate ja miks me seda kasutame? Kodeerimise stiilijuhendi vajalikkus

Infotehnoloogias on boilerplate kirjutusüksus, mida saab muutusteta uuesti ja uuesti kasutada. Laienduseks rakendatakse ideed mõnikord korduvkasutatava programmeerimise jaoks, nagu näiteks katlakoodi koodis.

Juriidilised kokkulepped, sealhulgas tarkvara ja riistvara nõuded ja tingimused, kasutavad katelde laialdaselt.

Näiteks võib advokaat anda teile allkirjastamiseks viieleheküljelise lepingu, kuid enamus lepingust on katel - see tähendab, et see on sama kõigile, kes selle lepingu saavad, vaid siin-seal on muudetud vaid mõnda rida.

Arvutiprogrammides viitab katlakood või katlakood koodilõikudele, mis tuleb lisada paljudesse kohtadesse, muutmata või muutmata. Seda kasutatakse sageli keelte puhul, mida peetakse paljusõnaliseks , st minimaalsete tööde tegemiseks peab programmeerija kirjutama palju koodi.

Näiteks veebiarenduses näeks HTML-i lihtne boilerplate välja selline:

Hello world! This is HTML5 Boilerplate.

Kogu hoidlat saate vaadata siit:

h5bp / html5-boilerplate

html5-boilerplate - professionaalne esiosa mall kiirete, töökindlate ja kohandatavate veebirakenduste või -saitide loomiseks. github.com

1890. aastatel valati või tembeldati katlakivi tegelikult trükipressi jaoks valmis metalli ja levitati ajalehepressidele ja kogu Ameerika Ühendriikide ettevõtetele. Kuni 1950. aastateni said ja kasutasid tuhanded ajalehed sedalaadi boilerit riigi suurimalt tarnijalt, Lääne ajalehtede liidult. Mõned ettevõtted saatsid pressiteateid ka katlaplaadina, nii et need tuli kirjutatult printida.

Enamik professionaalseid veebiarendajaid on loonud varade ja koodijuppide kogu, mida nad arenduse kiirendamiseks projektides uuesti kasutavad. On mõningaid universaalseid või peaaegu universaalseid mustreid, mis on kõigil veebisaitidel ühised. Selle asemel, et neid pidevalt ümber ehitada, alustab enamik arendajaid sarnase projekti jaoks kasutatud koodi kopeerimisest ja seejärel modifitseerimisest.

Mõni arendaja tunnistab nende katlaplaadi starterimallide väärtust ja võtab aega, et muuta katel üldisemaks ja jagada neid veebis teistele kasutamiseks.

See ei piirdu ainult veebiarendusega. Seda kasutatakse tehisintellektis / ML-s kaugemale, kuna raamistikke ja teeke on üha rohkem.

Suurte projektide katlakivi vajalikud omadused (valmis tootmiseks)

  • Hea ja loetav dokumentatsioon?
  • Koodistruktuur sügavama abstraktsioonitasemega
  • Järgib õiget kodeerimisstandardit
  • Kas CLI tööriist (kiireks prototüüpimiseks ja seadistamiseks)
  • Skaalautuv?
  • Lihtsad testimisvahendid
  • Vajalikud API moodulid
  • Rahvusvahelistumise ja lokaliseerimise tugi?
  • Koodi jagamine
  • Serveri ja kliendi kood seadistamiseks
  • Korralik navigeerimis- ja marsruutstruktuur?

Pärast kõiki neid miinimumnõudeid peaksite projekti ülesehitamiseks alustama koodi muutmist ja muutmist.

On mõned suured tehnoloogiaettevõtted, kes ehitavad isegi oma katla. Nad kasutavad seda kogu aeg vastavate ja sarnaste projektide jaoks.

Selle suurepärane näide oleks reak.js katlaplaat:

reageerima katel / reageerima katel

reageerima boilerplate -: tulekahju: Kõrgelt skaleeritav, võrguühenduseta sihtasutus, millel on parim arendaja kogemus ja fookus ... github.com

Katla väiksemate projektide jaoks (tellingud)

Seda tüüpi katelde tüübid on tavaliselt mingid „stardikomplektid” või professionaalsel viisil nimetatakse neid „tellinguteks”. Nende peamised sihtkasutajad on algajad arendajad või uued varased kasutuselevõtjad.

See keskendub kiirele prototüüpimisele, luues elemente, mis on vajalikud ainult uute projektide jaoks. Need nõuavad vähem funktsionaalsust ning neid ei saa aja ja projekti jooksul skaleerida.

Nende koodistruktuur on vähe laiendatud ja see ei hõlma sügavamat abstraktsioonikihti, kuna kasutajatel on vaja ehitada ainult põhifunktsioone. See välistab vajaduse täiendavate kommunaalteenuste järele.

Lihtsaim näide on Facebooki loodud-reageeri-rakenduse katlaplaat:

facebookinkubaator / luua-reageerida-rakendus

loo-reageeri-rakendus - looge React-i rakendused ilma järgu konfiguratsioonita. github.com

Mis vahe on boileri ja malli vahel?

Nagu Joachim Pense selgelt ütleb, on katlaplaat midagi, mille kopeerite ja kleepite ning lisate lihtsalt dokumendile. Kõige sagedamini tuleb see välja lepingutes, kus keelt kasutatakse ja kasutatakse uuesti, täpsustades näiteks tingimusi ja hoiatusi.

Kirjanikud kasutavad mallidena malle , millel on mõnikord negatiivsed mõjud. Laiemas plaanis on mall mudel või muster, mida kasutatakse uute objektide loomiseks. Kirjutades on see standardiseeritud vorm umbes nagu CV, mida kirjanikud saavad kasutada oma versioonide täpsustamiseks.

Erinevalt katlaplaatidest on mallid kohandatud konkreetseks kasutamiseks. Probleem tekkis minu jaoks, kui õpilased kasutasid CV-de jaoks Wordi malle ja lõpuks nägid nad kõik ühesugused välja.

Mõlemad mallid ja katlaplaadid võivad ärikirjutamise muuta targaks ja kunstlikuks.

Stiilijuhend koodi kirjutamiseks

Sõltumata sellest, kas kasutate boilerplate'i või mitte, on ettevõtted koodi järgimiseks mõned standardid. Üks neist on Style Guide. See püüab selgitada põhilisi stiile ja mustreid, mida kasutatakse erinevates ettevõtetes või organisatsioonides. Üldiselt on reegel, et töötajad peavad kasutusele võtma oma ettevõtte kodeerimisstiili juhendi.

Stiilijuhendis kirjeldatakse hulgaliselt koodide kirjutamise reegleid, nagu vahelehtede ja tühikute taane, muutujate ja funktsioonide nimetamine, vajalike kommentaaride kirjutamine, vormindamine, lähtefailide struktuurid, andmestruktuuride õige meetodi kasutamine, hoidumine tõstmisest, ulatusest, kontrolllausetest ja palju muud.

Programmeerimisstiilid käsitlevad tavaliselt lähtekoodi visuaalset välimust loetavuse eesmärgil. Juba ammu on saadaval tarkvara, mis vormindab lähtekoodi automaatselt, jättes kooderid keskenduma nimetamisele, loogikale ja kõrgematele tehnikatele.

Praktilise punktina säästab arvuti kasutamine lähtekoodi vormindamiseks aega ja seejärel on võimalik ilma aruteludeta jõustada kogu ettevõtte standardid. (Allikas - Wiki).

Need on mõned levinud arutelud, näiteks: Tabs v Spaces Püha sõda , täiusliku Code IDE valimine jne. Huvitav on see, et saate kaasa lüüa nendes aruteludes, mis enamasti toimuvad Redditis . Võite osaleda ka mõnes virnastamisvoo küsimuses ja vastuses .

Veebiarendajate jaoks on JS-i kõige tavalisem stiilijuhend Airbnbi javascripti stiilijuhend. See on avatud lähtekoodiga ja kõik saavad oma panuse anda.

airbnb / javascript

javascript - JavaScripti stiilijuhend github.com

Kui kellelgi on kahtlusi, miks Javascript vajab stiilijuhendit, lugege selle väljaande teist vastust Harrison Shoff, kes on Airbnb programmeerija .

Miks vajab JavaScript stiilijuhendit? · Väljaanne nr 102 · airbnb / javascript

Üks minu lemmikkomponente JavaScripti kogukonna kohta on see, et inimesed otsustavad selle kirjutada nii mitmel erineval viisil ... github.com

Siin on mõned tänapäevaste populaarsemate keelte stiilijuhised:

DotNeti koodi vormindaja

Java: Google-Java-vorming

Javascripti standardstiil (erineb airbnb javascriptist)

PHP kodeerimisstandardid Fixe r

Python: Google'i YAPF

Rubiin: Rubokop

Veel Boilerplate'ilt: OOP kontseptsioon

Objektorienteeritud programmides pakutakse klassidele sageli meetodeid eksemplari muutujate hankimiseks ja seadistamiseks. Nende meetodite määratlusi võib sageli pidada katlakiviks.

Ehkki kood varieerub klassiti, on see oma ülesehituselt piisavalt stereotüüpne, et see genereeritaks paremini automaatselt kui käsitsi kirjutatuna.

Näiteks järgmises lemmiklooma esindavas Java-klassis on peaaegu kogu kood boilerplate, välja arvatud lemmiklooma , nime ja omaniku deklaratsioonid :

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

Katlaplaatide määratlus muutub tänapäeval paljudes teistes programmeerimiskeeltes globaalsemaks. See pärineb OOP-st ja hübriidkeeltest, mis olid kunagi protseduurilised, kuid on muutunud OOP-ks. Neil on nüüd sama eesmärk korrata teie loodud koodi mudeli / malli / klassi / objektiga, nii et nad võtavad selle termini vastu. Teete malli ja ainsad asjad, mida iga malli eksemplari jaoks teete, on üksikud parameetrid.

Seda osa nimetame boilerplate'iks. Lihtsalt kasutate uuesti malli, millest olete malli teinud, kuid millel on erinevad parameetrid.

Katlaplaat API-na

Kuna kasutate mallikoodi lihtsalt erinevate parameetritega uuesti, tähendab see, et võiksime luua korduvkasutatavad API-d, mis vajavad ainult sisendite ja väljundite muutmist.

Järeldus

“Boilerplate code” on igasugune näiliselt korduv kood, mida kuvatakse ikka ja jälle, et saada tulemust, mis näib, et see peaks olema palju lihtsam.

Kirjutasin selle artikli, kuna meeskonna juht andis mulle hiljuti korralduse õppida tundma paljusid meie projekti jaoks sobivaid katelde sorte. Seega pidin ma otsima ideaalset katla plaati.

Igasugust tagasisidet hinnatakse! Tormake edasi!