Programiranje

Jamstack: Statična revolucija spletnih strani, ki vodi do spletnega razvoja

Jamstack je vse bolj priljubljena filozofija spletnega razvoja, katere cilj je pospešiti postopek spletnega razvoja in čas prenosa spletnih strani. Izhajajoč iz gibanja devops in tehnik neprekinjene integracije / neprekinjene dostave (CI / CD), ki postajajo običajne v mnogih organizacijah, Jamstack nadaljuje dolgoletne tehnike za ustvarjanje interaktivnih spletnih strani, premikanje izvajanja kode med nalaganjem stran od spletnih strežnikov in na JavaScript v brskalniku in zunanje storitve, do katerih dostopate prek programskih vmesnikov (API).

Kaj je Jamstack? Jamstack, definirano

Jamstack je model spletne aplikacije, ki temelji na treh stebrih in v svojem imenu vsebuje začetnice: JavaScript, API-ji, in markup. Spletne strani za spletno mesto Jamstack so sestavljene iz standardnega označevalnega jezika, zato jih je mogoče zgraditi in preizkusiti kjer koli, brez odvisnosti od strežnikov aplikacij ali strežniških tehnologij, kot je Node.js. Katera koli interaktivna funkcionalnost je na voljo s standardno kodo JavaScript, ki se izvaja v brskalniku in kliče API-je za večkratno uporabo prek protokola HTTPS za dostop do zunanjih podatkov ali katere koli druge funkcije, ki je ni mogoče vgraditi v spletno stran.

Da bi razumeli, zakaj je filozofija Jamstack revolucionarna, razmislite o svežnju LAMP, ki ponazarja način, kako večina razvijalcev razmišlja o spletnem razvoju večino zadnjih 15 let. LAMP pomeni Linux (OS, ki poganja večino spletnih strežnikov), Apač (strežniška programska oprema, ki se izvaja na teh računalnikih Linux), MySQL (baza podatkov, v kateri so shranjene informacije, ki jih potrebuje spletna aplikacija), in PHP / Perl / Python (jezik, v katerem je napisana koda na strani strežnika). Ko brskalnik usmerite na spletno mesto, ki temelji na LAMP, spletni strežnik sproti izvede strežniško kodo, ki sproti generira spletno stran in po potrebi črpa podatke iz baze podatkov MySQL.

Arhitektura LAMP omogoča ustvarjanje dinamičnih in interaktivnih spletnih mest, vendar zahteva tudi zmogljiv spletni strežnik - in več prometa kot spletno mesto dobi, več računalniške moči na strani strežnika potrebuje. Tudi s popolnoma opremljenim strežnikom lahko dinamične spletne strani trajajo dolgo, preden se naredijo in naložijo. V svetu ljudi s kratko pozornostjo, ki brska po spletu na svojih telefonih, je ta zamuda vse bolj nesprejemljiva.

Jamstack se je rodil kot del gibanja "statičnega spleta", ki je nastalo sredi leta 2010 kot odziv na ta tradicionalni model, kako mora spletno mesto delovati. Če želite razumeti Jamstack, morate razumeti današnjo tehnologijo v ozadjustatična spletna mesta.

Statična mesta, statični generatorji spletnih mest in Jamstack

Če bi morali popolnemu novincu razložiti, kako splet deluje, bi lahko šlo nekako takole: Nekje v datotečnem sistemu spletnega strežnika so datoteke HTML, dostopne z naslovi HTTP, ki jih spletni brskalnik prenese in nato interpretira, da ustvari spletno stran . Ampak to je opis a statično mesto: Predpostavlja, da datoteke HTML že obstajajo, ko jih spletni brskalnik išče. Kot smo že videli, so v zadnjem desetletju v večjem delu spleta prevladovala dinamična spletna mesta, ki namesto tega sproti ustvarjajo datoteke HTML kot odgovor na spletne zahteve, pogosto na podlagi parametrov, posredovanih spletnemu strežniku prek obrazcev ali v URL sam.

