Programavimas

„Jamstack“: statinė interneto revoliucija, skatinanti interneto plėtrą

„Jamstack“ yra vis labiau populiarėjanti žiniatinklio kūrimo filosofija, kuria siekiama pagreitinti tiek internetinio kūrimo procesą, tiek tinklalapio atsisiuntimo laiką. Remdamasis „devops“ judėjimo ir nuolatinio integravimo / nepertraukiamo pristatymo (CI / CD) metodais, kurie tampa įprasta daugelyje organizacijų, „Jamstack“ patobulina seniai laikomus interaktyvių tinklalapių kūrimo būdus, perkėlimo laiko kodo vykdymą nukreipia nuo interneto serverių ir link naršyklės „JavaScript“ ir išorinių paslaugų, prieinamų per programų programavimo sąsajas (API).

Kas yra „Jamstack“? Jamstack, apibrėžta

„Jamstack“ yra žiniatinklio programos modelis, pagrįstas trimis ramsčiais, kurie pateikia jo vardo inicialus: „JavaScript“, API, ir antkainis. „Jamstack“ svetainės tinklalapiai susideda iš standartinės žymėjimo kalbos, todėl juos galima kurti ir išbandyti bet kur, nepriklausant nuo programų serverių ar serverio technologijų, pvz., „Node.js“. Bet kokią interaktyvią funkciją teikia standartinis naršyklėje vykdomas „JavaScript“ kodas, kuris skambina į daugkartinio naudojimo API per HTTPS, kad gautų prieigą prie išorinių duomenų ar bet kokių kitų funkcijų, kurių negalima įdiegti pačiame tinklalapyje.

Norėdami suprasti, kodėl „Jamstack“ filosofija yra revoliucinė, apsvarstykite LAMP kamino pavyzdį, kuris rodo, kaip dauguma kūrėjų mąstė apie interneto plėtrą per pastaruosius 15 metų. LAMP reiškia „Linux“ (OS, kuri valdo daugumą interneto serverių), Apache (serverio programinė įranga, veikianti tose „Linux“ mašinose), „MySQL“ (duomenų bazė, kurioje saugoma reikalinga žiniatinklio programa) ir PHP / Perl / Python (kalba, kuria parašytas serverio pusės kodas). Kai nukreipiate savo naršyklę į LAMP pagrįstą svetainę, žiniatinklio serveris vykdo serverio pusės kodą, kuris generuoja tinklalapį skriejant, prireikus paimdamas duomenis iš „MySQL“ duomenų bazės.

LAMP architektūra leidžia kurti dinamiškas ir interaktyvias svetaines, tačiau tam taip pat reikalingas galingas interneto serveris - ir kuo daugiau lankytojų gauna svetainė, tuo daugiau reikia kompiuterio galios serverio pusėje. Net turint pilnai veikiantį serverį, dinaminių tinklalapių kūrimas ir įkėlimas gali užtrukti ilgai. Žmonių, kuriems skirtas trumpas dėmesys, naršymas internete, naudojant telefoną, pasaulyje, toks vėlavimas tapo vis labiau nepriimtinas.

„Jamstack“ gimė kaip „statinio interneto“ judėjimo dalis, kuris atsirado 2010-ųjų viduryje kaip reakcija prieš šį tradicinį svetainės veikimo modelį. Norėdami suprasti „Jamstack“, turite suprasti šiandieninę technologijąstatinės svetainės.

Statinės svetainės, statinių svetainių generatoriai ir „Jamstack“

Jei visiškai naujokui turėtumėte paaiškinti, kaip veikia internetas, tai gali būti maždaug taip: Kažkur žiniatinklio serverio failų sistemoje yra HTML failai, prieinami HTTP adresais, kuriuos interneto naršyklė atsisiunčia ir interpretuoja, kad sukurtų tinklalapį. . Bet tai yra a aprašymas statinė svetainė: Manoma, kad HTML failai jau egzistuoja, kai žiniatinklio naršyklė jų ieško. Kaip jau matėme, didžiąją dalį interneto per pastarąjį dešimtmetį dominavo dinamiškos svetainės, kurios, reaguodamos į žiniatinklio užklausas, HTML failus generuoja sklandžiai, dažnai remdamosi parametrais, perduotais žiniatinklio serveriui per formas arba Pats URL.

