Ushbu maqolani yozish paytida hech qanday JavaScript ramkalari yaratilmagan.
Quyidagilar Circle CI jurnalining “Bu kelajak” maqolasidan ilhomlangan. Asl nusxasini bu yerda o'qishingiz mumkin . Ushbu qism shunchaki fikrdir va har qanday JavaScript ramkasi kabi, u juda jiddiy qabul qilinmasligi kerak.
Hey, men bu yangi veb-loyihaga ega bo'ldim, lekin rostini aytsam, men bir necha yil davomida ko'p veb kodlamadim va men landshaft biroz o'zgarganini eshitdim. Siz bu yerdagi eng zamonaviy veb-dasturchisiz, to'g'rimi?
-Haqiqiy atama Front End muhandisi, lekin ha, men to'g'ri odamman. Men 2016-yilda internet bilan shug‘ullanaman. Vizualizatsiya, musiqa pleyerlari, futbol o‘ynaydigan uchuvchi dronlar, buni siz aytasiz. Men hozirgina JsConf va ReactConf-dan qaytdim, shuning uchun men veb-ilovalarni yaratish uchun eng so'nggi texnologiyalarni bilaman.
Ajoyib. Men foydalanuvchilarning so'nggi faoliyatini aks ettiruvchi sahifa yaratishim kerak, shuning uchun men REST so'nggi nuqtasidan ma'lumotlarni olishim va uni qandaydir filtrlanadigan jadvalda ko'rsatishim va serverda biror narsa o'zgarsa, uni yangilashim kerak. Men ma'lumotlarni olish va ko'rsatish uchun jQuery dan foydalanishim mumkin deb o'yladim.
-Yo xudo yo'q, jQuery-dan boshqa hech kim foydalanmaydi. Siz Reactni o'rganishga harakat qilishingiz kerak, bu 2016 yil.
Oh, OK. React nima?
- Bu Facebookdagi ba'zi yigitlar tomonidan yaratilgan ajoyib kutubxona bo'lib, u har qanday ko'rinishdagi o'zgarishlarni juda oson boshqarishga imkon berib, ilovangizga nazorat va unumdorlikni olib keladi.
Bu yaxshi eshitiladi. Serverdan ma'lumotlarni ko'rsatish uchun React-dan foydalansam bo'ladimi?
-Ha, lekin avval veb-sahifangizga kutubxona sifatida React va React DOM-ni qo'shishingiz kerak.
Kutib turing, nega ikkita kutubxona?
- Shunday qilib, biri haqiqiy kutubxona, ikkinchisi esa DOMni boshqarish uchun, endi uni JSX da tasvirlashingiz mumkin.
JSX? JSX nima?
-JSX - bu JavaScript sintaksisi kengaytmasi bo'lib, u deyarli XMLga o'xshaydi. Bu DOMni tasvirlashning yana bir usuli, uni yaxshiroq HTML deb hisoblang.
HTML bilan nima xato?
-Bu 2016 yil. Hech kim HTMLni to'g'ridan-to'g'ri kodlamaydi.
To'g'ri. Yaxshiyamki, agar men ushbu ikkita kutubxonani qo'shsam, React-dan foydalana olamanmi?
- Unchalik emas. Siz Babelni qo'shishingiz kerak va keyin siz React-dan foydalanishingiz mumkin.
Boshqa kutubxonami? Babel nima?
-Oh, Babel - bu transpiler bo'lib, u JavaScript-ning har qanday versiyasida kodlash bilan birga JavaScript-ning ma'lum versiyalarini nishonga olishga imkon beradi. ReactJS-dan foydalanish uchun siz Babel-ni qo'shishingiz shart emas, lekin buni qilmasangiz, siz ES5-dan foydalana olmay qolasiz va keling, 2016 yil, qolgan ajoyib bolalar kabi siz ES2016+ da kodlashingiz kerak.
ES5? ES2016+? Bu yerda adashib ketyapman. ES5 va ES2016+ nima?
-ES5 ECMAScript 5 degan ma'noni anglatadi. Bu ko'pchilikning maqsadi bo'lgan nashr, chunki u hozirgi kunda ko'pchilik brauzerlar tomonidan amalga oshirilgan.
ECMAScript?
-Ha, bilasizmi, JavaScript standarti skript 1999-yilda 1995-yilda chiqarilganidan soʻng, JavaScript Livescript nomini olgan va faqat Netscape Navigator-da ishlagan paytda asoslangan edi. O'sha paytlarda bu juda tartibsiz edi, lekin xayriyatki, hozir hamma narsa aniq va bizda ushbu dasturning 7 ta nashri bor.
7 nashr. Haqiqatdan. Va ES5 va ES2016+ bormi?
-Mos ravishda beshinchi va ettinchi nashr.
Kutib turing, oltinchi bilan nima bo'ldi?
- ES6 ni nazarda tutyapsizmi? Ha, aytmoqchimanki, har bir nashr avvalgisining yuqori to'plamidir, shuning uchun siz ES2016+ dan foydalanayotgan bo'lsangiz, oldingi versiyalarning barcha xususiyatlaridan foydalanasiz.
To'g'ri. Va nima uchun ES2016+ dan ES6 orqali foydalaniladi?
-Xo'sh, siz ES6 dan foydalanishingiz MUMKIN, lekin asinxron va kutish kabi ajoyib xususiyatlardan foydalanish uchun ES2016+ dan foydalanishingiz kerak. Aks holda, siz to'g'ri boshqarish oqimi uchun asinxron qo'ng'iroqlarni blokirovka qilish uchun koroutinli ES6 generatorlari bilan yopishib qolasiz.
Siz nima deganingizni bilmayman va bu nomlarning barchasi chalkash. Qarang, men shunchaki serverdan bir qancha ma'lumotlarni yuklayapman, men CDN-dan jQuery-ni qo'shib, shunchaki AJAX qo'ng'iroqlari bilan ma'lumotlarni olishim mumkin edi, nega men buni qila olmayman?
-Bu 2016-yil, endi hech kim jQuery-dan foydalanmaydi, u spagetti kodlari to'plamiga aylanadi. Buni hamma biladi.
To'g'ri. Shunday qilib, mening alternativim - ma'lumotlarni olish va HTML jadvalini ko'rsatish uchun uchta kutubxonani yuklash.
- Xo'sh, siz ushbu uchta kutubxonani o'z ichiga olasiz, lekin faqat bitta faylni yuklash uchun ularni modul menejeri bilan birlashtirasiz.
Men ko'ryapman. Va modul menejeri nima?
-Ta'rif atrof-muhitga bog'liq, lekin Internetda biz odatda AMD yoki CommonJS modullarini qo'llab-quvvatlaydigan narsalarni nazarda tutamiz.
Riiight. Va AMD va CommonJS ...?
- Ta'riflar. Bir nechta JavaScript kutubxonalari va sinflarining o'zaro ta'sirini tasvirlash usullari mavjud. Bilasizmi, eksport va talab? Siz AMD yoki CommonJS API-ni belgilaydigan bir nechta JavaScript fayllarini yozishingiz mumkin va ularni birlashtirish uchun Browserify kabi narsalarni ishlatishingiz mumkin.
OK, bu mantiqiy... Menimcha. Browserify nima?
-Bu CommonJS taʼriflangan bogʻliqliklarni brauzerda ishga tushirilishi mumkin boʻlgan fayllarga birlashtirish imkonini beruvchi vositadir. Ko'pchilik bu bog'liqliklarni npm registrida nashr qilgani uchun yaratilgan.
npm ro'yxatga olish kitobi?
- Bu aqlli odamlar kod va bog'liqliklarni modul sifatida joylashtirgan juda katta ommaviy ombor.
CDN kabimi?
-Unchalik emas. Bu har kim kutubxonalarni nashr etishi va yuklab olishi mumkin bo'lgan markazlashtirilgan ma'lumotlar bazasiga o'xshaydi, shuning uchun siz ularni mahalliy sifatida ishlab chiqish uchun ishlatishingiz va agar xohlasangiz, ularni CDN-ga yuklashingiz mumkin.
Oh, xuddi Bower kabi!
-Ha, lekin hozir 2016-yil, endi hech kim Bowerdan foydalanmaydi.
Oh, tushundim ... shuning uchun kutubxonalarni npm dan yuklab olishim kerakmi?
-Ha. Masalan, agar siz React dan foydalanmoqchi bo'lsangiz, siz React modulini yuklab olasiz va uni kodingizga import qilasiz. Buni deyarli har bir mashhur JavaScript kutubxonasi uchun qilishingiz mumkin.
Oh, Angular kabi!
-Angular shunday 2015. Lekin ha. Angular u erda VueJS yoki RxJS va boshqa ajoyib 2016 kutubxonalari bilan birga bo'ladi. Ular haqida bilishni xohlaysizmi?
Keling, React bilan qoling, men hozir juda ko'p narsalarni o'rganyapman. Shunday qilib, agar men React-dan foydalanishim kerak bo'lsa, men uni ushbu npm-dan olaman va keyin ushbu Browserify narsasidan foydalanamanmi?
-Ha.
Bir nechta bog'liqliklarni olish va ularni bir-biriga bog'lash juda murakkab ko'rinadi.
- Aynan shuning uchun siz Browserify-ni ishga tushirishni avtomatlashtirish uchun Grunt yoki Gulp yoki Brokkoli kabi vazifa menejeridan foydalanasiz. Heck, siz hatto Mimozadan ham foydalanishingiz mumkin.
Grunt? Gulpmi? Brokkoli? Mimoza? Biz hozir nima haqida gapiryapmiz?
- Vazifa menejerlari. Ammo ular endi sovuq emas. Biz ularni 2015-yilda ishlatganmiz, keyin Makefiles-dan foydalanganmiz, ammo endi biz hamma narsani Webpack bilan o'rab olamiz.
Makefiles? Bu asosan C yoki C++ loyihalarida qo'llaniladi deb o'yladim.
-Ha, lekin Internetda biz narsalarni murakkablashtirishni va keyin asoslarga qaytishni yaxshi ko'ramiz. Biz buni har yili yoki undan ko'proq qilamiz, shunchaki kuting, biz bir-ikki yil ichida internetda yig'ishni qilamiz.
Xo'rsin. Siz Webpack deb nomlangan narsani aytib o'tdingizmi?
- Bu brauzer uchun boshqa modul menejeri, shu bilan birga vazifalarni bajaruvchisi. Bu Browserify-ning yaxshiroq versiyasiga o'xshaydi.
Oh, yaxshi. Nima uchun yaxshiroq?
- Xo'sh, ehtimol yaxshiroq emas, bu sizning qaramliklaringizni qanday bog'lash kerakligi haqida ko'proq fikr yuritadi. Webpack sizga faqat CommonJS emas, balki turli xil modul menejerlaridan foydalanishga imkon beradi, masalan, mahalliy ES6 qo'llab-quvvatlanadigan modullardan.
Men bu CommonJS/ES6 narsasidan juda chalkashib ketdim.
-Hamma shunday, lekin siz endi SystemJS bilan qiziqmasligingiz kerak.
Iso Masih, boshqa ism-js. OK, va bu SystemJS nima?
-Xo'sh, Browserify va Webpack 1.x dan farqli o'laroq, SystemJS dinamik modul yuklovchi bo'lib, u bir nechta modullarni bitta katta faylga yig'ish o'rniga bir nechta fayllarga ulash imkonini beradi.
Kutib turing, lekin biz kutubxonalarimizni bitta katta faylda qurmoqchimiz va uni yuklamoqchimiz deb o'yladim!
-Ha, lekin HTTP/2 kelganligi sababli bir nechta HTTP so'rovlari aslida yaxshiroq.
Kutib turing, shuning uchun biz React uchun uchta asl kutubxonani qo'sha olmaymizmi?
-Unchalik emas. Aytmoqchimanki, siz ularni CDN dan tashqi skriptlar sifatida qo'shishingiz mumkin, lekin siz hali ham Babelni qo'shishingiz kerak bo'ladi.
Xo'rsin. Va bu yomon, to'g'rimi?
-Ha, siz butun babel yadrosini o'z ichiga olgan bo'lardingiz va bu ishlab chiqarish uchun samarali bo'lmaydi. Ishlab chiqarishda siz loyihangizni tayyorlash uchun bir qator oldingi vazifalarni bajarishingiz kerak, bu esa Shaytonni chaqirish marosimini qaynatilgan tuxum retseptiga o'xshatadi. Siz aktivlarni minimallashtirishingiz, ularni xunuk qilishingiz, katlama ustidagi CSS-ni o'rnatishingiz, skriptlarni kechiktirishingiz kerak, shuningdek-
Men oldim, oldim. Agar kutubxonalarni to'g'ridan-to'g'ri CDN ga qo'shmasangiz, buni qanday qilgan bo'lar edingiz?
-Men uni Typescript-dan Webpack + SystemJS + Babel kombinatsiyasidan foydalangan holda ko'chirgan bo'lardim.
Matn yozuvi? Men JavaScript-da kodlashayotganimizni o'yladim!
-Typescript IS JavaScript yoki yaxshiroq aytganda, JavaScript-ning yuqori to'plami, aniqrog'i ES6 versiyasidagi JavaScript. Bilasizmi, biz ilgari gaplashgan oltinchi versiya?
Men ES2016+ allaqachon ES6 ning super to‘plami deb o‘yladim! NEGA bizga Typescript deb nomlangan narsa kerak?
-Oh, chunki bu bizga JavaScript-ni yoziladigan til sifatida ishlatish va ish vaqtidagi xatolarni kamaytirish imkonini beradi. 2016 yil, siz JavaScript kodingizga ba'zi turlarni qo'shishingiz kerak.
Va Typescript buni aniq qiladi.
-Flow ham, garchi u faqat yozishni tekshiradi, Typescript esa kompilyatsiya qilinishi kerak bo'lgan JavaScript-ning yuqori to'plamidir.
Xo'rsin... va Flow?
-Bu Facebookdagi ba'zi yigitlar tomonidan yaratilgan statik turdagi tekshiruvchi. Ular uni OCaml-da kodlashdi, chunki funktsional dasturlash ajoyib.
OCaml? Funktsional dasturlash?
-Hozirgi zo'r bolalar shuni ishlatishadi, bilasizmi, 2016-yil? Funktsional dasturlash? Yuqori tartibli funktsiyalar? Karri? Sof funktsiyalarmi?
Men nima deganingizni bilmayman.
- Boshida hech kim qilmaydi. Qarang, siz faqat funktsional dasturlash OOP dan yaxshiroq ekanligini bilishingiz kerak va biz 2016 yilda undan foydalanishimiz kerak.
Kutib turing, men kollejda OOPni o'rgandim, bu yaxshi deb o'yladimmi?
-Oracle tomonidan sotib olinishidan oldin Java ham shunday edi. Aytmoqchimanki, OOP o'sha paytlarda yaxshi bo'lgan va u bugungi kunda ham qo'llanilmoqda, ammo hozir hamma o'zgartirish holatlari chaqaloqlarni tepish bilan teng ekanligini tushunmoqda, shuning uchun endi hamma o'zgarmas ob'ektlar va funktsional dasturlashga o'tmoqda. Haskell yigitlari buni ko'p yillar davomida chaqirishdi - va meni Elm yigitlari bilan boshlamang - lekin baxtga endi Internetda bizda Ramda kabi kutubxonalar mavjud bo'lib, ular bizga oddiy JavaScript-da funktsional dasturlashdan foydalanishga imkon beradi.
Buning uchun ismlarni tashlab ketyapsizmi? Ramnda nima o'zi?
-Yo'q. Ramda. Lambda kabi. Bilasizmi, Devid Chembersning kutubxonasi?
Devid kim?
- Devid Chambers. Ajoyib yigit. O'rtacha to'ntarish o'yinini o'ynaydi. Ramda uchun hissa qo'shuvchilardan biri. Agar siz funktsional dasturlashni o'rganishga jiddiy yondashsangiz, Erik Meijerni ham tekshirishingiz kerak.
Erik Meyjer esa...?
-Funktsional dasturchi ham. Ajoyib yigit. Uning ko'plab taqdimotlari bor, u bu g'alati rangli ko'ylakdan foydalanganda Agile-ni tashlab yuboradi. Bundan tashqari, Tj, Jash Kenas, Sindre Sorxus, Pol Irish, Addy Osmani-dan ba'zi narsalarni tekshirishingiz kerak.
Kelishdikmi. Men sizni u erda to'xtataman. Bularning barchasi yaxshi va yaxshi, lekin menimcha, bularning barchasi shunchaki ma'lumotlarni olish va ko'rsatish uchun juda murakkab va keraksiz. Ishonchim komilki, bu odamlarni bilishim yoki dinamik ma'lumotlarga ega jadval yaratish uchun hamma narsani o'rganishim shart emas. Keling, Reactga qaytaylik. React yordamida serverdan ma'lumotlarni qanday olishim mumkin?
- Xo'sh, siz React bilan ma'lumotlarni olmaysiz, shunchaki React bilan ma'lumotlarni ko'rsatasiz.
Oh, jin ursin. Xo'sh, ma'lumotlarni olish uchun nimadan foydalanasiz?
- Serverdan ma'lumotlarni olish uchun Fetch-dan foydalanasiz.
Uzr so'rayman? Ma'lumotlarni olish uchun Fetch dan foydalanasizmi? Kim bu narsalarni nomlasa, tezaurus kerak.
-Men bilaman, to'g'rimi? Fetch bu serverga qarshi XMLHttpRequestsni bajarish uchun mahalliy dasturning nomi.
Oh, shunday AJAX.
-AJAX bu faqat XMLHttpRequests dan foydalanish. Lekin, albatta. Fetch sizga va'dalar asosida AJAXni amalga oshirishga imkon beradi, keyin esa uni qayta qo'ng'iroq qilish do'zaxidan qochish uchun hal qilishingiz mumkin.
Qayta qo'ng'iroq qilish jahannam?
-Ha. Har safar serverga qarshi asinxron so'rovni amalga oshirganingizda, uning javobini kutishingiz kerak, bu esa sizni funktsiya ichida funktsiyani qo'shishga majbur qiladi, bu esa do'zaxdan qayta qo'ng'iroq piramidasi deb ataladi.
Oh, yaxshi. Va bu va'da ishi buni hal qiladimi?
-Haqiqatdan ham. Va'dalar orqali qayta qo'ng'iroqlaringizni manipulyatsiya qilish orqali siz tushunarli kod yozishingiz, ularni masxara qilishingiz va sinab ko'rishingiz, shuningdek, bir vaqtning o'zida so'rovlarni bajarishingiz va ularning barchasi yuklanishini kutishingiz mumkin.
Va buni Fetch bilan qilish mumkinmi?
-Ha, lekin foydalanuvchi doim yashil brauzerdan foydalansa, aks holda siz Fetch polifillni kiritishingiz yoki Request, Bluebird yoki Axios-dan foydalanishingiz kerak.
Xudo uchun qancha kutubxonani bilishim kerak? Ularning nechtasi bor?
- Bu JavaScript. Hammasi bir xil ishni bajaradigan minglab kutubxonalar bo'lishi kerak. Biz kutubxonalarni bilamiz, aslida bizda eng yaxshi kutubxonalar bor. Bizning kutubxonalarimiz juda yaxshi va ba'zida biz ularga Gay Fieri rasmlarini qo'shamiz.
Siz hozirgina Gay Fieri dedingizmi? Keling, buni yakunlaylik. Ushbu Bluebird, Request, Axios kutubxonalari nima qiladi?
-Ular va'dalarni qaytaradigan XMLHttpRequestsni bajarish uchun kutubxonalardir.
JQuery-ning AJAX usuli ham va'dalarni qaytarishni boshlamadimi?
-Biz 2016-yilda “J” so‘zini ishlatmaymiz. Faqat Fetch-dan foydalaning va brauzerda bo'lmaganida uni polifilllang yoki uning o'rniga Bluebird, Request yoki Axios-dan foydalaning. Keyin va'dani async funktsiyasi va boom ichida kutish bilan boshqaring, sizda to'g'ri boshqaruv oqimi mavjud.
Siz uchinchi marta kutmoqdasiz, lekin bu nima ekanligini bilmayman.
-Await asinxron qo'ng'iroqni bloklash imkonini beradi, bu sizga ma'lumotlar qachon olinishini yaxshiroq nazorat qilish va umuman kodni o'qish qobiliyatini oshirish imkonini beradi. Bu ajoyib, siz Babel-da 3-bosqich oldindan o'rnatilganini qo'shganingizga ishonch hosil qilishingiz yoki sintaksis-async-funksiyalari va transform-async-to-generator plaginini ishlatishingiz kerak.
Bu aqldan ozgan.
-Yo'q, aqldan ozgan narsa shundaki, siz Typescript kodini oldindan kompilyatsiya qilishingiz va kutishdan foydalanish uchun uni Babel bilan transpilyatsiya qilishingiz kerak.
Nima? U Typescriptga kiritilmaganmi?
-Bu keyingi versiyada ishlaydi, lekin 1.7-versiyasidan boshlab u faqat ES6-ga mo'ljallangan, shuning uchun agar siz brauzerda await-dan foydalanmoqchi bo'lsangiz, avval ES6-ga mo'ljallangan Typescript kodingizni, keyin esa ES5-ni nishonga oladigan Babel kodini kompilyatsiya qilishingiz kerak.
Shu nuqtada nima deyishni bilmayman.
- Qarang, bu oson. Typescript-da hamma narsani kodlash. Fetch-dan foydalanadigan barcha modullar ularni ES6-ni nishonga olish uchun kompilyatsiya qiladi, ularni Babel bilan 3-bosqichda oldindan o'rnatadi va SystemJS bilan yuklaydi. Agar sizda Fetch bo'lmasa, uni polifilllang yoki Bluebird, Request yoki Axios-dan foydalaning va barcha va'dalaringizni kutish bilan bajaring.
Bizda oson ta'riflar juda xilma-xil. Shunday qilib, ushbu marosim bilan men nihoyat ma'lumotlarni oldim va endi uni React bilan ko'rsatishim mumkinmi?
- Sizning arizangiz har qanday davlat o'zgarishlarini ko'rib chiqadimi?
Err, men bunday deb o'ylamayman. Men faqat ma'lumotlarni ko'rsatishim kerak.
-Oh, xudoga shukur. Aks holda men sizga Flux va Flummox, Alt, Fluxible kabi ilovalarni tushuntirishim kerak edi. Rostini aytsam, siz Redux-dan foydalanishingiz kerak.
Men bu nomlar ustida uchib ketaman. Shunga qaramay, men faqat ma'lumotlarni ko'rsatishim kerak.
-Oh, agar siz shunchaki ma'lumotlarni ko'rsatayotgan bo'lsangiz, sizga React kerak emas edi. Siz shablonli dvigatel bilan yaxshi bo'lardingiz.
Hazillashyapsanmi? Sizningcha, bu kulgilimi? Siz yaqinlaringizga shunday munosabatda bo'lasizmi?
- Men faqat nimadan foydalanish mumkinligini tushuntirdim.
STOP. Faqat to'xtang.
- Aytmoqchimanki, agar u shunchaki shablonlash mexanizmidan foydalansa ham, men sizning o'rningizda bo'lsam, Typescript + SystemJS + Babel kombinatsiyasidan foydalanardim.
Men Sub Zero-ning asl MK halokatini amalga oshirish emas, balki sahifada ma'lumotlarni ko'rsatishim kerak. Menga qanday shablon mexanizmini ishlatishni ayting va men uni u yerdan olaman.
- Ko'p, qaysi biri bilan tanishsiz?
Uh, ismini eslay olmayman. Bu uzoq vaqt oldin edi.
-jShablonlar? jQote? SOZAMI?
Xato, qo‘ng‘iroq jiringlamaydi. Yana biri?
- Shaffoflikmi? JSRender? MarkupJS? KnockoutJS? Bu ikki tomonlama bog'lanishga ega edi.
Yana biri?
-PlatesJS? jQuery-tmpl? Rulda? Ba'zi odamlar hali ham undan foydalanishadi.
Balki. Oxirgisiga o'xshashlar bormi?
- Mo'ylov, pastki chiziq? O'ylaymanki, hozir hatto lodash ham halol bo'lishi kerak, lekin bu 2014 yil.
Xato... balki yangiroq bo'lgandir.
- Jade? DustJS?
Yo'q.
-DotJS? EJS?
Yo'q.
- Rahibalarmi? EKT?
Yo'q.
-Mah, baribir Coffeescript sintaksisini hech kim yoqtirmaydi. Jade?
Yo'q, siz allaqachon Jade dedingiz.
- Men Pugni nazarda tutgan edim. Men Jadeni nazarda tutgan edim. Aytmoqchimanki, Jade endi Pug.
Xo'rsin. Yo'q. Eslay olmayman. Qaysi birini ishlatgan bo'lardingiz?
-Ehtimol, faqat ES6 mahalliy shablon satrlari.
Menga taxmin qilaylik. Va bu ES6 ni talab qiladi.
-To'g'ri.
Qaysi brauzerdan foydalanayotganimga qarab, Babel kerak.
-To'g'ri.
Ya'ni, agar men butun asosiy kutubxonani qo'shmasdan qo'shmoqchi bo'lsam, uni npm dan modul sifatida yuklashim kerak.
-To'g'ri.
Bu Browserify yoki Wepback-ni yoki, ehtimol, SystemJS deb nomlangan boshqa narsani talab qiladi.
-To'g'ri.
Bu, agar u Webpack bo'lmasa, ideal tarzda vazifalarni bajaruvchi tomonidan boshqarilishi kerak.
- To'g'ri.
Ammo, men funktsional dasturlash va yoziladigan tillardan foydalanishim kerakligi sababli, men avval Typescriptni oldindan kompilyatsiya qilishim yoki ushbu Flow narsasini qo'shishim kerak.
-To'g'ri.
Va agar men kutishdan foydalanmoqchi bo'lsam, buni Bobilga yuboring.
-To'g'ri.
Shunday qilib, men Fetch, va'dalar va oqimni boshqarish va barcha sehrlardan foydalanishim mumkin.
-Faqat qo'llab-quvvatlanmasa, Fetch-ni polifilllashni unutmang, Safari hali ham uni boshqara olmaydi.
Bilasizmi nima. Menimcha, biz bu erda tugatdik. Aslida, men tugatdim deb o'ylayman. Men veb bilan tugatdim, men JavaScript-ni butunlay tugatdim.
- Yaxshi, bir necha yildan keyin hammamiz Elm yoki WebAssembly-da kodlashni boshlaymiz.
Men faqat orqa qismga qaytmoqchiman. Men bu ko'p o'zgarishlar va versiyalar, nashrlar, kompilyatorlar va transpilerlarni bajara olmayman. JavaScript hamjamiyati, agar kimdir buni davom ettira oladi deb o'ylasa, aqldan ozadi.
- Eshityapman. Keyin Python hamjamiyatini sinab ko'rishingiz kerak.
Nega?
- Python 3 haqida eshitganmisiz?
Yangilash: Yozuv xatolari va xatolarini ko'rsatganingiz uchun tashakkur, men maqolani ta'kidlanganidek yangilayman. HackerNews va Reddit -da muhokama .