IQJB részvételi opció 2019

Angular alkalmazás fejlesztés TypeScript-tel

TypeScriptről közérthetően (olykor kicsit pongyolán, lényegre törően)

A WEB alkalmazások alapvetően két részből állnak: szerver oldal, kliens oldal.
A szerver oldali kódot pl. ASP .NET (C#) a WEB Server pl. MS IIS futtatja. A browser HTTP kérésére összeállít egy oldalt, amit a browsernek leküld (HTTP válasz) és azt a browser jeleníti meg, függetlenül attól, hogy az Google Chrome, Internet Explorer, FireFox, Opera vagySafari.

A browserben lévő kliens „kód” alapvetően három részből tevődik össze:

    a statikus rész: HTML,
    a formai megjelenítés: CSS
    és a dinamikát biztosító, DOM-ot manipuláló Javascript kód.

(Microsoft annak idején az Internet Explorerben tett kísérletet a VBScript meghonosítására, de az a vonal leállt)
A Javascript több mint húsz éves nyelv, számos örökölt gyermekbetegséggel. Akkoriban 199x-ben jó volt, de azóta a Világ változott, modern objektum-orientált nyelvek jelentek meg. Mit lehet kezdeni egy „elavult” nyelvvel?

(1) Fejleszteni, hogy közelebb kerüljön a modern objektum-orientált nyelvekhez.

Mi lesz ennek az eredménye?

Nézzünk meg egy videót!

Besenyő Pista bácsi a hülyeségről
Görgessünk 5:46-hoz. Kőolajfinomító .... nem fog nekik sikerülni....építik a nagy gyárat...megy a sok cső keresztül kasul a gyáron... megy a csőben szomorúan a kőolaj.... finomodik, finomodik....de ami a legvégén kijön azért még nagyon rossz....
de miért valami olyanból kezdték ami ennyire rossz? .... Miért nem kezdték valami olyanból, ami már majdnem finom?

Egy meglévő „gyenguska” nyelvhez adnak számos funkcionalitást, finomodik, finomodik, de ami lesz belőle, az még mindig Javascript, ami nagyon „gyenguska”

Guglizz rá bátran ECMAScript-re, ES6-ra!

Miért valami olyanból kezdték a finomítást, ami ennyire rossz? Mert 199x-ben még jó volt. Számos előnye volt, csak a Világ közben változott.

(2) Cseréljük le a Javascript-et! Oóh! De mire? Java-ra? C#-ra? Python-ra? Egy új programnyelvre?

Ehhez le kellene ülnie a browser gyártók, nagy cégek fejeseinek ebben megállapodni. Látsz esélyt erre? IE, Chrome, Opera, Safari, FireFox nagyfőnek egy teremben, vagy pecázás közben egy közös nyelvben megállapodik? De tegyük fel, képletesen. És mi lesz addig elkészített több száz millió sor Javascript kóddal, amit cégek a WEB lapjukba belepakoltak. Ír valaki egy Javascriptről az új nyelve átfordító kódot? Ki fogja ezt tesztelni? Biztos, hogy a régi funkcionalitás az új nyelvben szuperálni fog?
Avagy nem kell átírni semmit, a browser futtassa a régi Javascript-et és az új nyelvet is, aztán a Javascript majd úgyis kihal... Mikor?

(3) Színre lép a TypeScript. Akkor még is a (2) megoldás nyert?

Nem egészen. Ugyanis a browser nem futtatja a TypeScript-et. Csak a fejlesztés idejére, a fejlesztő írja a kódot TypeScript-ben, amit aztán egy compiler, nevezzük inkább transpilernek Javascript-re „fordít”, alakít és browser továbbra is Javascript-et futtatja. A TypeScript nevében szerepel, hogy többek között a Javascript legnagyobb hiányosságát a változók típusosságát oldja meg (zárójel: fejlesztés ideje alatt!). Tudunk definiálni classokat, tudunk örököltetni, tudunk komponens alapon programozni... Hurrá! Azért a kétkedőknek hamar megfordul a fejébe, ki garantálja a TypeScript kód optimális transzpilálását?

Hogy is van ez? Nézzük egy analógiát! Szerver oldalon Elkezdünk C#-ban programozni. Instalállunk Entity Framework-öt, hogy ne kelljen megtanulnunk SQL nyelven kódolni. Irok egy C# LINQ lekérdezést, amit az Entity Framework SQL-re fordít és az SQL Server ezt futtatja. Nézz azért rá alkalom adtán SQL Server Profiler-rel, hogy a fordított SQL lekérdezés mennyire optimális. Na ja, majd veszünk több memóriát, vagy teszünk az SQL Server-be még egy-két processzort! De nem kell SQL-ül megtanulni. Ez is egyfajta előny.
TypeScript-nél is ez a helyzet csak kliens oldalon. Fejlesztünk TypeScript nyelven, ami aztán Javascriptre fordul.... Szóval ami végén kijön az még nagyon nem finom....

Ez van. A browserek még napjainkban is Javascript kódot futtatnak.

A további tippekről, trükkökről részletesen az Angular tanfolyamon esik szó.

címkék

Kapcsolódó tanfolyamok



Ajánlja a blogbejegyzést másoknak is!