V zelo zgodnjih dneh spleta, ko so bile spletne strani vedno statične, so mnogi spletni razvijalci ročno pisali kodo HTML. Ko so spletne strani postajale vse bolj zapletene, so prišla orodja, kot je Macromedia's Dreamweaver, ki lahko programsko generirajo te statične strani HTML. Ko se je gibanje statičnega spleta odvijalo sredi leta 2010, se je začel nov val t.i. generatorji statičnih mest začeli nastajati, med njimi Gatsby, Hugo in Jeckyll. Za razliko od orodij WYSIWYG, kot je Dreamweaver, so generatorji statičnih mest usmerjeni v ukazno vrstico in zasnovani za integracijo s procesi CI / CD. Datoteke HTML ustvarijo orodja, ki pogosto temeljijo na vsebini, napisani v programu Markdown, in se samodejno naložijo v repozitorij za nadzor različic, kot je GitHub. Ker so te datoteke označene kot pripravljene za izdelavo, se statične strani na spletnem mestu v živo samodejno posodobijo.

Pomembno je upoštevati to statično v tem kontekstu ne pomeni, da gre za preproste spletne strani 1.0, ki niso interaktivne. Ne pozabite, da lahko te strani vključujejo napredni JavaScript, ki se izvaja v brskalniku in kliče API-jem v podatkovne baze, funkcije na strani strežnika ali gostujoče funkcije brez strežnika. Ker pa se nobena od teh izvedb ne zgodi na samem spletnem strežniku, statično spletno mesto ne potrebuje spletnega gostitelja na industrijski pogon z bazo podatkov. Veliko statičnih mest je razporejenih v omrežja za dostavo vsebin, ali CDN-ji, kjer se vsebina zrcali na več strežnikih po vsem svetu, da se hitro dostavi uporabnikom kjer koli.

Mathieu Dionne, vodja trženja pri podjetju Snipcart, v objavi v blogu opisuje začetke tega novega sveta statičnih spletnih mest in omenja, da so okoli leta 2015 »ustanovitelji Netlifyja ... pravkar prišli do izraza» Jamstack «, da bi se izognili temu. negativni prizvok "statičnega spleta.". Z drugimi besedami, v tem poglavju smo opisovali postopek Jamstack. Zdaj pa moramo na kratko razpravljati o Netlifyju in njihovi vlogi v ekosistemu.

Kaj je Netlify?

Netlify je podjetje za računalništvo v oblaku in spletno gostovanje. Soustanovitelj Netlifyja Mathias Biilmann je skoval izraz Jamstack, storitve Netlify pa so prilagojene strankam, ki želijo graditi spletna mesta na podlagi filozofije Jamstack.

Netlify trdi, da je razbil poseben problem, ki je zadrževal statična spletna mesta, kar je neveljavnost predpomnilnika. Dinamična spletna mesta, ki temeljijo na zbirki podatkov, lahko pojedo veliko strežniških virov, vendar ste lahko prepričani, da bodo vsakemu obiskovalcu, ki se ustavi, postregli z najnovejšo različico vašega spletnega mesta. Ker spletna mesta Jamstack pogosto gostijo več distribuiranih strežnikov CDN-ja, so posodobitve manj enostavne. Vsak strežnik CDN lahko traja od nekaj minut do ur, da ugotovi, da njegova predpomnjena različica spletnega mesta ni več veljavna. Netfliyev CDN omogoča takojšnjo razveljavitev predpomnilnika za datoteke HTML, da se izognejo tej težavi.

Toda Netlify ni edini ponudnik gostovanja v prostoru Jamstack in nima nikakršne blagovne znamke ali lastniškega nadzora nad izrazom. Na voljo so številne rešitve za gostovanje in uvajanje Jamstack, večina velikih ponudnikov oblakov pa se vključuje v akcijo, vključno z AWS, Google Firebase in Microsoft Azure.

Jamstack CMS