Pačiomis ankstyvosiomis interneto dienomis, kai tinklalapiai buvo visada statiški, daugelis interneto svetainių kūrėjų HTML kodą rašė ranka. Interneto puslapiams vis labiau komplikuojantis, atsirado tokie įrankiai kaip „Macromedia“ „Dreamweaver“, kurie tuos statinius HTML puslapius galėjo generuoti programiškai. 2010-ųjų viduryje prasidėjus statiniam interneto judėjimui, atsirado nauja vadinamoji banga statinių svetainių generatoriai pradėjo ryškėti Gatsbis, Hugo ir Jeckyll. Skirtingai nuo WYSIWYG įrankių, tokių kaip „Dreamweaver“, statiniai svetainių generatoriai yra valdomi komandų eilutėmis ir skirti integruoti į CI / CD procesus. HTML failus sugeneruoja įrankiai, dažnai paremti turiniu, parašytu „Markdown“, ir automatiškai įkeliami į versijų valdymo saugyklą, pvz., „GitHub“. Kadangi šie failai yra pažymėti kaip paruošti gamybai, statiniai tiesioginės svetainės puslapiai automatiškai atnaujinami.

Svarbus dalykas, kurį reikia nepamiršti, yra tas statinis šiame kontekste nereiškia, kad tai paprasti žiniatinklio 1.0 puslapiai, kurie nėra interaktyvūs. Atminkite, kad šiuose puslapiuose gali būti išplėstinė „JavaScript“, vykdoma naršyklėje ir atliekanti API iškvietimus į duomenų bazes, serverio funkcijas ar priglobtas serverio funkcijas. Kadangi nė vienas iš šių įvykių nevyksta pačiame žiniatinklio serveryje, statinei svetainei nereikia pramoninio tinklo pagrindinio kompiuterio su duomenų baze. Daugybė statinių svetainių yra dislokuotos turinio pristatymo tinklai, arba CDN, kai turinys yra atspindėtas keliuose serveriuose visame pasaulyje, kad būtų greitai pristatytas vartotojams bet kur.

Mathieu Dionne, „Snipcart“ rinkodaros vadovė, tinklaraščio įraše aprašo šio naujo statinių svetainių pasaulio ankstyvąsias dienas ir mini, kad maždaug 2015 m. „Netlify“ įkūrėjai ... ką tik sugalvojo „Jamstack“, kad galėtų dirbti. neigiamą „statinio žiniatinklio“ atspalvį. Kitaip tariant, šiame skyriuje aprašėme „Jamstack“ procesą. Bet dabar turime trumpai aptarti „Netlify“ ir jų vaidmenį ekosistemoje.

Kas yra „Netlify“?

„Netlify“ yra debesų kompiuterijos ir interneto prieglobos įmonė. „Netlify“ įkūrėjas Mathiasas Biilmannas sukūrė terminą „Jamstack“, o „Netlify“ paslaugos pritaikytos klientams, norintiems kurti svetaines, remiantis „Jamstack“ filosofija.

„Netlify“ teigia, kad įveikė konkrečią problemą, kuri stabdė statines svetaines, o tai yra talpyklos pripažinimas negaliojančia. Duomenų bazėmis pagrįstos dinaminės svetainės gali suvalgyti daug serverio išteklių, tačiau galite būti tikri, kad jie pateiks naujausią jūsų svetainės versiją visiems lankytojams, kurie užsuks. Kadangi „Jamstack“ svetainės dažnai priglobiamos keliuose paskirstytuose CDN serveriuose, naujinimai nėra tokie paprasti. Kiekvienas CDN serveris gali užtrukti nuo kelių minučių iki valandų, kol išsiaiškinsite, ar jo talpykloje saugoma svetainės versija nebegalioja. Netfliy CDN suteikia greitą HTML failų talpyklos negalėjimą, kad būtų galima išspręsti šią problemą.

Bet „Netlify“ nėra vienintelis prieglobos paslaugų teikėjas „Jamstack“ erdvėje ir jis neturi jokio prekės ženklo ar nuosavybės teisės kontroliuoti terminą. Yra daugybė „Jamstack“ prieglobos ir diegimo sprendimų, o dauguma didžiųjų debesų tiekėjų įsitraukia į veiksmą, įskaitant AWS, „Google Firebase“ ir „Microsoft Azure“.

