Je li vrijedan JavaScript vanilije? Apsolutno.

Svrha ovog posta je naglasiti važnost osnova JavaScript-a za svakog front-end programera. Reći ću vam zašto biste trebali dobro poznavati čisti (vanilijski) JavaScript. To znači JavaScript bez ikakvih dodatnih okvira ili knjižnica.

Također ću spomenuti nekoliko izvora koji su mi pomogli da naučim ove osnove.

Još jedan razlog iza ovog posta je taj što mnogi ambiciozni web programeri obično preskaču učenje osnovnih JavaScript koncepata poput podizanja, zatvaranja ili prototipova. Oni idu ravno u najtoplije okvire kao što su React ili Angular 2. Pokazat ću vam zašto ovaj pristup nije najprikladniji.

Svi žele programere sa znanjem $ {addTheHotFramework} ...

Dakle, postoji li razlog zbog kojeg biste se trebali mučiti s učenjem JavaScript vanilije?

Teško je postati jak programer bez znanja o srži samog jezika. Kao što morate razumjeti temeljna načela zakona prije nego što uskočite u određeno područje prava. Ova je usporedba čisto slučajna. ?

Razumijem da većina ambicioznih web programera želi biti zaposlena što prije. I ja sam htjela ovo.

Čini se da je puno lakše odbiti tečaj o osnovama JavaScript-a, uskočiti u neki otmjeni okvir, napraviti ToDo popis (pustiti štene da umre), prenijeti ga na GitHub, a zatim početi tražiti posao.

… Ali ulaganje vremena u Vanilla JavaScript dugoročno će se isplatiti

Nemojte me pogrešno shvatiti ovdje. Ni na koji način nisam pristran prema JavaScript okvirima. Upravo je suprotno. Mnogi od njih pomažu vam da napišete čitljiviji i održiviji kod. Omogućuju vam da napišete apstraktniji kod koji je često lakši za otklanjanje pogrešaka.

Ali JavaScript ekosustav razvija se prilično brzo. Stvaraju se novi okviri. Postojećim se dodaju nove funkcionalnosti. I što je najvažnije, mnogi današnji najtopliji okviri na kraju će biti zamijenjeni, poput Angular 1.

U takvim okolnostima, mislite li još uvijek da je poznavanje određenog JavaScript okvira dovoljno za web programera?

Ili je bolje razumjeti kako jezik na kojem se temelje sve te biblioteke i okviri djeluje ispod glave?

Ako posjedujete dobro znanje osnova JavaScript-a,jedina stvar s kojom se trebate upoznati kad započnete raditi s novim okvirom je njegova sintaksa . Osnovna pravila bit će ista jer pod svim slojevima apstrakcija. To je još uvijek samo obični JavaScript.

Ako je vaše znanje ograničeno samo na jedan JavaScript okvir, teško ćete naučiti novi. Različiti okviri često se temelje na različitim skupima JavaScript principa. Dugoročno ćete potrošiti više vremena pokušavajući razumjeti razne okvire i otklanjajući pogreške u kodu koji u njih upisujete.

Svi JavaScript okviri i knjižnice neizbježno se temelje na njegovoj jezgri vanilije.

To bi trebalo uvjeriti svakoga da je poznavanje čistog JavaScript-a dugoročno neophodno. To je preduvjet za svakog uspješnog programera, posebno za onoga koji uglavnom radi u JavaScript ekosustavu.

Osobno iskustvo

Nedavno sam se osvrnuo na svoje putovanje od odvjetnika do web programera. Prošlo je već 18 mjeseci otkako sam napisao svoju prvu JavaScript funkciju i deseti mjesec radim kao profesionalni front-end programer.

Još uvijek se sjećam koliko mi je bilo izazovno otkriti pravi način učenja JavaScript-a, jer nisam imao prethodno iskustvo programiranja. Pokušao sam (i još uvijek pokušavam) mnogo različitih načina da postanem učinkovit učenik. Neki su bili korisniji, neki manje.

Što je najvažnije, ne mogu dovoljno naglasiti koliko mi je bilo korisno što sam od početka naglasak stavljao na učenje čistog JavaScript-a. Okviri su došli kasnije.

Trenutno radim sa React-Redux stogom. Bez obzira na to, često nailazim na problem koji mogu riješiti zahvaljujući svom znanju o JavaScript-u od vanilije. Te bi pogreške bilo puno zahtjevnije riješiti samo znanjem određenog okvira.

Learning React ili Angular 2 neće vas naučiti da se objekti prenose referencom ili kako funkcionira zatvaranje. Pokušati razumjeti ove koncepte pod apstrakcijama koje donosi okvir puno je teže. To otežava razumijevanje jednostavnih JavaScript koncepata.

