• Névjegy
    • Önéletrajz
    • Magamról
  • Informatika
    • Komplex rendszerek készítése
    • Többrétegű alkalmazások
  • Utazások
    • Barcelona
    • Ciprusi nyaralás
    • Tiroli hegymászás
    • Koppenhága
  • Blog

Sólyom-Nagy Péter

Az Angular és a feladatok elosztása

Előző posztomban a Bootstrap Framework-öt mutattam be röviden, most egy másik hasznos rendszert – az Angular-t ismertetném.

Egy új webalkalmazás készítésénél idegölő munka a JavaScript kódokat megírni és karbantartani. Ha még arra is figyelünk, hogy a rendszerünk minden böngészőben jól és ugyanúgy működjön, akkor ez hatványozottan igaz. Persze ha már rutinosak vagyunk és van egy jól bevált gyűjteményünk, akkor könnyebb, de kíváncsi vagyok, hányan merik feltenni a kezüket, hogy “ők mindent megoldottak”, vagy “nekem up-to-date gyűjteményem van”.

Az internet folyamatosan fejlődik. A felhasználói élmény (User eXperience) elvárások folyamatosan változnak. Ki az, aki naprakészen tudja ezt követni?

Hát erre a problémára adnak választ a szabadon hozzáférhető frontend/backend framework rendszerek. Most a frontendről fogunk beszélni.

Előnyei:

  • Széles körben elterjedt rendszerek, ezért a kódot kiforrottság jellemzi
  • Folyamatosan fejlődik, újabb és újabb verzió készül
  • Az adott verzión belül könnyen frissíthetők (1.x.x)
  • Számos népszerű böngészőben közel ugyanazt az élményt adja

Hátrányai (vannak ilyenek is):

  • Egy kifutott “major” verzió frissítése problémás lehet (1.x.x -> 2.x.x)
  • Ha egy frissítéssel hiba kerül a rendszerbe, manuálisan nehezen javítható, meg kell várni az újabb verziót
  • Egyedi kód nehezebben illeszthető be

Számos frontend rendszer található a világhálón. Én az Angular-ral ismerkedtem meg, ezért ezt fogom bővebben kifejteni, de az érvek nagyjából mindegyik frontend-framework-re igazak.

Egy kis történelem…

A szerver oldali fejlett kiszolgáló rendszerek (PHP, ASP, NodeJS, stb) összetett műveletek elvégzésére képesek és a hardver megfelelő méretezésével sok probléma orvosolható. Azonban a mobil-eszközök és a webalkalmazások rohamos terjedésével egyre nagyobb problémát okoz a világháló leterheltsége, hogy messzire ne menjünk, az elfogyó IPv4 címek miatt már 30 éve kongatják a vészharangot.

A terhelés csökkentésének egyik módja, hogy a feladatok egy részét a kliens oldalon végezzük el. Ez nem egy új ötlet.

Régebben – mikor a számítógépek (kezdetleges) számítási teljesítménye közel egy szinten mozgott a kliens és a szerver oldalon – egyszerűbb volt helyben elvégezni a feladatot és csak az eredményt felküldeni a szerverre, ami elsősorban “tárolási” feladatokat látott el.

A hardver fejlődésével a szoftver oldalon is egyre bonyolultabb feladatok jöttek létre, vagyis elvárás volt a nagy számítási teljesítmény, amit az otthoni és irodai kliens gépek már nem tudtak nyújtani, így a hangsúly a szerver oldalra tolódott, hiszen egyszerűbb volt egy darab központi gépet lecserélni egy szuper-számítási képességekkel rendelkező változatra, mint mondjuk száz dolgozó munkaállomását közel hasonló arányban fejleszteni. Ekkor jött el a “szerverek kora”.

Hogy egész pontos legyek, volt egy korábbi szerverek kora is, amikor a munkaállomások még csak terminálokként funkcionáltak. Hagyományos analóg telefonvonalon keresztül lehetett utasításokat adni a központi gépnek, azonban ebben az időben még nem beszélhetünk igazi világhálóról, mivel ezek a számítógépek csak relatív kis közönség számára voltak elérhetőek. Az őskorban a számítógépeket a nagy amerikai egyetemek, illetve az állami szervek üzemeltették katonai, vagy tudományos célokra.

A mai világban – mikor mindenkinek a zsebében ott lapul egy okostelefon – ami akár ezerszer gyorsabb, mint egy 1999-ben piacra dobott Pentium III-as processzor – a trend megfordulni látszik. A mobil-eszközök, a munkaállomások mindenféle nehézség nélkül el tudnak végezni bonyolult számításokat és ezt valóban ki lehet használni.

A web világában többféle próbálkozás volt (pl. Flash, Java Applet), amik sokat dobtak a látványon, de különböző okok miatt vagy nem lettek népszerűek, vagy olyan sok biztonsági kockázatot hoztak magukkal, hogy mostanra szinte az összes böngésző leépítette a támogatásukat. A Flash a kilencvenes évek közepétől élte virágkorát, a net tömegével ontotta a jól, vagy kifejezetten rosszul (rondán) megalkotott Flash-alapú honlapokat. Hosszútávon viszont kiedrült, hogy a Flash-en keresztül a számítógépek igencsak sérülékenyek, ezért a javítások kiadása szinte folyamatos volt. Szerencsére ez a korszak is lecseng lassan…

