JavaScript već dugo više nije samo skriptni jezik, bez obzira na ime i bez obzira što se kod ne kompajlira, jer se ne radi o pukom spiskusu operacija koje računar na kojem se izvodi treba odraditi, što je principijelna odrelika skriptovanja. Ako zanemarimo definicije i razlike koje se tiču kompajliranja, moderni JavaScript je puno bliži objektno orijentiranom programiranju nego skriptovanju.

Razvoj naprednog JavaScript programiranja donio je najpre biblioteke koje drastično olakšavaju rad u JavaScriptu u području za koje su razvijene.

Razvojne celine, kosturi ili izvorno frameworks se danas razvijaju i sve više koriste.

Kao primere, možemo  da se navede AngularJS framework. Zanimljivo je da je kao deo AngularJS -a implementiran deo biblioteke jQuery sa kojom je potpuno kompatibilan. Još jedna karakteristika AngularJS-a je dvosmerno povezivanje podataka za automatsku sinhronizaciju prikazanih podataka sa onima u memoriji ili bazi podataka.

JavaScript biblioteke

Možda ste primetili da u svakom novom projektu većinom trebaju iste ili vrlo slične funkcije i uglavnom ih je jednostavno kopirati u svaku sledeću skriptu. Čak i osnovna radnja kao što je dohvatanje određenog DOM elementa traži dosta pažnje i upisivanja programskog koda.

Ali, šta ako biste napravili svoju funkciju za dohvatanje elementa na osnovu ID-a, kao na primer:

function byID(id){return element=document.getElementById(id)}

Samo zamislite, samo ova jednostavna metoda može poprilično da ubrza rad sa JavaScriptom za vreme kreiranja web stranica.

Ali, zašto biste kreirali sami svoje funkcije ako možete da implementirate neku od biblioteka u kojima su te funkcije već odrađene a vi ih onda samo upotrebite?

Izbor JavaScript biblioteke

Trenutno se na Internetu može pronaći ogroman broj biblioteka (prema nekim izvorima preko 1000). Ali od takvog “izobilja” u obzir se isplati uzeti samo nekih 20-ak biblioteka. Ostale otpadaju iz raznih razloga (funkcionalnost, pridržavanje standarda, prestanak razvoja i sl.).

Za izbor JavaScript biblioteke su presudna tri faktora: funkcionalnost, namena i veličina biblioteke.

Na primer, na wikipediji imate spisak javascript biblioteka: https://en.wikipedia.org/wiki/List_of_JavaScript_libraries


JavaScript framework (razvojna celina)

Savremenim razvojem web aplikacija u JavaScriptu postala je jasna potreba za nečim fleksibilnijim i moćnijim od postojećih biblioteka. Komponente i funkcionalnosti zajedničke većini web aplikacija nema smisla uvek iznova programirati, tako da se nameće modularni pristup korišćenja već razrađenih i testiranih komponenti.

Ovde dolazimo do razlike između funkcionalnosti i namene biblioteka i razvonih cjelina: dok su biblioteke nešto pomoću čega gradimo i dodajemo funkcionalnost web aplikacije, razvojne cjeline (frameworks) su nešto na čemu gradimo kompletnu web aplikaciju. Na prvi pogled jednostavna razlika koja može postati vrlo komplikovana ako uđete u detalje. Zbog toga pri razlikovanju ne treba gledati pojedinačni projekat da bi se odredilo o čemu se radi, nego se bazirati na koji način koristimo taj projekt u svojoj aplikaciji. Kada koristimo biblioteku, tada najčešće pozivamo neki od njenih objekata/modula kako bismo iskoristili njegovu funkcionalnost. Sa druge strane, kada koristimo framework, ne možemo samo pozvati neku od njegovih funkcija. Moramo se držati njegove arhitekture i na njoj graditi aplikaciju. Framework je zapravo sam za sebe aplikacija bez funkcionalnosti na kojoj gradimo funkcionalnost i interfejs svoje aplikacije.

Stvari koje razvojne celine nude su AJAX, pristup bazama podataka, šabloni, URL templating i session management itd. Sve ove komponente nema potrebe razvijati i debug-ovati. Osim toga, u zavisnosti od razvojne celine koju koristi, programer ima mogućnost i relativno lake migracije na neki od mobilnih operativnih sistema. Naravno, web aplikacije funkcionišu bez problema na mobilnom OS-u, ali moguće je napraviti i aplikaciju koja se instalira na mobilni uređaj.

Većina ovih razvojnih cjelina koristi tzv. MVC (Model-View-Controller) arhitekturu korisničkog okruženja, i većinom imaju implementirano sutomatsko osvežavanje prikazanog okruženja čim se neka od prikazanih varijabli promeni. Model sadrži reprezentaciju svih podataka, view prikazuje podatke koji se nalaze u modelu, a controller sadrži logiku koja kontroliše celu aplikaciju, podatke i interfejs.

Na primer, možete pogledati kako na Wikipediji porede različite JavaScript Framework-e: Comparison of JavaScript frameworks


Reference:

Last modified: Thursday, 23 March 2023, 9:43 AM