Mellékleteink: HUP | Gamekapocs
Keres

Angular 2 - a nagy dobás

Gálffy Csaba, 2015. december 21. 14:48
Ez a cikk több évvel ezelőtt születetett, ezért előfordulhat, hogy a tartalma már elavult.
Frissebb anyagokat találhatsz a keresőnk segítségével:

Fontos mérföldkőhöz érkezett az Angular fejlődése, a fejlesztőcsapat béta állapotúvá nyilvánította a 2-es kiadást. A teljes újraírással született új keretrendszerre nem lesz egyszerű az átállás, de a teljesítmény nevében a készítők nem kötöttek kompromisszumot.

Sokéves fejlesztés után immár béta állapotú az Angular 2 - jelentette be múlt héten a fejlesztést végző csapat. A szabad szoftveres webes alkalmazás-keretrendszer második kiadása hatalmas ugrásnak ígérkezik, a szoftvert a fejlesztők az alapoktól újraírták, ennek mellékhatásaként a meglévő angularos alkalmazásokat portolni kell az új kiadásra.

A változásokról még 2014 szeptemberében adta ki az első tájékoztatást a Google, akkor hatalmas meglepetést (és némi felhördülést) keltett a fejlesztőkben a drámai váltás. Az Angular 2 ugyanis vadonatúj szintaxist, új megoldásokat, programozási konvenciókat, sőt, új szakkifejezéseket hozott. A készítők álláspontja szerint az Angular 1.x-ből gyakorlatilag mindent kihoztak, amit ki lehetett, az alapokhoz a sebesség és a hatékonyság érdekében is hozzá kellett nyúlni. Az Angular 2 első kiadása mintegy 8-szoros gyorsulást ígér, de a hosszútávú fejlődés érdekében az Angular 1-ben kötött kompromisszumok nagy részét is újra kellett gondolni.

Fókuszban a teljesítmény

A felhasználói élményt nagyban befolyásolja, hogy a webapp milyen gyorsan töltődik be, milyen hamar jelenik meg a híres "first view", vagyis kezdheti használni az oldalt a felhasználó. Az Angular 2-ben mutatkozik be az Angular Universal, amely még szerveroldalon előrendereli a first view-t, és elsőként küldi le a kliensnek, így a felület élvezhető addig is, amíg a háttérben a webapp java letöltődik.

Alapos átdolgozást kapott a változásdetektálás, amely mintegy tízszer gyorsabban fut Angular 2 alatt, ennek köszönhetően pedig a render-sebesség is mintegy két és félszeres gyorsulást kapott. A fejlesztők szerint az új alrendszer akár több százezer elemi ellenőrzést tud végrehajtani néhány ezredmásodperc alatt, így kompexebb alkalmazások esetében is látványos gyorsulást hoz. Ráadásul az új megközelítés lényegesen kisebb memóriahasználattal is jár, így a belépő szintű okostelefonokon sem ütközik problémába.

TypeScript és Angular 2 - nagy barátság

Egy izgalmas fejlesztés a Web Workers támogatás beillesztése, amely a teljes kódot és az Angular-motor nagy részét külön szálra delegálná. Ez jelenleg gyerekcipőben jár még és az Angular 2 stabil kiadására nem is érik be, hosszabb távon viszont érdemes figyelni erre, hozadéka ugyanis mind a fejlesztők (új debug-funkciók), mind a felhasználók (magasabb teljesítmény) számára jelentős lesz.

Beta - de fejlesztőknek már használható

A készítők közlése szerint a most elérhetővé tett Angular 2 béta állapotú, tehát hivatalosan éles bevetésre még nem ajánlott. Ezt tompítja azért, hogy a Google már több saját webes alkalmazását is Angular 2-ben írja, ezt használja az AdWords vadonatúj felülete, a Google Fiber illetve a cég saját GreenTea CRM rendszere is. Tehát kimondottan nagy, komplex megoldások is épülnek már Angularra, így nyugodtan kijelenthető, hogy új alkalmazások fejlesztésére már egészen biztosan alkalmas, a bevetésre pedig elkészül a végleges kiadás is.

Ugyan a béta státusszal elvben az Angular 2 már a "feature-complete", vagyis minden tervezett képességet és funkciót megkapott, a csapat a stabil kiadásig még néhány fejlesztést igyekszik befejezni. A listán kiemelt helyet kapott a kliensre letöltendő könyvtár méretének optimalizálása, a parancssoros interfész teljesértékűvé emelése, az animációk támogatása, illetve a nyelvi támogatás.

Érdekesség, hogy az Angular 2 már TypeScript-ben, a Microsoft szárnyai alatt fejlődő JavaScript-superset nyelvben készült. Ettől függetlenül angularos alkalmazások készíthetőek más nyelveken is, "sima", ES5-ös JavaScript mellett az új ES6-os JavaScript is használható, támogatott persze a TypeScript is, illetve a Google-féle Dart is. Az Angular-fejlesztők szerint a várakozás az volt, hogy az Angular 2-es alkalmazások nagy része ES5-öt és ES6-ot használ majd, ehhez képest meglepően pozitív fogadtatást kapott a TypeScript, rengeteg fejlesztő állt át a keretrendszerrel együtt erre a nyelvre.

Angular 2 - az egyetlen út előre

A fejlesztők nem bonyolították túl az új verzióhoz kapcsolt üzenetet: az Angular 1.x verziói továbbra is kapnak majd némi törődést, a fejlődési irány azonban az Angular 2, így az új alkalmazásokat már abban érdemes fejleszteni, a régieket pedig minél gyorsabban portolni. A portoláshoz három út is kínálkozik: a faék egyszerűségű megközelítés a meglévő alkalmazás fejlesztését leállítani és újraírni Angular 2-höz. Szerencsére nem ez az egyetlen megoldás, a csapat készített két eszközt is, amivel az átállás problémái túlélhetőek.

Az ngUpgrade eszköz segítségével az Angular 1 és 2-es kód futhat vegyesen, egy alkalmazáson belül, így az Angular 2 előnyei azonnal használhatóvá válnak, és lehetőséget ad fokozatosan, modulonként, elemenként újraírni az alkalmazást. A megközelítés hátránya, hogy szükség van mind az Angular 1, mind az Angular 2 könyvtárak letöltésére, ami lassítja az indulást és több memóriát is zabál. A harmadik megoldás a portolás megkezdése úgy, hogy az app még mindig Angular 1-en fut, de a kód már Angular 2-höz készül. Ez lehetővé teszi, hogy a két szintaxist párhuzamosan használjuk, de csak egyetlen könyvtárat töltsünk le.

Az átállás tehát egészen biztosan nem lesz fájdalommentes, sőt. Nem véletlen, hogy az Angular subreddig egyik vitatémája pontosan ez, a váltás ugyanis akkora ugrást jelent, hogy érdemes megfontolni más, interatívan fejlődő keretrendszereket is, mint az Ember.js.

Az Angular 2 szabadon letölthető a projekt GitHub-oldaláról.

Facebook

Mit gondolsz? Mondd el!

Adatvédelmi okokból az adott hír megosztása előtt mindig aktiválnod kell a gombot! Ezzel a megoldással harmadik fél nem tudja nyomon követni a tevékenységedet a HWSW-n, ez pedig közös érdekünk.