NWT usmeni Flashcards
Razlike u mogućnostima (front-end vs. back-end)
● Back-end tehnologije se izvršavaju na serveru
○ obrađuju pristigle zahteve (HTTP request)
○ omogućavaju perzistenciju podataka (database)
○ putem šablona generišu odgovore (HTTP response)
● Front-end tehnologije se izvršavaju na klijentu (web browser-u)
○ učestvuju u prikazu veb stranice
○ vrše interakciju sa korisnikom
○ (samostalno) upućuju zahteve i obrađuju odgovore
Multi-page vs. single page aplikacije
Prednosti tradicionalne (multi-page) aplikacije
● brži odziv na početku
● manja zavisnost od JavaScript podrške
● lakša kontrola pristupa
● jednostavnije postići SEO
Prednosti single-page aplikacije:
● brži odziv tokom rada
● manje opterećenje servera
● funkcionisanje i pri gubitku konekcije
● odvojen GUI od podataka, pa isti back-end može opslužiti različite platforme (web, Android, iOS)
Angular
● Open-source framework za razvoj front-end komponente web aplikacija.
● Angular je započet kao Google projekat 2010. godine pod nazivom AngularJS.
● Omogućava implementaciju single page aplikacija, ali se može koristiti i u multi-page
aplikacijama.
● Uz Angular, jednom učitana veb stranica, može vršiti interakciju s korisnikom bez nužnog
učitavanja nove veb stranice.
● Za implementaciju koristi TypeScript jezik koji se potom prevodi u JavaScript.
● Omogućava modularan razvoj što olakšava organizaciju programskog koda i pogoduje
timskom radu.
● Moguća su proširenja funkcionalnosti uključivanjem dodatnih biblioteka.
- godine AngularJS projekat nastavlja razvoj kao Angular 2:
● izvorni kod je napisan ispočetka
● arhitektura je značajno izmenjena
● omogućena je modularizacija (grupisanje programskih komponenti)
● poboljšana podrška za SEO
AngularJS i Angular
● AngularJS za implementaciju koristi JavaScript jezik.
● Razvoj AngularJS radnog okvira je dostigao verziju 1.8.x.
● AngularJS je u stanju dugoročne podrške (Long Term Support - LTS).
● Angular za implementaciju koristi TypeScript jezik.
● Pored veb aplikacija, Angular podržava i razvoj mobilnih aplikacija (uz pomoć Apache Cordova projekta).
● Angular aplikacije se baziraju na komponentama (tipskim elementima veb stranice).
● Performanse Angular aplikacija su značajno napredovale u odnosu na AngularJS.
TypeScript sintaksa
● TypeScript sintaksom Angular omogućava:
○ statičko tipiziranje (static typing) - varijablama se deklaracijom pridružuje tip čime se
izbegavaju potencijalne greške (varijabli je tada moguće dodeliti isključivo vrednosti
koje odgovaraju deklarisanom tipu)
○ objektno orijentisan koncept - programski kod organizovan u klase
○ reaktivno programiranje - rad sa asinhronim tokovima podataka
● Osim toga, TypeScript rešava nedostatak podrške za neke od mogućnosti predviđene ECMAScript standardom.
● TypeScript nije zamena za JavaScript već njegova nadgradnja.
● JavaScript se može smatrati ‘mašinskim jezikom’ za web browser-e.
TypeScript - statičko tipiziranje
Varijable u JavaScript-u nisu tipizirane (ne dodeljuje im se tip).
TypeScript
omogućava tipiziranje varijabli čime obezbeđuje njihovu doslednu primenu u skladu sa konkretnim tipom.
TypeScript - reaktivno programiranje
● Hronološki sled sinhronih i asinhronih poziva je različit:
○ sinhronim pozivom se ujedno i “čeka” na odgovor
○ asinhronim pozivom se u međuvremenu obavljaju druge aktivnosti (odgovor će biti obrađen kada bude primljen)
● Asinhroni pozivi su pogodni za izvršavanje dugotrajnih operacija tokom kojih izvršavanje ostalih funkcionalnosti ne treba biti “zakočeno” (npr. odziv korisničkog interfejsa)
● Uporednim asinhronim pozivima se može optimizovati ukupno trajanje izvršavanja pojedinačnih operacija
Izvršavanje TypeScript programskog koda
● Izvorni kod napisan TypeScript sintaksom i sačuvan u .ts fajlovima se prevodi u JavaScript kod i smešta u .js fajlove.
● Tek nakon prevođenja se programski kod može izvršavati u veb pregledaču.
Arhitektura Angular projekta
● Angular projekat sadrži barem jedan korenski modul.
● Moduli objedinjuju komponente i servise.
● Komponente definišu poglede (view) odn. elemente veb stranice.
*
Komponente omogućavaju povezivanje podataka, logike i HTML šablona.
● Moduli mogu sadržati i servise koji su zaduženi za podatke i logiku, a na
raspolaganju su komponentama.
Prednosti razvoja aplikacije putem komponenti
● Između komponenti se može uspostaviti hijerarhijski odnos tako što se unutar jedne komponente može koristiti druga komponenta (selektor jedne komponente se navede u šablonu druge komponente).
● Ovakvo raščlanjavanje prikaza podataka olakšava razvoj što posebno dolazi do izražaja kod složenijih aplikacija.
● Komponentama se olakšava i timski rad na razvoju aplikacije jer se podela posla unutar tima može vršiti po komponentama.
Angular šabloni
● Angular komponente koriste šablone za formatiranje prikaza i za određivanje načina interakcije sa korisnikom.
● Jezik za pisanje šablona je zasnovan na HTML-u.
● Komponente su povezane sa šablonima pomoću @Component dekoratora na jedan od dva načina:
○ svojstvom template čija vrednost sadrži šablon
○ svojstvom templateUrl čija vrednost je putanja do spoljašnjeg fajla u kome je šablon
Sintaksa Angular šablona
● U osnovi Angular šablona je HTML.
● Komponente u svojim šablonima definišu odgovarajuće segmente veb stranice tako da u celini čine validnu HTML stranicu.
● Da bi se kroz šablon ugradila vrednost nekog podatka u veb stranicu koristi se interpolacija. Interpolacija odn. umetanje se postiže navođenjem izraza unutar duplih vitičastih
zagrada: {{ i }}
● Na primer: <h1>{{naslov}}</h1>
Preuzimanje zavisnosti
● Preuzimanje paketa koji su u Angular projekat dodati kao zavisnosti (dependencies) vrši alat npm (Node Package Manager).
● Na sajtu npmjs.com je dostupan pregled raspoloživih paketa koje je moguće koristiti kao zavisnosti.
● Ovaj sajt omogućava pretragu i rangiranje što može biti korisno u pronalaženju i odabiru željenih paketa.
● npmjs.com sadrži pakete namenjene, ne samo razvoju Angular aplikacija, već i mnogih drugih koje za izvršavanje koriste JavaScript jezik.
● npmjs.com poseduje više od milion paketa.
Ispis poruka u konzoli / prikaz alert dijaloga
● Radi lakšeg testiranja i debug-ovanja korisno je služiti se ispisom pomoćnih poruka o toku izvršavanja programa.
● Ove poruke ostvaljaju trag o stanju programa u konkretnom trenutku izvršavanja.
● Jedna varijanta je ispis poruka u konzoli. Naredba bi, na primer, glasila:
○ console.log(‘Hello World’);
● Drugi način prikaza poruka je putem alert dijaloga:
○ alert(‘Hello World’);
● Ispis poruka u konzoli je suptilniji način za praćenje rada programa.