Kas yra Cosmos ir kodėl be įrankių
Sveikas atvykęs į kliento pusės kūrimą. Per šį kursą pastatysime Cosmos — NASA „Astronomy Picture of the Day" naršyklę. Ir pastatysime ją du kartus: pirma gryna JavaScript kalba (1–14 pamokos), tada perkelsime į griežtą TypeScript (15–20). Ta migracija — ne formalumas, o kurso argumentas: TypeScript kompiliatorius ras tikras klaidas veikiančiame vanilla kode.
Kur einame (galutinė programa). Cosmos turės: pradžios ekraną su statistika, galeriją su paieška ir datų filtru, kolekciją (lentelė su rikiavimu, puslapiavimu ir mėgstamiausiais), atskiro paveikslo vaizdą (dalinamą nuoroda), nustatymų ir kontaktų formas su validacija, modalus, pranešimus (toasts), klaviatūros sparčiuosius klavišus ir temos perjungimą. Viską — be jokio karkaso (be Vue, be React). Tai sąmoninga: pirma reikia suprasti pačią platformą.
Svarbiausia šios pamokos mintis: JavaScript nereikia surinkimo (build step). Daugybė kursų prasideda nuo npm create vite, ir studentas padaro išvadą, kad įrankiai yra privalomi. Nėra. Naršyklė yra vykdymo aplinka: parašai HTML, CSS ir JS, atidarai naršyklėje — ir veikia. Jokio Node, jokio npm, jokio bundlerio.
Tada kada įrankiai atsiranda? 15 pamokoje — kartu su TypeScript, ir tik todėl, kad TypeScript negali veikti naršyklėje: jį reikia kompiliuoti į JavaScript. Įrankis ateis tada, kai jo prireiks iš tikrųjų — ne anksčiau. „Pajusk skausmą, gauk įrankį."
Šioje pamokoje pastatysime patį mažiausią veikiantį Cosmos: HTML puslapį, kuris įkelia CSS ir vieną JavaScript modulį. Ir susidursime su pirmuoju platformos apribojimu — kodėl failo atidarymas tiesiogiai (dvigubu spustelėjimu) neveikia, o serveris veikia.