Če ste nekdo, ki se mora vsak dan ukvarjati s spletno stranjo, veste, da je izdelava in gostovanje spletnega mesta šele začetek. Potrebujete tudi način, kako ustvariti novo vsebino in jo dodati na svoje spletno mesto. Ker ljudje, ki bodo to počeli, običajno ne bodo programerji, bodo potrebovali uporabniku prijazno orodje - in sicer sistem za upravljanje vsebin, ali CMS. Tradicionalni CMS-ji, kot je WordPress, ponujajo vmesnik uporabniškega vmesnika, kjer lahko vnašate vsebino spletnega mesta, upravljate bazo podatkov, v kateri je ta vsebina shranjena, in gradite dinamične spletne strani, ki to vsebino predstavijo kot odziv na zahteve brskalnika.

CMS-ji za spletna mesta Jamstack delujejo drugače in jih običajno imenujejo brezglave. Brezglavi sistem za upravljanje vsebin ponuja uporabniški vmesnik za vnos in upravljanje vsebine ter zbirke podatkov ali drugih načinov shranjevanja, vendar sam ne generira kode HTML za brskanje. Namesto tega statične strani HTML spletnega mesta uporabljajo JavaScript za klicanje API-jev CMS-a, CMS pa vrne vsebino v obliki, ki jo JavaScript lahko spremeni v spletno stran.

Ta sistem vsebinsko ločuje vsebino od predstavitve, kar je seveda dolgoletni ideal programiranja. Ker ima sistem za upravljanje vsebin dostopen API, lahko do njega zlahka dostopa več spletnih strani. Če ste na primer ustvarili ločeno različico spletnega mesta za mobilne naprave, namizne računalnike in pametne ure, lahko vse te različice dostopajo do iste vsebine, shranjene v sistemu upravljanja vsebin.

Kot lahko pričakujete, ima Netlify v tem prostoru lastno ponudbo, imenovano NetlifyCMS, vendar je na voljo še vrsta drugih ponudb; razvijalec Nebojša Radakovič jih razčleni za vas v objavi v blogu. Na tem seznamu je veliko navdušencev in eno zelo znano ime. Medtem ko smo WordPress uporabili kot primer tradicionalnega sistema za upravljanje vsebin, ga lahko WordPress zaženemo kot brezglavi sistem za upravljanje vsebin tudi za poganjanje spletnega mesta Jamstack.

Jamstack konferenca

Netlify deluje tudi pri ustvarjanju skupnosti Jamstack in sponzorira konference Jamstack. Podjetje je leta 2019 organiziralo dogodke v New Yorku, Londonu in San Franciscu, maja 2020 pa je gostilo virtualni dogodek. Od tega pisanja se lahko prijavite na dogodek v San Franciscu, ki bo predviden za 6. in 7. oktober 2020, čeprav pandemija koronavirusa ima še vedno načrte za jesenske konference.

Če želite posodobitve, lahko konferenco spremljate na Twitterju. Pretekle pogovore si lahko ogledate tudi na kanalu Jamstack Conf YouTube.

[Tudi na: 6 najboljših IDE-jev za JavaScript | 10 najboljših urejevalnikov JavaScript]

Vadnice za Jamstack

Želite iti globlje? Oglejte si te vadnice Jamstack, ki vam bodo dale nekaj praktičnih izkušenj pri izdelavi spletnega mesta Jamstack:

  • Razvijalec David Neal ima dobro uvodno vadnico o izdelavi spletnega mesta Jamstack, ki se začne zelo preprosto, nato pa postaja vse bolj zapleteno.
  • V spletnem dnevniku LogRocket programski inženir Ogundipe Samuel ponuja poglobljen, podroben pogled na izdelavo spletnega mesta za e-poslovanje po načelih Jamstack.
  • Netlify ponuja tri-urno video vadnico, ki zajema veliko temeljev od osnov do naprednejših tem.

Ko boste obvladali osnovne koncepte, opisane tukaj, boste pripravljeni začeti sodelovati z razvojem Jamstacka v svojem poklicnem življenju. Srečno učenje!

$config[zx-auto] not found$config[zx-overlay] not found