M.Lempera: Proč pro mě Angular není správná volba rubrika: Programování: JavaScript
Ahoj,
na blogu Milana Lempery mně zaujal tento článek https://blog.lempera.cz/2019/11/proc-pro-me-angular-neni-spravna-volba.html
Angularu se věnuji od verze 1.5, jedna aplikace mi běží na Angular.JS 1.7, druhá jede na Angularu 8. Počáteční nadšení z přechodu z Angular.JS na Angular už vyprchalo a v hlavě mi zůstává spousta otazníků. V článku jsou popsány velmi přesně problémy, se kterými se také potýkám.
Ať už to je RxJS - nikde není srozumitelně popsáno jak správně číst data pomocí HttpClienta a ošetřovat chybové stavy. Na internetu je spousta tutoriálů a v každém je to řešeno úplně jinak. Nakonec jsem skončil u async/await :-(
Change detection - používám Cordovu pro mobilní aplikace, kde používám pluginy v Javě, dost často se mi stávalo, že po dokončení kódu pluginu se nepřekreslil stav komponent, nakonec jsem začal používat this.applicationRef.tick();
což mi připomnělo staré časy s Delphi a Application.ProcessMessages()
Reaktivní formuláře - na první pohled to vypadá úžasně, mám jeden FormGroup, ve kterém je vnořeno 15 FormGroup a 3 FormArray, je tam CustomValidation. Vše funguje perfektně. Bohužel u reaktivních formulářů nelze použít atribut disable přímo v HTML šabloně, ale v kódu dát this.mujForm.get('mojePolozka').disable();
Napsání vlastní direktivy na disabled bohužel neřeší případy, kdy máte komponenty od třetích stran a ty pak nefungují jak by měly (např. PrimeNg)
Velikost aplikace - produkční aplikace má vendor.js o velikosti 2,5MB (AgGrid + PrimeNg) + aplikace má 1,8MB. Je tam zapnuté AOT, kompilace pouze pro es2015. To už mi přijde poměrně hodně.
Nyní připravuji napsání nové aplikace a jsem před rozhodnutím jestli na frontend použiji Angular 8 nebo něco jiného (React, Vue).
Co je pro Vás ta správná volba?
Je na čase skoncovat s falešnou relativizací a takovým tím alibistickým "každému vyhovuje něco jiného". To je v tomto případě jen báchorka pro nerozhodné a nezkušené, když je nechci rozčílit, a dobrá ledatak do debat o tom, zda je hezčí modrá nebo červená barva. Teď musí jít pokora stranou, sorry.
Z populárních technologií je dnes jednoznačně nejlepší základem TypeScript + React (dokonce v tomto pořadí důležitosti). Starý AngularJS je beznadějně naprosto zastaralý a návrhově zcela špatný (svého času to bylo maximum možného). K novějšímu Angularu se vyjadřovat nebudu, protože jsem v něm nic nenapsal. Ale mám pocit, že jeho popularita je založena na falešném slibu, že mít jeden komplexní framework je super. Tisíckrát není. Je to ohromný vendor a technology lock. Jsem ochotný se lockovat k TypeScriptu, protože dává smysl prakticky přesně všude tam kde plain JS. I v tom Reactu mám jen relativně tenkou (byť tvoří vysoký objem) view vrstvu, kterou ale řeší bezezbytku excelentně, tj. efektivně, jednoduše a skrz TSX šablony plně typovaně. Maximum logiky aplikace mám v plain TS modulech, zcela vyčleněno mimo React komponenty a obvykle zcela nezávisle na jakémkoli frameworku. Takový přístup zaručuje dlouhou životnost a hlavně srozumitelnost kódu po dlouhá léta.
Pro zobrazení všech 7 odpovědí se prosím přihlaste:
Nebo se přihlaste jménem a heslem:
Komentáře