„Jamstack CMS“

Jei esate kažkas, kas kasdien turi susidoroti su svetaine, žinote, kad svetainės sukūrimas ir priglobimas yra tik pradžia. Jums taip pat reikia būdų sukurti naują turinį ir pridėti jį prie savo svetainės. Kadangi žmonės, kurie tai darys, paprastai nebus programuotojai, jiems reikės patogaus naudoti įrankio, būtent turinio valdymo sistema, arba TVS. Tradicinės TVS, pvz., „WordPress“, siūlo vidinę vartotojo sąsają, kurioje galite įvesti svetainės turinį, tvarkyti duomenų bazę, kurioje saugomas tas turinys, ir kurti dinaminius tinklalapius, kurie pateikia tą turinį atsakydami į naršyklės užklausas.

„Jamstack“ svetainių TVS veikia skirtingai ir paprastai jos vadinamos be galvos. TVS be galvos siūlo vartotojo sąsają, skirtą turiniui įvesti ir valdyti, ir duomenų bazę ar kitas jo saugojimo priemones, tačiau pati negeneruoja HTML kodo, kad naršyklė galėtų juos analizuoti. Vietoje to, statiniai svetainės HTML puslapiai naudoja „JavaScript“, kad paskambintų į TVS API, o TVS pateikia turinį tokiu formatu, kurį „JavaScript“ gali paversti tinklalapiu.

Ši sistema kruopščiai atskiria turinį nuo pateikimo, kuris, žinoma, yra senas programavimo idealas. Kadangi TVS turi prieinamą API, keli tinklalapiai gali lengvai ją pasiekti. Pavyzdžiui, jei sukūrėte atskiras svetainės mobiliesiems, staliniams kompiuteriams ir išmaniesiems laikrodžiams versijas, visos šios versijos gali pasiekti tą patį turinį, kuris saugomas TVS.

„Netlify“, kaip galite tikėtis, šioje vietoje turi savo pasiūlymą, vadinamą „NetlifyCMS“, tačiau yra daugybė kitų pasiūlymų; kūrėjas Nebojsa Radakovičius juos sugadina tinklaraščio įraše. Tame sąraše yra daugybė naujokų, taip pat vienas labai žinomas vardas. Nors mes naudojome „WordPress“ kaip tradicinio TVS pavyzdį, „WordPress“ galima paleisti kaip TV be galvos, kad būtų galima valdyti ir „Jamstack“ svetainę.

„Jamstack“ konferencija

„Netlify“ taip pat siekia sukurti „Jamstack“ bendruomenę ir remia „Jamstack“ konferencijas. Bendrovė surengė renginius Niujorke, Londone ir San Franciske 2019 m., O virtualų renginį surengė 2020 m. Gegužės mėn. Nuo šio rašymo galite užsiregistruoti į San Francisko renginį, numatytą 2020 m. Spalio 6–7 d. koronaviruso pandemija vis dar turi rudens konferencijos planų.

Jei norite atnaujinimų, galite sekti konferenciją „Twitter“. Be to, praėjusius pokalbius galite peržiūrėti „YouTube“ kanale „Jamstack Conf“.

[Taip pat: 6 geriausi „JavaScript“ IDE | 10 geriausių „JavaScript“ redaktorių]

„Jamstack“ pamokos

Norite gilintis? Peržiūrėkite šias „Jamstack“ mokymo programas, kurios suteiks jums praktinės patirties kuriant „Jamstack“ svetainę:

  • Kūrėjas Davidas Nealas turi gerą įvadinę pamoką, kaip sukurti „Jamstack“ svetainę, pradedant labai paprastai, o po to darantis vis sudėtingesnę.
  • „LogRocket“ tinklaraštyje programinės įrangos inžinierius Ogundipe'as Samuelis pateikia išsamų ir nuoseklų žingsnį kurdamas elektroninės prekybos svetainę pagal „Jamstack“ principus.
  • „Netlify“ siūlo trijų valandų trukmės vaizdo pamoką, apimančią daugybę dalykų nuo pagrindų iki pažangesnių temų.

Įvaldę čia išdėstytas pagrindines sąvokas, būsite pasirengę pradėti dirbti su „Jamstack“ plėtra savo profesiniame gyvenime. Laimingo mokymosi!