Monolitna arhitektura
V kolikor si šele vstopil/a v svet spletnega programiranja (web development), si se najbrž najprej spoznal/a s t.i. monolitno spletno arhitekturo.
Kaj to pomeni?
Monolitna arhitektura spletnih aplikacij pomeni, da sta tako “front-end” (vizualni vmesnik spletne aplikacije), kot tudi “back-end” (programska logika aplikacije) del ene in iste spletne aplikacije. Sta “monolit”.
API
Obstaja pa tudi alternativni način spletne arhitekture, ki je razdeljen v več programov oz. aplikacij (kot vidno na sliki zgoraj).
V osrčju tovrstne arhitekture stoji t.i. API, ki skrbi za podatkovno bazo (branje podatkov, zapisovanje). API je v tem primeru ekvivalent back-enda v monolitni arhitekturi.
Vizualni vmesnik (front-end) je v tem primeru ločena spletna aplikacija, ki kliče API, zato da od njega pridobi podatke, ali pa jih tja pošlje, da se zapišejo v podatkovno bazo.
Prednost tovrstnega načina razvoja je v tem, da se vanj zlahka doda tudi druge vrste uporabniških vmesnikov, na primer mobilne aplikacije (Android, iOS) ali pa računalnški programi. Vsi ti kličejo API na enak način, kot spletni front-end.
Vloga JavaScripta
Spletni front-end igra vlogo vizualnega vmesnika, ki je zgrajen s HTML in CSS kodo. Vendar pa jezikov HTML in CSS ne moremo uporabiti za pridobivanje in procesiranje podatkov iz API-ja. Namesto tega potrebujemo nek programski jezik (HTML in CSS nista programska jezika).
Ob odsotnosti back-enda, nam je v front-endu na voljo le en programski jezik: JavaScript.
Zakaj le JavaScript?
Zato ker brskalniki (Chrome, Firefox, Edge in vsi ostali) podpirajo le JavaScript kot programski jezik, ki deluje znotraj t.i. front-enda. Razlog za to je zgodovinske narave ter posledica t.i. “Vojne brskalnikov” konec 90-ih in v začetku 2000-ih, kjer se je naposled JavaScript uveljavil kot standard.
Pri monolitni arhitekturi JavaScript ni obvezen del front-end razvoja (ampak bolj koristen “bombonček”), medtem ko pri API arhitekturi pa brez JavaScripta na front-endu ne gre.
JavaScript ogrodja
V kolikor gradimo front-end, ki komunicira z API-jem, postane količina napisane JavaScript kode hitro zelo velika. Zato nam prav pridejo t.i. JavaScript ogrodja (ang. frameworks), s katerimi lažje strukturiramo kodo in jo naredimo bolj pregledno.
Tri najbolj popularna JavaScript ogrodja trenutno so React, Vue ter Angular.
Ali se moram naučiti vsa tri ogrodja?
Vsa ta ogrodja uporabljajo zelo podobne koncepte (spletne komponente), zato v kolikor se naučiš enega, ni težko preiti na katerega od ostalih, če/ko je to potrebno.
Vendar pa je pomembno da se, predno greš v učenje ogrodij, dobro naučiš samega jezika JavaScript. Dobro poznavanje tako prednosti, kot tudi slabosti JavaScripta, ti namreč močno olajša delo z omenjenimi ogrodji.
Kdaj uporabiti monolit in kdaj API?
Odvisno od primera ter potreb posameznega projekta.
Kljub temu, da je koncept monolitne arhitekture starejši, še ne pomeni, da je zastarel. Še vedno se pogosto uporablja, saj ima kar nekaj prednosti v primerjavi z API arhitekturo (razvoj monolita je hitrejši in bolj preprost, ter ponavadi boljši za SEO).
Po drugi strani pa ima tudi API arhitektura veliko prednosti, na primer modularnost in lažjo podporo večim vrstam odjemalcev (brskalnik, mobilna aplikacija, računalniški program).
Zatorej je odločitev, katero arhitekturo izbrati, odvisna od potreb konkretnega projekta. Zelo pogosto projekti začnejo svojo pot kot monolit (ker se ga hitreje zgradi) in se nato kasneje razvijejo v API arhitekturo, v kolikor se pokaže potreba po tem.
Na SmartNinja tečaju Web development 1 je fokus na gradnji monolita, na tečaju Web development 2 pa se pridobljeno znanje nadgradi z API arhitekturo ter dobrim razumevanjem JavaScripta.
Preberi si več o Web Development 2 tečaju in se pridruži svetu programerjev, izurjenih v JavaScriptu. Na tečaju boš imel/a priložnost spoznati ostale tečajnike in reševati izzive, ob katerih ti bo ob strani (in na voljo za vprašanja) ves čas stal inštruktor. Izkoristi priložnost za učenje programiranja in nadgradi svoje znanje na SmartNinja tečajih programiranja.