Tema
/
Interneto svetainių kliento dalies kūrimas JS
📖 Teorija

Ką pastatei — du kartus

Sveikinu — pastatei tikrą, į gamybą panašią programą. Ir svarbiausia: pastatei ją du kartus. Prieš išplėsdami, pažiūrėk į visą arką.

Part 1 — platforma be įrankių (1–8 pamokos). Pradėjai nuo failų ir naršyklės, be jokio surinkimo. DOM rankomis, įvykiai, fetch, atvaizdavimas, būsenos. Ir pamoka Nr. 8 — skausmas: dešimt laisvų kintamųjų, trys vaizdai, ir „pamiršk vieną perpiešimą — sąsaja tyliai meluoja".

Part 2 — tikros svetainės funkcijos (9–14 pamokos). 9 pamokoje pub/sub išsprendė tą skausmą: toggleFavorite iš trijų perpiešimų susitraukė į vieną notify(). Tada — localStorage, lentelės, formos su validacija, modalai su fokuso gaudymu, maršrutizatorius rankomis. Pilna, veikianti vanilla programa.

Part 3 — TypeScript (15–18 pamokos). Nukreipei kompiliatorių į tą veikiančią programą — ir jis atmetė tikras klaidas: pic.hdurl vaizdo įraše, pic.copyright, kuris gali būti undefined. Įrankiai (Node, npm, Vite) atsirado čia, nes tipams reikia kompiliavimo. Aprašei Apod diskriminuotą sąjungą, tikrinai prie ribos su tipo sargais, įjungei griežtąjį režimą.

Part 4 — išleidimas (19–20 pamokos). Vite build, aplinkos kintamieji, diegimas — ir tiesa apie raktus pakuotėje.

Kodėl du kartus? Nes migracija ir yra argumentas. Jei būtume pradėję nuo TypeScript, tipai atrodytų kaip biurokratija — papildoma sintaksė be aiškios naudos. Bet pastatęs programą pirma be jų, o tada nukreipęs kompiliatorių į savo paties veikiantį kodą, pamatei, kaip jis randa tikras, jau esančias klaidas. Tipai nustojo būti „taisyklės" ir tapo įrankiu, gaudančiu būtent tas klaidas, kurias tu pats parašei.