Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
ProblemyzczystymjęzykiemJavaScript
ProgramiścizwykleokreślająjęzykJavaScriptbezpoważniejszychrozszerzeńlubfra-
meworkówjakonvanilla”
,czyliczysty.Jesttooryginalnawersjategojęzyka.Niebawem
wyjaśnię,dlaczegoTypeScriptjestdokładnietymdodatkiem,któryrozwiązujeopisane
tunajważniejszeproblemy.Wartojednakzrozumiećichistotę.Wszystkietesłabestrony
dająsięweznakitymdotkliwiej,imwiększyidłuższyjestprojekt.
Kosztownawolność
NajwiększąbolączkąwieluprogramistówJavaScriptujestniestetyjednazgłównychcech
tegojęzyka:wJavaScripcieniemawłaściwieżadnychograniczeńdotyczącychstruktury
kodu.DziękitemurozpoczynanienowegoprojektuwJavaScripciejestświetnązabawą!
Jednakwmiarętworzeniadodatkowychplików,dasięzauważyć,jakszkodliwamoże
sięokazaćtawolność.Przeanalizujmyponiższy,wyrwanyzkontekstu,fragmentpewnej
fikcyjnejaplikacjidorysowania:
functionpaintPainting(painter,painting){
returnpainter
.prepare()
.paint(painting,painter.ownMaterials)
.finish();
}
Widząctenkodbezżadnegokontekstumożnamiećtylkoogólnypomysłnawywołanie
funkcji
paintPainting
.Jeśliktośpracowałnadkodemtejaplikacji,możesobieprzypo-
mnieć,że
painter
jestzwracanyprzezinnąfunkcję
getPainter
.Byćmożeudasięzgadnąć,
że
painting
jestciągiemtekstowym.
Nawetjeślitoprawda,późniejszezmianywkodziemogąunieważnićpoczątkoweza-
łożenia.Byćmoże
painting
niebędziejużciągiemtekstowym,aleinnymtypemdanych,
amożenazwajednejlubkilkumetodobiektu
painter
ulegniezmianie.
Aplikacjenapisanewinnychjęzykachmogąsięnieuruchomić,jeślikompilatoruzna,
żegroziimawaria.Niedotyczytojęzykówtypowanychdynamicznie-którychkodzo-
stanieuruchomionybezsprawdzaniaryzykawystąpieniaawarii-takichjakJavaScript.
Wolność,dziękiktórejpisaniekoduwjęzykuJavaScriptjesttakatrakcyjne,możesię
okazaćogromnymproblemem,jeślizależynamnabezpieczeństwiedziałaniakodu.
Luźnadokumentacja
WspecyfikacjijęzykaJavaScriptbrakujeformalnychzasadopisywaniaprzeznaczenia
parametrówfunkcji,wartościzwracanych,zmiennychiinnychkonstrukcjikodu.Wielu
programistówkierujesięstandardemJSDoc,wedługktóregofunkcjeizmienneopisuje
sięzapomocąkomentarzyblokowych.StandardJSDocdotyczytworzeniakomentarzy
4
|
Rozdział1:OdjęzykaJavaScriptdoTypeScript