Nadalje, ako radite s JSX-om (React, Vue, Inferno) ili TypeScriptom (Angular 2), na njemu imate još jedan sloj apstrakcije.

Ako želite razumjeti kako ti okviri rade ispod haube, prvo morate znati kako JavaScript sam radi.

Svoje znanje o čistom JavaScriptu možete provjeriti čitajući izvorni kod vašeg omiljenog okvira.Ne samo da ćete dobiti sliku o tome kako to radi ispod haube, već će vas naučiti puno o svojoj logici, koju možete koristiti u vlastitom kodu. Vidjet ćete da su funkcije okvira koje, čini se, čine čaroliju u vašoj aplikaciji, samo sastavi osnovnih JavaScript koncepata.

Daj mi nešto iz čega mogu učiti

Pitanje koje možda sada postavljate je "Koji su dobri resursi koji mi mogu pomoći u stjecanju pristojnog znanja o vanilin JavaScript-u?".

Postoji mnoštvo tečajeva i knjiga o JavaScript-u i njegovim okvirima. Ipak, malo njih želi vas na sveobuhvatan način naučiti JavaScript od vanilije. Većina ih se specijalizirala za određenu JavaScript tehnologiju.

Ali još uvijek ima dobrih ...

Elokventan JavaScript naučit će vas ne samo osnovama JavaScript-a, već i osnovama programiranja općenito. Ako ste već napredni programer, ova će vam knjiga pružiti svježu perspektivu JavaScript-a i njegovih temeljnih načela.

Još jedan sjajan resurs je serija knjiga Ne znate JavaScript (YDKJS) Kylea Simpsona. Kyle doista zna podučavati. Njegova objašnjenja naprednih JavaScript koncepata prilagođena su početnicima i on ih detaljno pokriva. Već sami naslovi knjiga dat će vam naslutiti što ćete naučiti. „Up & Going“, „Scope & Closures“, „this & Object Prototypes“, „Types & Grammar“, „Async & Performance“, „ES6 & Beyond“. Tu je i nova 7. knjiga o funkcionalnom programiranju u JavaScript-u.

Jedna od sjajnih stvari o rječitom JavaScript-u i YDKJS-u je ta što ih možete dobiti besplatno (provjerite navedene veze). Ali ako ih smatrate korisnima, ne zaboravite podržati autore kupujući ih.

Ako ste više osoba s video tečajevima, možete gledati Kyleove mrežne tečajeve. Pretpostavljam da je najbolje što možete učiniti gledati ih kao pratitelja njegovih knjiga jer su teme iste. Međutim, ti su tečajevi plaćeni.

Još jedan video tečaj koji smatram korisnim je Javascript: Razumijevanje čudnih dijelova Anthonyja Alicee. Na pristupačan način objašnjava što se događa ispod haube JavaScript-a. Obuhvaća napredne koncepte kao što su prototipsko nasljeđivanje, funkcionalno programiranje i lanci opsega.

Naučite JavaScript od vanilije odmah

Ako uložite svoje dragocjeno vrijeme u učenje vanilijskog JavaScript-a, nećete požaliti. Ne samo da sadrži riječ vanilija , već će imati blagotvoran utjecaj na vještine programiranja.

Za mene je najbolji kompromis taj što će vam učenje čistog JavaScripta dugoročno pružiti puno više od ulaganja vremena u određeni okvir. Okviri su samo prečaci. Ispod haube je sve JavaScript.

Vidjet ćete i sami u situaciji kada se okvir koji koristite ima neko neočekivano ponašanje. U tom ćete slučaju biti prisiljeni istražiti ovu pogrešku prolazeći kroz izvorni kod. Jesam li spomenuo da, iako mnogim okvirima nedostaje pristojna dokumentacija, oni imaju prilično složen kôd? Ali hej, komad torte, zar ne? Sigurno ste već proveli puno vremena učeći vanilijski JavaScript. Ili još ne?

Trebate li se sjetiti samo jedne stvari iz ovog posta:

Uvijek imajte na umu da će vam poznavanje JavaScript vanilije pomoći da postanete puno bolji programer. Razdoblje.

Ako vam se svidio ovaj članak, uputite mu nekoliko pljeskanja. Bila bih jako zahvalna.

Ovaj je post izvorno objavljen na mom blogu.

Vidimo se na Twitteru?

David Kopal (@coding_lawyer) | Cvrkut

Najnoviji tweetovi Davida Kopala (@coding_lawyer). front-end programer @ataccama | bivši odvjetnik | bloger ... twitter.com