Энэ нийтлэлийг бичих явцад ямар ч JavaScript хүрээ үүсгээгүй.
Дараах нь Circle CI сэтгүүлийн "Энэ бол ирээдүй" нийтлэлээс сэдэвлэсэн болно. Та эх хувийг эндээс уншиж болно . Энэ хэсэг нь зүгээр л үзэл бодол бөгөөд ямар ч JavaScript хүрээний нэгэн адил үүнийг нухацтай авч үзэх ёсгүй.
Хөөе, би энэ шинэ вэб төслийг авсан, гэхдээ үнэнийг хэлэхэд би хэдэн жилийн турш вэбийг нэг их кодлож үзээгүй бөгөөд ландшафт бага зэрэг өөрчлөгдсөнийг сонссон. Та энд байгаа хамгийн сүүлийн үеийн вэб хөгжүүлэгч мөн биз дээ?
-Бодит нэр томъёо нь Front End Engineer, гэхдээ тийм ээ, би зөв хүн. Би 2016 онд вэб хийдэг. Дүрслэл, хөгжим тоглуулагч, хөл бөмбөг тоглодог нисдэг дрон, та үүнийг нэрлэж болно. Би саяхан JsConf болон ReactConf-ээс буцаж ирсэн тул вэб програм үүсгэх хамгийн сүүлийн үеийн технологийг мэддэг.
Сайхан байна. Би хэрэглэгчдийн хамгийн сүүлийн үеийн үйл ажиллагааг харуулсан хуудас үүсгэх шаардлагатай байгаа тул би REST төгсгөлийн цэгээс өгөгдлийг авч, ямар нэгэн шүүж болох хүснэгтэд харуулах, серверт ямар нэгэн зүйл өөрчлөгдсөн тохиолдолд шинэчлэх хэрэгтэй. Би jQuery ашиглан өгөгдлийг татаж авах, харуулах гэж бодож байсан уу?
-Бурхан минь үгүй ээ, одоо jQuery-г хэн ч ашиглахгүй. Та React-ийг сурч үзэх хэрэгтэй, энэ бол 2016 он.
Өө, зүгээр. React гэж юу вэ?
-Энэ бол Facebook-ийн зарим залуусын хийсэн гайхалтай гайхалтай номын сан бөгөөд энэ нь танд ямар ч харагдацын өөрчлөлтийг хялбархан зохицуулах боломжийг олгодог тул таны програмд хяналт, гүйцэтгэлийг авчирдаг.
Энэ нь цэвэрхэн сонсогдож байна. Би серверийн өгөгдлийг харуулахын тулд React ашиглаж болох уу?
-Тийм ээ, гэхдээ эхлээд React and React DOM-г вэб хуудсандаа номын сан болгон нэмэх хэрэгтэй.
Хүлээгээрэй, яагаад хоёр номын сан гэж?
-Тэгэхээр нэг нь жинхэнэ номын сан, хоёр дахь нь DOM-г удирдахад зориулагдсан бөгөөд одоо үүнийг JSX дээр дүрсэлж болно.
JSX? JSX гэж юу вэ?
-JSX бол JavaScript-н синтакс өргөтгөл бөгөөд XML-тэй төстэй юм. Энэ нь DOM-г тайлбарлах өөр нэг арга бөгөөд үүнийг илүү сайн HTML гэж бодоорой.
HTML-д юу нь буруу байна вэ?
-2016 он боллоо. HTML хэлийг хэн ч шууд кодлохоо больсон.
Зөв. Ямартай ч, хэрэв би энэ хоёр санг нэмбэл React ашиглаж болох уу?
-Тийм биш. Та Babel-ийг нэмэх хэрэгтэй бөгөөд дараа нь та React-ийг ашиглах боломжтой болно.
Өөр номын сан уу? Бабел гэж юу вэ?
-Өө, Babel бол JavaScript-ийн аль ч хувилбар дээр кодлохын зэрэгцээ JavaScript-ийн тодорхой хувилбаруудыг чиглүүлэх боломжийг олгодог дамжуулагч юм. ReactJS-г ашиглахын тулд Babel-г оруулах шаардлагагүй, гэхдээ ингэхээс нааш та ES5-г ашиглахдаа гацсан байх болно, мөн бодитоор хэлье, энэ бол 2016, та бусад дажгүй хүүхдүүдийн адил ES2016+ дээр кодлож байх ёстой.
ES5? ES2016+? Би энд төөрч байна. ES5 ба ES2016+ гэж юу вэ?
-ES5 гэдэг нь ECMAScript 5 гэсэн үгийн товчлол юм. Өнөө үед ихэнх хөтчүүд үүнийг хэрэгжүүлснээс хойш ихэнх хүмүүсийн онилсон хувилбар юм.
ECMAScript?
-Тийм ээ, скриптийн стандарт JavaScript нь 1995 онд анх гарсны дараа буюу 1999 онд JavaScript нь Livescript нэртэй байсан бөгөөд зөвхөн Netscape Navigator дээр ажилладаг байсан. Энэ нь тэр үед маш эмх замбараагүй байсан ч одоо бүх зүйл маш тодорхой болж, бид энэ хэрэгжилтийн 7 хэвлэлтэй болсон.
7 хэвлэл. Жинхэнэ. ES5 ба ES2016+ нь юу?
-Тав, долоо дахь хэвлэл.
Хүлээгээрэй, зургаа дахь нь юу болсон бэ?
-Та ES6 гэсэн үг үү? Тиймээ, хэвлэл бүр нь өмнөх хувилбарын дээд багц тул та ES2016+ ашиглаж байгаа бол өмнөх хувилбаруудын бүх функцийг ашиглаж байна гэсэн үг.
Зөв. Тэгээд яагаад ES2016+-г ES6 дээр ашиглах вэ?
-За, та ES6-г ашиглаж болох ч async болон wait гэх мэт гайхалтай функцуудыг ашиглахын тулд та ES2016+ ашиглах хэрэгтэй. Эс бөгөөс та урсгалыг зөв удирдахын тулд асинхрон дуудлагыг хаахын тулд корутин бүхий ES6 үүсгүүртэй гацсан болно.
Таны сая юу гэж хэлснийг би мэдэхгүй, энэ бүх нэрс төөрөлдүүлж байна. Хараач, би зүгээр л серверээс олон тооны өгөгдөл ачаалж байна, би CDN-ээс jQuery-г оруулаад зүгээр л AJAX дуудлагуудаар өгөгдлийг авч чаддаг байсан, яагаад би үүнийг хийж чадахгүй байна вэ?
-2016 оны хүн шүү дээ, хэн ч jQuery-г ашиглахаа больсон, спагетти кодтой болж дуусдаг. Үүнийг бүгд мэднэ.
Зөв. Тиймээс миний хувилбар бол өгөгдөл татаж авах, HTML хүснэгтийг харуулах гурван номын санг ачаалах явдал юм.
-За, та эдгээр гурван номын санг багтаасан боловч зөвхөн нэг файлыг ачаалахын тулд модулийн менежертэй хамт багцлаарай.
Би харж байна. Мөн модулийн менежер гэж юу вэ?
-Тодорхойлолт нь орчноос хамаардаг боловч вэб дээр ихэвчлэн AMD эсвэл CommonJS модулийг дэмждэг бүх зүйлийг хэлдэг.
Риайт. Мөн AMD болон CommonJS нь ...?
-Тодорхойлолт. Олон JavaScript номын сан болон ангиуд хэрхэн харилцан үйлчлэх ёстойг тайлбарлах арга замууд байдаг. Экспорт, шаарддаг гэдгийг та мэдэх үү? Та AMD эсвэл CommonJS API-г тодорхойлсон олон JavaScript файл бичих боломжтой бөгөөд тэдгээрийг нэгтгэхийн тулд Browserify гэх мэт зүйлийг ашиглаж болно.
За, энэ нь утга учиртай… Миний бодлоор. Browserify гэж юу вэ?
-Энэ нь CommonJS-ийн тайлбарласан хамаарлыг хөтөч дээр ажиллуулах боломжтой файлуудад багцлах боломжийг олгодог хэрэгсэл юм. Ихэнх хүмүүс эдгээр хамаарлыг npm бүртгэлд нийтэлдэг тул үүнийг үүсгэсэн.
npm бүртгэл?
-Ухаалаг хүмүүс код болон хамаарлыг модуль болгон тавьдаг маш том нийтийн сан юм.
CDN шиг үү?
-Үнэхээр биш. Энэ нь хэн ч номын санг нийтэлж, татаж авах боломжтой төвлөрсөн мэдээллийн сантай адил тул та тэдгээрийг дотооддоо хөгжүүлж, дараа нь хүсвэл CDN-д байршуулах боломжтой.
Өө, яг Бауэр шиг!
-Тийм ээ, гэхдээ одоо 2016 он, одоо хэн ч Bower ашиглахгүй.
Өө, би ойлгож байна ... тэгвэл би номын сангуудыг npm-ээс татаж авах шаардлагатай байна уу?
-Тиймээ. Жишээлбэл, хэрэв та React-ийг ашиглахыг хүсвэл React модулийг татаж аваад код руугаа оруулна уу. Та үүнийг бараг бүх алдартай JavaScript номын санд хийж болно.
Өө, Angular шиг!
-Өнцөг бол 2015. Гэхдээ тийм. Angular нь VueJS эсвэл RxJS болон 2016 оны бусад сайхан номын сангуудтай хамт байх болно. Тэдгээрийн талаар мэдэхийг хүсч байна уу?
React-тэй хамт байцгаая, би одоо хэтэрхий олон зүйлийг сурч байна. Тэгэхээр, хэрэв би React ашиглах шаардлагатай бол үүнийг энэ npm-ээс татаж аваад дараа нь энэ Browserify зүйлийг ашиглах уу?
-Тиймээ.
Энэ нь хэд хэдэн хамаарлыг барьж аваад тэдгээрийг хооронд нь холбоход хэтэрхий төвөгтэй юм шиг санагддаг.
-Тийм учраас та Browserify-ийг автоматжуулахын тулд Grunt, Gulp эсвэл Broccoli гэх мэт ажлын менежер ашигладаг. Хэхэ, та Mimosa ашиглаж болно.
Грунт? Гулп? Брокколи? Мимоза уу? Бид одоо юуны тухай ярьж байна вэ?
- Ажлын менежерүүд. Гэхдээ тэд дажгүй биш болсон. Бид тэдгээрийг 2015 онд ашигласан, дараа нь Makefiles ашигласан, харин одоо бид бүх зүйлийг Webpack-аар боож өгдөг.
Makefiles? Би үүнийг ихэвчлэн C эсвэл C++ төслүүдэд ашигладаг гэж бодсон.
-Тийм ээ, гэхдээ вэб дээр бид аливаа зүйлийг төвөгтэй болгож, дараа нь үндсэн зүйл рүү буцах дуртай байдаг бололтой. Бид үүнийг жил бүр хийдэг, хүлээгээд л, нэг, хоёр жилийн дараа вэб дээр угсралт хийх гэж байна.
Санаа алдах. Та Webpack гэдэг зүйлийг дурдсан уу?
-Энэ бол хөтөчийн өөр нэг модулийн менежер бөгөөд даалгавар гүйцэтгэх үүрэг гүйцэтгэдэг. Энэ нь Browserify-ийн илүү сайн хувилбар шиг юм.
Өө, за. Яагаад илүү дээр вэ?
-Яахав, илүү сайн биш байж магадгүй, энэ нь таны хараат байдлыг хэрхэн уялдуулах талаар илүү үзэл бодолтой байдаг. Webpack нь танд зөвхөн CommonJS биш өөр өөр модулийн менежерүүдийг ашиглах боломжийг олгодог, жишээ нь ES6-ийн дэмжигдсэн модулиуд.
Би энэ бүх CommonJS/ES6 зүйлд маш их эргэлзэж байна.
-Хүн бүр тийм, гэхдээ та SystemJS-д санаа зовох хэрэггүй.
Есүс Христ, өөр нэр үг-js. За, энэ SystemJS гэж юу вэ?
-Яахав, Browserify болон Webpack 1.x-ээс ялгаатай нь SystemJS нь динамик модуль дуудагч бөгөөд олон модулийг нэг том файлд багцлахын оронд олон файлд холбох боломжийг олгодог.
Хүлээгээрэй, гэхдээ бид номын сангаа нэг том файлд хийж, үүнийг ачаалмаар байна гэж бодсон!
-Тийм, гэхдээ HTTP/2 одоо ирж байгаа тул олон HTTP хүсэлтүүд илүү дээр болсон.
Хүлээгээрэй, тэгэхээр бид React-д зориулж гурван эх номын санг нэмж болохгүй гэж үү?
-Үнэхээр биш. Та тэдгээрийг CDN-ээс гадаад скрипт болгон нэмж болно гэсэн үг, гэхдээ та Babel-ийг оруулах шаардлагатай хэвээр байна.
Санаа алдах. Тэгээд энэ нь муу, тийм үү?
-Тийм ээ, та бүхэл бүтэн babel-ийн цөмийг оруулаад үйлдвэрлэлд үр ашиггүй болно. Үйлдвэрлэлийн явцад та Сатаныг дуудах зан үйлийг чанасан өндөгний жор шиг харагдуулах төслөө бэлтгэхийн тулд хэд хэдэн урьдчилсан даалгавруудыг гүйцэтгэх хэрэгтэй. Та хөрөнгийг багасгах, муухай болгох, атирааны дээгүүр inline css, скриптийг хойшлуулах, түүнчлэн-
Би авсан, би авсан. Хэрэв та CDN-д номын сангуудыг шууд оруулахгүй бол яаж хийх вэ?
-Би үүнийг Typescript-ээс Webpack + SystemJS + Babel комбо ашиглан шилжүүлнэ.
Бичлэг? Бид JavaScript дээр кодлож байна гэж би бодсон!
-Typescript нь JavaScript буюу илүү сайнаар хэлбэл, JavaScript-ийн дээд багц, тодруулбал ES6 хувилбар дээрх JavaScript юм. Бидний өмнө нь ярьж байсан зургаа дахь хувилбарыг та мэдэх үү?
Би ES2016+-г аль хэдийн ES6-ийн супер багц гэж бодсон! Энэ Typescript гэдэг зүйл яагаад бидэнд хэрэгтэй байна вэ?
-Өө, учир нь энэ нь бидэнд JavaScript-г шивдэг хэл болгон ашиглах боломжийг олгодог бөгөөд ажиллах үеийн алдааг багасгадаг. 2016 он, та JavaScript коддоо зарим төрлийг нэмэх хэрэгтэй.
Typescript үүнийг хийх нь ойлгомжтой.
-Урсгал ч гэсэн зөвхөн бичиж байгаа эсэхийг шалгадаг, Typescript нь JavaScript-ийн дээд багц бөгөөд эмхэтгэх шаардлагатай.
Санаа алдлаа... мөн Урсгал уу?
-Фэйсбүүкийн зарим залуусын хийсэн статик төрлийн шалгагч. Тэд үүнийг OCaml дээр кодлосон, учир нь функциональ програмчлал нь гайхалтай юм.
OCaml? Функциональ програмчлал?
-Өнөөгийн дажгүй хүүхдүүдийн хэрэглэж байгаа зүйл шүү дээ, 2016 он? Функциональ програмчлал? Өндөр зэрэглэлийн функцууд? Карри хийх үү? Цэвэр функцүүд үү?
Сая юу гэж хэлснийг чинь мэдэхгүй байна.
-Эхэндээ хэн ч хийдэггүй. Хараач, та функциональ програмчлал нь OOP-ээс илүү гэдгийг мэдэх хэрэгтэй бөгөөд үүнийг бид 2016 онд ашиглах ёстой.
Хүлээгээрэй, би коллежид OOP сурсан, би үүнийг сайн гэж бодсон уу?
-Oracle худалдаж авахаас өмнө Java-г мөн адил байсан. OOP нь тухайн үед сайн байсан бөгөөд одоо ч гэсэн ашиглагдаж байгаа боловч одоо хүн бүр өөрчлөх нь нялх хүүхдийг өшиглөхтэй тэнцэхүйц гэдгийг ойлгож байгаа тул одоо хүн бүр өөрчлөгдөшгүй объектууд болон функциональ програмчлал руу шилжиж байна. Хаскелл залуус үүнийг олон жилийн турш дуудаж байсан, -намайг Хайлаасны залуустай битгий хэлээрэй- гэвч азаар вэб дээр бид энгийн JavaScript дээр функциональ програмчлалыг ашиглах боломжийг олгодог Рамда шиг номын сангуудтай болсон.
Та зүгээр л энэ талаар нэрсээ хасаад байна уу? Рамнда гэж юу вэ?
-Үгүй. Рамда. Ламбда шиг. Дэвид Чемберсийн номын санг та мэдэх үү?
Дэвид хэн бэ?
-Дэвид Чемберс. Сайхан залуу. Төрийн эргэлтийн тоглоом тоглодог. Рамдад хувь нэмэр оруулсан хүмүүсийн нэг. Хэрэв та функциональ програмчлалд суралцах талаар нухацтай байгаа бол Эрик Мейжерийг шалгах хэрэгтэй.
Эрик Мейжер мөн үү...?
-Мөн функциональ програмист залуу. Гайхалтай залуу. Тэрээр энэ хачин өнгийн цамцыг өмсөж байхдаа Agile-г устгасан олон илтгэлтэй. Та мөн Tj, Jash Kenas, Sindre Sorhus, Paul Irish, Addy Osmani-ийн зарим зүйлийг шалгах хэрэгтэй.
За. Би чамайг тэнд зогсоох гэж байна. Энэ бүхэн сайн, гэхдээ зүгээр л өгөгдөл татаж аваад харуулахад бүх зүйл маш төвөгтэй бөгөөд шаардлагагүй гэж би бодож байна. Динамик өгөгдөлтэй хүснэгт үүсгэхийн тулд эдгээр хүмүүсийг мэдэх эсвэл эдгээр бүх зүйлийг сурах шаардлагагүй гэдэгт би итгэлтэй байна. React руу буцаж орцгооё. Би хэрхэн серверээс өгөгдлийг React ашиглан татаж авах вэ?
-Яахав, та React-ээр өгөгдөл авдаггүй, React-ээр л өгөгдлийг харуулдаг.
Өө, намайг хараал ид. Тэгэхээр та өгөгдлийг татахын тулд юу ашигладаг вэ?
-Та Fetch-ийг серверээс мэдээлэл авахдаа ашигладаг.
намайг уучлаарай? Та өгөгдлийг татахдаа Fetch ашигладаг уу? Эдгээр зүйлийг нэрлэж байгаа хэн бүхэнд тезаурус хэрэгтэй.
-Мэднэ биз дээ? Татаж авах нь серверийн эсрэг XMLHttpRequests гүйцэтгэх үндсэн хэрэгжүүлэлтийн нэр юм.
Тийм ээ, AJAX.
-AJAX бол зөвхөн XMLHttpRequests-ийн хэрэглээ юм. Гэхдээ гарцаагүй. Fetch нь танд амлалтад тулгуурлан AJAX-ийг хийх боломжийг олгодог бөгөөд дараа нь та буцааж дуудлагын тамаас зайлсхийхийн тулд шийдэж чадна.
Буцаж дуудах там?
-Тиймээ. Серверийн эсрэг асинхрон хүсэлт хийх бүрдээ та түүний хариуг хүлээх хэрэгтэй бөгөөд энэ нь таныг функц доторх функцийг нэмэхэд хүргэдэг бөгөөд үүнийг тамаас эргүүлэн татах пирамид гэж нэрлэдэг.
Өө, за. Тэгээд энэ амлалтын зүйл үүнийг шийдэж байна уу?
-Үнэхээр. Амлалтуудаар дамжуулан өөрийн дуудлагыг өөрчилснөөр та ойлгоход хялбар код бичиж, шоолж, туршиж үзэхээс гадна хүсэлтийг нэгэн зэрэг гүйцэтгэж, бүгдийг ачаалах хүртэл хүлээх боломжтой.
Үүнийг Fetch-ээр хийж болох уу?
-Тийм ээ, гэхдээ таны хэрэглэгч мөнх ногоон хөтөч ашигладаг бол Fetch polyfill оруулах эсвэл Request, Bluebird эсвэл Axios ашиглах хэрэгтэй.
Би бурхны төлөө хэдэн номын сан мэдэх хэрэгтэй вэ? Тэдний хэд нь вэ?
-Энэ бол JavaScript. Бүгд ижил зүйл хийдэг олон мянган номын сан байх ёстой. Бид номын санг мэддэг, үнэндээ хамгийн сайн номын сантай. Манай номын сангууд их гоё, заримдаа Гай Фиеригийн зургийг оруулдаг.
Чи сая Гай Фиери гэж хэлсэн үү? Үүнийг дуусгая. Эдгээр Bluebird, Request, Axios номын сангууд юу хийдэг вэ?
-Тэд амлалтуудыг буцаах XMLHttpRequests хийх номын сан юм.
jQuery-ийн AJAX арга нь бас амлалтуудыг буцааж эхлээгүй гэж үү?
-2016 онд “Ж” гэдэг үгийг хэрэглэхээ больсон. Зүгээр л Fetch-г ашиглаад хөтчид байхгүй үед нь polyfill эсвэл оронд нь Bluebird, Request эсвэл Axios-ыг ашигла. Дараа нь асинхронгуй функц болон өсөлтийн хүрээнд await ашиглан амлалтыг удирдаж, танд зохих хяналтын урсгал бий болно.
Та гурав дахь удаагаа хүлээж байна гэж хэлж байгаа ч энэ нь юу болохыг би мэдэхгүй.
-Хүлээлт нь асинхрон дуудлагыг хаах боломжийг олгож, өгөгдлийг хэзээ дуудаж байгааг хянах, код унших чадварыг ерөнхийд нь нэмэгдүүлэх боломжийг олгоно. Гайхалтай, та зүгээр л Babel-д 3-р шатын урьдчилсан тохируулгыг нэмэх эсвэл синтакс-асинх-функцууд болон хувиргах-асинк-үүсгүүрт залгаас ашиглах хэрэгтэй.
Энэ бол галзуу юм.
-Үгүй ээ, та Typescript кодыг урьдчилан эмхэтгэж, дараа нь Wait ашиглахын тулд Babel програмаар хөрвүүлэх хэрэгтэй болсон нь үнэхээр галзуу юм.
Юу? Энэ нь Typescript-д ороогүй байна уу?
-Энэ нь дараагийн хувилбарт хэрэгждэг боловч 1.7 хувилбарын хувьд энэ нь зөвхөн ES6-г чиглүүлдэг тул хэрэв та хөтөч дээрээ await ашиглахыг хүсвэл эхлээд ES6, дараа нь ES5 руу чиглэсэн Babel кодыг хөрвүүлэх хэрэгтэй.
Энэ үед би юу хэлэхээ мэдэхгүй байна.
-Хараач, амархан. Typescript дээр бүгдийг кодчил. Fetch ашигладаг бүх модулиуд нь тэдгээрийг ES6-д чиглүүлэхийн тулд эмхэтгэж, 3-р шатлал дээр Babel-ээр шилжүүлж, SystemJS-ээр ачаална. Хэрэв танд Fetch байхгүй бол үүнийг polyfill, эсвэл Bluebird, Request эсвэл Axios-ийг ашиглан бүх амлалтаа хүлээж байгаарай.
Бидэнд хялбар гэсэн маш өөр тодорхойлолт байдаг. Тиймээс, энэ зан үйлийн тусламжтайгаар би өгөгдлийг олж авсан бөгөөд одоо үүнийг React-ээр харуулах боломжтой юу?
-Танай өргөдлөө ямар нэгэн улсын өөрчлөлтийг шийдвэрлэх гэж байна уу?
Өө, би тэгж бодохгүй байна. Би зөвхөн өгөгдлийг харуулах хэрэгтэй.
-Өө бурханд баярлалаа. Үгүй бол би танд Flux болон Flummox, Alt, Fluxible гэх мэт хэрэгжилтийг тайлбарлах хэрэгтэй болно. Үнэнийг хэлэхэд та Redux ашиглах хэрэгтэй.
Би зүгээр л эдгээр нэрсийн дээгүүр нисэх болно. Дахин хэлэхэд би зөвхөн өгөгдлийг харуулах хэрэгтэй.
-Өө, хэрэв та зүгээр л өгөгдлийг харуулж байгаа бол эхлээд React хэрэггүй байсан. Загварын хөдөлгүүртэй бол та зүгээр байх байсан.
Чи надаар тоглож байна уу? Та үүнийг инээдтэй гэж бодож байна уу? Та хайртай хүмүүстээ ингэж ханддаг уу?
-Би зүгээр л та юу ашиглаж болохыг тайлбарлаж байсан юм.
Зогс. Зүгээр л зогсоо.
-Зүгээр л загварчлалын системийг ашиглаж байсан ч би чиний оронд байсан бол Typescript + SystemJS + Babel комбинаци ашиглах байсан гэсэн үг.
Би Sub Zero-ийн анхны MK үхэлд хүргэх биш, харин хуудсан дээр өгөгдлийг харуулах хэрэгтэй. Зүгээр л ямар загварчлалын хөдөлгүүр ашиглахыг надад хэлээрэй, би үүнийг тэндээс авах болно.
-Олон юм байна, алийг нь таньдаг вэ?
Өө, нэрийг нь санахгүй байна. Энэ нь нэлээд эрт байсан.
- jЗагварууд? jQot? ЦЭВЭР ҮҮ?
Өө, хонх дуугарахгүй байна. Өөр нэг үү?
-Ил тод байдал уу? JSRender? MarkupJS? KnockoutJS? Тэр нь хоёр талын холболттой байсан.
Өөр нэг үү?
- PlatesJS? jQuery-tmpl? Бариул? Зарим хүмүүс одоо ч хэрэглэж байна.
Магадгүй. Сүүлийнхтэй төстэй зүйл бий юу?
-Сахал, доогуур зураас? Миний бодлоор одоо lodash хүртэл шударга байх ёстой, гэхдээ эдгээр нь 2014 оных юм.
Өө.. магадгүй шинэ байсан байх.
-Хаш? DustJS?
Үгүй
- DotJS? EJS?
Үгүй
-Гэлмаа нар уу? ECT?
Үгүй
-Мах, ямар ч байсан Coffeescript синтакс хэнд ч таалагдахгүй. хаш?
Үгүй ээ, чи аль хэдийн Дэжид гэж хэлсэн.
-Би Пүг гэж хэлэх гэсэн юм. Би Дэжид гэж хэлэх гэсэн юм. Дэжид одоо Пуг болсон гэсэн үг.
Санаа алдах. Үгүй ээ, санахгүй байна. Та алийг нь ашиглах вэ?
-Магадгүй зүгээр л ES6 эх загвар мөрүүд байх.
Тааж үзье. Үүний тулд ES6 шаардлагатай.
-Зөв.
Миний ашиглаж байгаа хөтөчөөс хамааран Babel хэрэгтэй.
-Зөв.
Хэрэв би үндсэн номын санг бүхэлд нь нэмэхгүйгээр оруулахыг хүсвэл үүнийг npm-ээс модуль болгон ачаалах хэрэгтэй.
-Зөв.
Энэ нь Browserify эсвэл Wepback эсвэл SystemJS гэх өөр зүйл шаарддаг.
-Зөв.
Энэ нь Webpack биш л бол даалгавар гүйгчээр удирдуулах нь зүйтэй.
-Зөв.
Гэхдээ би функциональ програмчлал болон бичгийн хэлийг ашиглах ёстой тул эхлээд Typescript-ийг урьдчилан эмхэтгэх эсвэл энэ Flow зүйлийг нэмэх хэрэгтэй.
-Зөв.
Хэрэв би wait-ийг ашиглахыг хүсвэл үүнийг Бабел руу илгээ.
-Зөв.
Тиймээс би Fetch, амлалт, урсгалыг удирдаж, тэр бүх ид шидийг ашиглаж чадна.
-Хэрэв дэмжигдээгүй бол Fetch polyfill хийхээ бүү мартаарай, Safari үүнийг зохицуулж чадахгүй хэвээр байна.
Та юу мэдэж байгаа. Бид энд дууссан гэж бодож байна. Ер нь бол би дууссан гэж бодож байна. Би вэбийг дуусгасан, би JavaScript-ийг бүхэлд нь дуусгасан.
-Зүгээр дээ, хэдэн жилийн дараа бид бүгд хайлаас юм уу WebAssembly программ дээр кодчилно.
Би зүгээр л арын хэсэг рүү буцах гэж байна. Би энэ олон өөрчлөлт, хувилбар, хэвлэл, эмхэтгэгч, шилжүүлэгчтэй ажиллах боломжгүй. JavaScript нийгэмлэг үүнийг хэн ч гүйцэж чадна гэж бодож байвал галзуу юм.
-Чамайг сонсож байна. Та Python нийгэмлэгийг туршиж үзэх хэрэгтэй.
Яагаад?
-Python 3 гэж сонсож байсан уу?
Шинэчлэлт: Үг үсгийн алдаа, алдааг зааж өгсөнд баярлалаа, би нийтлэлийг тэмдэглэсний дагуу шинэчлэх болно. HackerNews болон Reddit дээрх хэлэлцүүлэг .