Hanem az aktuális web-technológiák mellett mindig is ott volt a JavaScript. Az első verziót már 1995-ben kiadták – igaz még Mocha néven. Meglepő módon képes volt követni a technológiai fejlődést és folyamatosan megújulva ma még erősebb a jelenléte, mint valaha. Talán abban rejlik a sikere, hogy nem kell hozzá különleges szerkesztő, a legegyszerűbb Notepad-ben is előállíthatunk bonyolult szkripteket, a lehetőségek szinte korlátlanok.

Erre a potenciálra épít az Angular is – ahogy eredeti neve, az AngularJS utal rá.

Mire is jó az Angular?

A korábban bemutatott Bootstrap elsősorban a megjelenítés mikéntjét hivatott megoldani egy egységes stílussal. Ezt elsősorban StyleSheet-ek és minimális JavaScript segítségével oldja meg. Fő szempont a látvány. Ha a működést is fel akarjuk tuningolni, akkor jön képbe az Angular.

Telepítésével egy olyan JavaScript könyvtárhoz jutunk, amivel szinte bármit meg tudunk valósítani, amire csak szükségünk van a kliens oldalon.

Az Angular JS fontosabb tulajdonságai:

  • A böngészők támogatásával gyakorlatilag azonnal telepítés nélküli naprakész kliens alkalmazásokat futtathatunk
  • Platformfüggetlen működés (Android, iOS, Linux, Windows, Mac)
  • Magasan optimalizált, használatra kész kód
  • Szerver oldali technológiától független használat
  • Modularizált rendszer a gyorsabb betöltéshez (code-splitting)
  • Előre gyártott sablonok a megjelenítéshez
  • Tesztelhetőség

Ezeket az opciókat saját készítésű kóddal szinte lehetetlen megvalósítani, egyértelmű az Angular előnye a saját fejlesztéssel szemben.

Hogy oszlanak el a feladatok?

Végsősoron mit lehet a kliensre bízni, és mi az, amit a szerver kell, hogy elvégezzen? A döntést többféle szempont szerint lehet mérlegelni. Szempont lehet a hatékonyság, de fontos szempont a biztonság is. Ma már súlyos baklövésnek számít, ha valaki “jóhiszeműen” feltételezi, hogy a látogató nem fog visszaélni a tálcán kínált lehetőségekkel.

Biztonság – integritás és jogosultság

Ha a webalkalmazásunkban lehetőséget adunk a felhasználónak adatrögzítésre, akkor feltétlenül gondoskodni kell a bevitt adatok helyességéről. Az Angular számos funkciót biztosít erre. A HTML5 saját validálási módszerein alapuló eljárások mellett egyedi ellenőrzéseket is tudunk készíteni megelőzve ezzel egy felesleges kérést a szerver felé. Ha minden adat rendelkezésre áll, miért ne dönthetne a kliens az adatok helyességéről? Természetesen ez az ellenőrzés nem helyettesíti a szerver oldali vizsgálatot. A jogosultság ellenőrzése mindenképp a szerver feladata, de ide tartozik az integritás ismételt validálása.

Frissítés, adatforgalom csökkentése

A weboldalak nettó adatartalma a legtöbb esetben a töredéke a bruttó méretnek. Ez szükségszerűen adódik a kialakított designból. Minek hát olyan információt újból lekérni, ami nem változik a frissítések között? A valós adat kommunikálására kézenfekvő megoldás a JSON formátum használata, ami tényleg minimális többletet ad a hasznos információhoz. Az Angular és a JavaScript ebben szerencsére a partnerünk. A frissítés során csak a hasznos adatot kell elkérnünk JSON formában, minden más változatlan marad.

Az Angular egyfajta extraként arra is képes, hogy fejlett eseményvezérelt rendszerén keresztül egy adat több helyen történő megjelenítését összehangolja, így  tovább csökkenthető a lekérések száma.

Röviden összefoglalva, az Angular bámulatos módon bővíti ki a fejlesztő lehetőségeit, amit vétek lenne kihagyni.

Remélem, hogy posztom felkeltette az érdeklődésedet és utánaolvasol ennek a technológiának.

További olvasnivaló

https://angular.io/

Choosing a Front End Framework: Angular vs. Ember vs. React

AngularJS bevezető a w3schools.com-on

 

 

Angular FrontEnd Framework HTML5 JSON Web Design
2017-03-30 Sólyom-Nagy Péter

Post navigation

Biztonság Magyarországon… → ← Bootstrap és társai

Vélemény, hozzászólás? Kilépés a válaszból

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöljük.

  • Magyar
  • English
  • English
© Copyright 2003-2016 - Sólyom-Nagy Péter
Impresszum
We use cookies to ensure that we give you the best experience on our website. If you continue to use this site we will assume that you are happy with it.Ok