Kada je davno na scenu došao Angular, većina nas koji se bavimo web developmentom je pohrlila probati tu „cutting edge“ tehnologiju, odnosno framework. Nakon JavaScripta, nismo bili baš jako izbirljivi. Trebalo nam je nešto novo, modernije, brže i fleksibilnije. I tu je Angular vidio prednost nad ostalim konkurentima. Bilo je to nešto novo, drugačije, moglo se sa manje kôda više toga napraviti i polako ali sigurno se oko Angulara skupila velika zajednica ljudi. Sada kada gledamo, AngularJS nije bio idealan framework ali je tada funkcionirao.
Sada kada gledamo na Angular, čini nam se kao da je netko uzeo mnogo različitih dijelova i zalijepio ih zajedno. I to je držalo vodu određeno vrijeme. Danas je ipak došlo vrijeme za nešto bolje, a to je AngularJS 2. Ipak, trebaju se određene stvari priznati i Angularu „jedinici“, a to su:
- Ispravno korištenje MVC patterna
- Deklarativni User interface
- POJO data models
- Direktive kao način dodavanja novih funkcionalnosti
- Fleksibilnost kod korištenja filtera
- Niste morali pisati mnogo kôda da biste nešto napravili
- In-place DOM manipulacija
- Relevantni service provideri
- Unit testovi
- …
Bilo je tu svega i bila je to dobra avantura, ali došao je kraj iste. Angular je imao i hrpu mana, te ste ga mogli koristiti samo za neke vrste aplikacija. Ako vam se „uklopio“ u domenu na kojoj radite – super. Ako nije – morali ste koristiti neki drugi framework što baš i nije bilo praktično. Ne mogu programeri baš iz projekta u projekt učiti i koristiti nove frameworke. Jednostavno nemate vremena niti energije razvijati nešto za klijente, učiti nove tehnologije i učiti kako tu istu tehnologiju primijeniti pravilno.
Nemojte nas krivo shvatiti – software development zahtjeva konstantno učenje, no postoje određene granice. Ukoliko u godini dana radite na tri projekta, nemate vremena učiti 3 različita frameworka i 3 različite tehnologije. Ako ste naučili Angular, želite ga iskoristiti barem na nekoliko projekata. I tu dolazimo do Angulara 2 koji bi mogao biti s nama naredno razdoblje.
Angular 2 kao spasitelj
Trenutačno se na tržištu nalazi verzija 2.2, no to je sve Angular 2. Odnosno kada kažemo Angular2 mislimo na zadnju verziju Angulara 2, bez obzira da li je to verzija 2.0, 2.1 ili 2.2.
Ono što je vrlo zanimljivo kog ovog frameworka je da nije kompatibilan sa jedinicom, odnosno postoje neke velike razlike između istih. Ako niste nikada probali Angular 1, a željeli biste naučiti dvojku – jednostavno krenite od dvojke. Znanje jedinice vam neće previše pomoći. Dapače, ako ne znate jedinicu, biti će vam lakše učiti dvojku jer nećete misliti o arhitekturi jedinice i kako je ona funkcionirala nego ćete učiti nešto novo i bolje.
Dvojka je izbacila i hrpu koncepata iz jedinice kao što su „$scope“, direktive, definicije modula … i zamijenila ih novim konceptima. Dvojka je mnogo naprednija i spremna za budući web development, odnosno za buduće zahtjeve koji će se tražiti od programera. Ono što bismo izdvojili kao najveće prednosti Angulara 2 su:
- Podrška za web komponente
- Korištenje TypeScripta
- Odlične performanse
- Generalna jednostavnost interfacea
- …
Ako nas pitate – Angular 2 će biti fantastičan framework za velike i zahtjevne projekte iako će vam trebati vremena da ga naučite. Za sada je dostupno jako malo dokumentacije, odnosno ona se svakim danom sve više i više nadopunjuje pa budite strpljivi. Ako nešto nije dokumentirano, ne znači da ne postoji.
JavaScript vs. TypeScript
Angular 1 je radio isključivo sa JavaScriptom, dok je Angular 2 kompatibilan i sa JavaScriptom i sa TypeScriptom. Ono što mi svakako preporučamo je korištenje TypeScripta jer je to idući veliki korak u modernom web developmentu. Točnije, očekujemo da će TypeScript postati standard web developmenta, kao što je to nekada bio JavaScript. Jednostavno TypeScript ima jako puno prednosti koje ne smijemo zanemariti.
- TypeScript je napredniji superset JavaScripta. Glavna prednost TypeScripta je što može kombinirati nekoliko JavaScript karakteristika zajedno, a kad na to dodate još i ‘static typing’ i TypeScript baziranu strukturu kôda dobijete ono što su korisnici i priželjkivali. Korisnici će se napokon moći koncentrirati na feature koje rade, a ne na tehnologiju i TS bi trebao biti super za dugoročne projekte.
- TypeScript se kompajlira, pa će vam tako odmah pomoći naći greške koje ćete napraviti (napisati) dok nešto budete razvijali. Već u ranoj fazi ćete otkriti greške što je krucijalno za održavanje projekta i brzu nadogradnju.
- TypeScript ima fantastičnu podršku za nasljeđivanje i interfacee što vam daje bolje OOP iskustvo nego JavaScript, što će na kraju rezultirati boljim kôdom koji će manje zavisiti jedan od drugoga.
- …
Sve u svemu, Angular 2 je nešto što biste trebali početi učiti, ukoliko se ozbiljno mislite baviti web programiranjem. Frontend koji se sastoji samo od HTML-a, CSS-a i JS-a su prošlost. Sada ćete frontend razvijati u jednom od ovakvih frameworka, a Angular 2 nam se čini kao najbolji izbor trenutačno. Naravno da nije jedini – tu su i Ember i React i mnogi drugi. Ipak, naš izbor je Angular 2. Mnogo je bolji od jedinice, ima mnogo bolje performanse, drugačiju strukturu, koristi TS, ima ugniježdene komponente (engl. Nested components), mnogo ga je lakše testirati, ima bolji templating sustav …
Ono što biste se sada mogli pitati je – od kuda krenuti?
Angular 2 resursi
Mi nismo pobornici tehnike u kojoj mnogo čitate, a malo radite. Kod takvog učenja dolazi do zasićenja informacijama, a kada nešto čitanja trebate napraviti, ne znate od kuda krenuti. Zato je najbolje učiti paralelno i teoriju i praksu. Odnosno, dok ne zaprljate ruke, sigurno nećete naučiti Angular 2. Ono od kuda smo mi krenuli je knjiga ng-book 2. Kroz tu knjigu idete polako i ulazite sve dublje i dublje u Angular 2, te paralelno s teorijom radite na praktičnom primjeru kojeg možete skinuti sa Interneta, a dolazi sa spomenutom knjigom. Nažalost, knjiga ima nekih grešaka u kôdu pa vam se može činiti da ste napravili sve što treba, a da vam kôd ne radi. Te greške se ispravljaju, no nemojte slijepo tipkati bez da razmišljate što radite. Sve u svemu, dobra knjiga i dobra polazišna točka.
Uz knjigu, dobro je pri ruci imati i službenu Angular 2 dokumentaciju. Kao što smo rekli – ona se svakim danom sve više i više nadopunjuje, puna je dobrih primjera i neka vam to bude referenca za sve što radite. U početku bi vam ta dokumentacija mogla biti zastrašujuća jer je ogromna, jer tu možete naći informacije o svim libraryjima, komponentama i slično, no krenite lagano. Krenite sa osnovama i sa 5-minutnim quickstart guideom.
Ako ste ipak osoba koja preferira video tutorijale, tada bismo vam preporučili Egghead. Radi se o stranici koja ima fantastična kratke video tutorijale iz kojih možete puno toga naučiti. Veliki broj videa je besplatan, ali postoji i premium dio na one koji plaćaju. Oni imaju pristup ekskluzivnom sadržaju. Trenutačno imaju 26 videa vezanih uz Angular 2 i preporučamo vam da ih pogledate. Ako vam ni to nije dovoljno, imate i hrpu raznih tutorijala na YouTubeu, Pluralsightu, Udemyju … Zapravo pun je Internet različitih tekstova o Angularu 2, mnogo je dobrih blogova i ako nešto želite naučiti, naći ćete načina. Mi ipak preporučamo da krenete polako sa jednim izvorom, nadopunite ga sa službenom dokumentacijom i to je to. Nakon par mjeseci, trebali biste biti spremni za svakodnevni rad sa Angularom 2 i moći ćete napraviti lijepe i funkcionalne aplikacije. Barem onaj dio koji korisnik vidi. Backend je sasvim druga priča i to ostavljamo za neki drugi tekst.
Autor: B.P.