Az Angular rendkívül alkalmas eszköz a vállalati alkalmazások fejlesztésére, mivel erőteljes keretrendszer, amely bővíthető és jól illeszkedik a különféle alkalmazás-fejlesztési igényekhez. Egy vállalati alkalmazás sikeres kialakítása nemcsak a megfelelő technológia választásán múlik, hanem a fejlesztéshez alkalmazott megfelelő tervezési mintákon és legjobb gyakorlatokon is. Ebben a fejezetben a legfontosabb eszközöket és megközelítéseket ismertetjük, amelyek segítségével skálázható és fenntartható LOB (Line-of-Business) alkalmazásokat építhetünk Angularban, különös figyelmet fordítva a router-első tervezési mintára.
A router-első megközelítés lényege, hogy az alkalmazás navigációs logikáját már a kezdetektől fogva az alkalmazás struktúrájának középpontjába helyezzük. Ezt a módszert azzal az előnnyel alkalmazhatjuk, hogy könnyedén megvalósíthatunk komplex navigációs struktúrákat, miközben biztosítjuk az alkalmazás modularitását, újrafelhasználhatóságát és fenntarthatóságát. A router-első megközelítés az Angular Router eszköztárát és annak funkcióit használja arra, hogy a különböző komponensek közötti navigációval kapcsolatos logikát a legjobban szétválassza és strukturálja. Ez különösen hasznos lehet nagyobb, bonyolultabb vállalati alkalmazások esetén, ahol a navigációs igények gyorsan változhatnak és bővülhetnek.
A fejlesztés során számos olyan eszközt és technikát alkalmazunk, amelyek támogatják az alkalmazás teljesítményét és rugalmasságát. Az Angular alapú alkalmazások egyik legnagyobb kihívása a teljesítmény optimalizálása, különösen, ha az alkalmazás mérete és komplexitása nő. A különböző Angular funkciók, mint például a lazy loading, segítenek abban, hogy csak a szükséges részek töltődjenek be, ezzel csökkentve a kezdeti betöltési időt és javítva a felhasználói élményt.
A projekt alapját a LemonMart alkalmazás adja, amely egy egyszerű, de jól strukturált LOB alkalmazás példája. Az alkalmazás egy élelmiszerbolt-modellre épít, és bemutatja, hogyan kell a router-első megközelítést alkalmazni egy komplex adatmodell és navigációs logika kezelése érdekében. A projekt kódja GitHub-on elérhető, és tartalmazza az alkalmazás különböző fejlesztési szakaszait. A fejlesztés során alkalmazott eszközök, mint a Jasmine és Cypress tesztelési keretrendszerek, Angular Material és CircleCI alapú CI/CD pipeline-ok biztosítják, hogy az alkalmazás megfelelő minőségellenőrzésen és folyamatos integráción menjen keresztül.
A LemonMart alkalmazás fejlesztéséhez számos fontos technikai döntést kell hoznunk. Először is, mivel LOB alkalmazásról van szó, az alkalmazásnak skálázhatónak kell lennie, hogy később bővíthető legyen új funkciókkal és igényekkel. A legfontosabb adatmodellek köré kell tervezni a navigációt, figyelembe véve, hogy a felhasználói interakciók és a navigációs elemek változhatnak az alkalmazás életciklusa során. A különböző komponensek közötti kapcsolatok és azok újrafelhasználhatósága biztosítja a könnyebb karbantartást és bővítést, amit a vállalati környezetek különösen nagyra értékelnek.
Ezen kívül érdemes a fejlesztés elején gondoskodni a megfelelő autentikációs és autorizációs megoldásról, amely minden modern vállalati alkalmazás alapvető része. Az Angular lehetőséget ad arra, hogy könnyedén integráljuk a különböző hitelesítési szolgáltatásokat, mint például OAuth vagy JWT, amelyek segítségével biztonságosan kezelhetjük a felhasználói adatokat és jogosultságokat.
A felhasználói élmény (UX) is kiemelt szerepet kap a fejlesztés során. A magas szintű UX tervezés segít abban, hogy az alkalmazás könnyen használható legyen, és biztosítja, hogy a felhasználók gyorsan megtalálják a keresett információkat. A design-nak tisztának és intuitívnak kell lennie, így a navigáció nem okoz problémát, és a felhasználói interakciók gyorsak és zökkenőmentesek maradnak. A legjobb gyakorlatok alkalmazása, mint a mobil-barát design, a reszponzív layout és az Angular Material ikonok, mind hozzájárulnak a végeredményhez.
A jövőbeli fejlesztések során a projekt folyamatosan bővülhet új funkciókkal és lehetőségekkel, így a kezdeti szakaszban való jó alapok lefektetése elengedhetetlen. A router-első megközelítés alkalmazásával biztosítható, hogy az alkalmazás navigációja jól skálázható legyen, és minden új komponens vagy funkció egyszerűen integrálható maradjon.
Fontos megemlíteni, hogy az Angular folyamatos fejlődésével és a könyvtárak új verzióinak megjelenésével az alkalmazásokat érdemes rendszeresen frissíteni. A megfelelő eszközkészlet és a legújabb fejlesztési gyakorlatok alkalmazása garantálja, hogy az alkalmazás ne csak a jelenlegi igényeknek feleljen meg, hanem készen álljon a jövőbeni kihívásokra is. Az Angular ökoszisztéma, különösen az olyan eszközök, mint a Nx, jelentősen javíthatják a fejlesztési sebességet és a rendszer hatékonyságát, ha a projekt mérete és összetettsége növekszik.
Hogyan valósítható meg az Angular alkalmazásban a felhasználói felület interaktív elemei, például a toast üzenetek és dialógusok?
Az Angular alkalmazásokban gyakran szükséges a felhasználói élmény fokozása érdekében interaktív visszajelzéseket adni a felhasználónak, például értesítések, megerősítő párbeszédablakok (dialogusok) vagy gyors visszajelzések, mint a toast üzenetek. Az alábbiakban bemutatott megoldások egyszerűsítik a felhasználói felület kezelését, lehetővé téve az értesítések és dialógusok rugalmas használatát, miközben elkerülik a felesleges kód ismétlését.
Az egyik alapvető feladat az, hogy hogyan biztosíthatjuk a megfelelő validációkat a felhasználó bejegyzéseihez, például az e-mail címek és jelszavak megfelelő ellenőrzéséhez. Az e-mail címek validálásához a következő Angular szabályokat használhatjuk:
A jelszó érvényesítése bonyolultabb lehet, mivel számos különböző szabályt kell figyelembe venni, mint a minimális hosszúság, a maximális hosszúság és a biztonsági előírások (például számok, speciális karakterek). Az alábbi kód segíthet a jelszó egyszerű validálásában:
Ha bonyolultabb jelszó biztonsági előírásokat szeretnénk bevezetni, használhatunk egy RegEx mintát a Validators.pattern() funkcióval, vagy a OWASP npm csomagot, amely segít a jelszavak komplexitásának ellenőrzésében.
A jelszó validálásához az OWASP ajánlásait követhetjük, amelyek részletesen tartalmazzák a jelszó összetettségi szabályokat és a minimális jelszó biztonsági követelményeket.
Ezen alapvalidációk alkalmazásával létrehozhatjuk a bejelentkezési formot, amely biztosítja, hogy a felhasználók csak érvényes e-mail címet és erős jelszót használjanak:
Ez a kód biztosítja, hogy a bejelentkezési adatokat csak akkor küldhetjük el, ha azok megfelelnek az előírt szabályoknak.
UI szerviz létrehozása és használata
A felhasználói felület kezeléséhez célszerű egy központi szolgáltatást (UI Service) létrehozni, amely lehetővé teszi az értesítések és dialógusok egyszerű kezelését. Ez segít elkerülni a kód ismétlését, amikor különböző helyeken kell értesítéseket megjelenítenünk, legyen szó toast üzenetekről vagy megerősítő dialógusok megjelenítéséről.
Az alábbiakban egy egyszerű UI szervizt mutatunk be, amely a MatSnackBar és MatDialog komponenseket használja, hogy rugalmasan jeleníthessünk meg üzeneteket és dialógusokat:
A showToast funkció egy egyszerű értesítést jelenít meg, amely időkorlátozott, és automatikusan eltűnik. A showDialog funkció egy modális dialógust nyit meg, ahol a felhasználó dönthet a további lépésekről.
A showDialog visszatérési értéke egy Observable, amely azt jelzi, hogy a felhasználó hogyan reagált: igazat adhat, ha az "OK" gombra kattintott, vagy hamisat, ha a "Mégse" gombra kattintott.
Egy másik lépés, hogy a provideUiService függvénnyel biztosítsuk, hogy a szerviz elérhető legyen az alkalmazás bármelyik komponensében, anélkül hogy explicit módon importálnánk:
Ezáltal a UiService mindenhol elérhető lesz, anélkül, hogy külön kellene konfigurálni a különböző modulokban.
Az alkalmazás navigációjának optimalizálása
A navigáció terén fontos figyelembe venni, hogy az alkalmazás mobilbarát kell legyen, és az egyszerű navigáció elengedhetetlen a felhasználói élmény javítása érdekében. A SideNav (oldalsó navigáció) megoldás lehetővé teszi, hogy az alkalmazás felhasználói könnyedén váltsanak a különböző modulok között, miközben az interfész egyszerű és intuitív marad.
A mobil eszközökön a navigációt egy hamburger menüvel (háromsoros ikonnal) érhetjük el, míg nagyobb képernyőkön az oldalsó navigáció nyitva marad, hogy mindig elérhető legyen. Az oldalsó navigációs sávot csak azok a menüpontok jelenítik meg, amelyeket a felhasználó jogosultságai engedélyeznek. Ez a megoldás különösen fontos lehet, ha alkalmazásunk szerepkövetelményekkel rendelkezik, és szeretnénk biztosítani, hogy a felhasználók csak a számukra engedélyezett funkciókat lássák.
Fontos megérteni
Az említett megoldások segítenek a felhasználói felület dinamikus kezelésében, és a rendszer biztonságát is növelik azáltal, hogy érvényesítjük a felhasználói adatokat. Azonban a legfontosabb, hogy minden alkalmazásnál a felhasználói élmény biztosítása mellett a kód karbantarthatósága és átláthatósága is kulcsfontosságú. Az Angular keretrendszer rugalmasságának kihasználása révén könnyen bővíthetjük az alkalmazást, új funkcionalitásokat adhatunk hozzá, anélkül hogy az meglévő kódot megsértenénk.

Deutsch
Francais
Nederlands
Svenska
Norsk
Dansk
Suomi
Espanol
Italiano
Portugues
Magyar
Polski
Cestina
Русский