ບໍ່ມີ ກອບ JavaScript ຖືກສ້າງຂື້ນໃນລະຫວ່າງການຂຽນບົດຄວາມນີ້.
ຕໍ່ໄປນີ້ແມ່ນໄດ້ຮັບການດົນໃຈຈາກບົດຄວາມ “ມັນເປັນອະນາຄົດ” ຈາກ Circle CI. ທ່ານສາມາດອ່ານຕົ້ນສະບັບ ໄດ້ທີ່ນີ້ . ຊິ້ນນີ້ແມ່ນພຽງແຕ່ຄວາມຄິດເຫັນ, ແລະຄືກັບກອບ JavaScript, ມັນບໍ່ຄວນຖືກປະຕິບັດຢ່າງຈິງຈັງ.
Hey, ຂ້ອຍໄດ້ຮັບໂຄງການເວັບໃຫມ່ນີ້, ແຕ່ເພື່ອຄວາມຊື່ສັດ, ຂ້ອຍບໍ່ໄດ້ຂຽນລະຫັດເວັບຫຼາຍໃນສອງສາມປີແລະຂ້ອຍໄດ້ຍິນພູມສັນຖານປ່ຽນແປງເລັກນ້ອຍ. ເຈົ້າເປັນນັກພັດທະນາເວັບທີ່ທັນສະໄໝທີ່ສຸດຢູ່ບ່ອນນີ້ບໍ?
- ຄໍາສັບຕົວຈິງແມ່ນວິສະວະກອນ Front End, ແຕ່ແມ່ນແລ້ວ, ຂ້ອຍແມ່ນຄົນທີ່ຖືກຕ້ອງ. ຂ້ອຍເຮັດເວັບໃນປີ 2016. Visualisations, music player, flying drones that play football, you name it. ຂ້ອຍພຽງແຕ່ກັບຄືນມາຈາກ JsConf ແລະ ReactConf, ດັ່ງນັ້ນຂ້ອຍຮູ້ວ່າເຕັກໂນໂລຢີຫຼ້າສຸດໃນການສ້າງແອັບຯເວັບ.
ເຢັນ. ຂ້ອຍຈໍາເປັນຕ້ອງສ້າງຫນ້າທີ່ສະແດງກິດຈະກໍາຫຼ້າສຸດຈາກຜູ້ໃຊ້, ດັ່ງນັ້ນຂ້ອຍພຽງແຕ່ຕ້ອງການເອົາຂໍ້ມູນຈາກຈຸດສິ້ນສຸດ REST ແລະສະແດງມັນຢູ່ໃນຕາຕະລາງການກັ່ນຕອງບາງ, ແລະປັບປຸງມັນຖ້າມີຫຍັງປ່ຽນແປງໃນເຄື່ອງແມ່ຂ່າຍ. ຂ້ອຍຄິດວ່າອາດຈະໃຊ້ jQuery ເພື່ອດຶງຂໍ້ມູນແລະສະແດງຂໍ້ມູນ?
- ໂອ້ພຣະເຈົ້າບໍ່, ບໍ່ມີໃຜໃຊ້ jQuery ອີກຕໍ່ໄປ. ທ່ານຄວນພະຍາຍາມຮຽນຮູ້ React, ມັນແມ່ນ 2016.
ໂອ້, ຕົກລົງ. ປະຕິກິລິຍາແມ່ນຫຍັງ?
- ມັນເປັນຫ້ອງສະຫມຸດທີ່ເຢັນທີ່ສຸດທີ່ເຮັດໂດຍຜູ້ຊາຍບາງຄົນໃນເຟສບຸກ, ມັນກໍ່ນໍາເອົາການຄວບຄຸມແລະການປະຕິບັດໃຫ້ກັບແອັບພລິເຄຊັນຂອງເຈົ້າ, ໂດຍຊ່ວຍໃຫ້ທ່ານສາມາດຈັດການການປ່ຽນແປງມຸມເບິ່ງຕ່າງໆໄດ້ຢ່າງງ່າຍດາຍ.
ຟັງຄືວ່າດີ. ຂ້ອຍສາມາດໃຊ້ React ເພື່ອສະແດງຂໍ້ມູນຈາກເຊີບເວີໄດ້ບໍ?
- ແມ່ນແລ້ວ, ແຕ່ທໍາອິດທ່ານຈໍາເປັນຕ້ອງເພີ່ມ React ແລະ React DOM ເປັນຫ້ອງສະຫມຸດໃນຫນ້າເວັບຂອງທ່ານ.
ລໍຖ້າ, ເປັນຫຍັງສອງຫ້ອງສະຫມຸດ?
- ດັ່ງນັ້ນຫນຶ່ງແມ່ນຫ້ອງສະຫມຸດຕົວຈິງແລະອັນທີສອງແມ່ນສໍາລັບການຈັດການ DOM, ເຊິ່ງໃນປັດຈຸບັນທ່ານສາມາດອະທິບາຍໃນ JSX.
JSX? JSX ແມ່ນຫຍັງ?
-JSX ແມ່ນພຽງແຕ່ການຂະຫຍາຍ syntax JavaScript ທີ່ຄ້າຍຄືກັບ XML. ມັນເປັນວິທີອື່ນທີ່ຈະອະທິບາຍ DOM, ຄິດວ່າມັນເປັນ HTML ທີ່ດີກວ່າ.
HTML ແມ່ນຫຍັງຜິດ?
-ມັນແມ່ນປີ 2016. ບໍ່ມີໃຜຂຽນລະຫັດ HTML ໂດຍກົງອີກຕໍ່ໄປ.
ສິດ. ແລ້ວ, ຖ້າຂ້ອຍເພີ່ມສອງຫ້ອງສະຫມຸດນີ້ແລ້ວຂ້ອຍສາມາດໃຊ້ React ໄດ້ບໍ?
- ບໍ່ແມ່ນຂ້ອນຂ້າງ. ທ່ານຈໍາເປັນຕ້ອງເພີ່ມ Babel, ແລະຫຼັງຈາກນັ້ນທ່ານສາມາດນໍາໃຊ້ React.
ຫໍສະໝຸດອື່ນບໍ? Babel ແມ່ນຫຍັງ?
-Oh, Babel ແມ່ນ transpiler ທີ່ອະນຸຍາດໃຫ້ທ່ານເພື່ອເປົ້າຫມາຍສະບັບສະເພາະຂອງ JavaScript, ໃນຂະນະທີ່ທ່ານຂຽນລະຫັດໃນສະບັບຂອງ JavaScript ໃດ. ທ່ານບໍ່ຈໍາເປັນຕ້ອງລວມເອົາ Babel ເພື່ອໃຊ້ ReactJS, ແຕ່ເວັ້ນເສຍແຕ່ວ່າທ່ານເຮັດ, ທ່ານກໍາລັງຕິດຢູ່ກັບການໃຊ້ ES5, ແລະຂໍໃຫ້ເປັນຈິງ, ມັນແມ່ນປີ 2016, ທ່ານຄວນຂຽນລະຫັດໃນ ES2016+ ຄືກັບເດັກນ້ອຍທີ່ເຢັນ.
ES5? ES2016+? ຂ້ອຍກຳລັງຫຼົງທາງຢູ່ບ່ອນນີ້. ES5 ແລະ ES2016+ ແມ່ນຫຍັງ?
-ES5 ຫຍໍ້ມາຈາກ ECMAScript 5. ມັນເປັນສະບັບທີ່ຄົນສ່ວນໃຫຍ່ຕັ້ງເປົ້າໝາຍຕັ້ງແຕ່ມັນຖືກປະຕິບັດໂດຍຕົວທ່ອງເວັບສ່ວນໃຫຍ່ໃນປັດຈຸບັນ.
ECMAScript?
- ແມ່ນແລ້ວ, ເຈົ້າຮູ້, ມາດຕະຖານການຂຽນ JavaScript ແມ່ນອີງໃສ່ໃນປີ 1999 ຫຼັງຈາກການເປີດຕົວຄັ້ງທໍາອິດໃນປີ 1995, ກັບຄືນໄປໃນເວລາທີ່ JavaScript ມີຊື່ວ່າ Livescript ແລະພຽງແຕ່ດໍາເນີນການຢູ່ໃນ Netscape Navigator. ນັ້ນເປັນເລື່ອງທີ່ສັບສົນຫຼາຍໃນເມື່ອກ່ອນ, ແຕ່ຂອບໃຈໃນປັດຈຸບັນສິ່ງທີ່ຈະແຈ້ງຫຼາຍ ແລະພວກເຮົາມີ 7 ສະບັບຂອງການຈັດຕັ້ງປະຕິບັດນີ້.
7 ສະບັບ. ສໍາລັບທີ່ແທ້ຈິງ. ແລະ ES5 ແລະ ES2016+ ແມ່ນ?
- ສະບັບທີຫ້າແລະທີເຈັດຕາມລໍາດັບ.
ລໍຖ້າ, ສິ່ງທີ່ເກີດຂຶ້ນກັບຄັ້ງທີ VI?
- ເຈົ້າຫມາຍຄວາມວ່າ ES6? ແລ້ວ, ຂ້າພະເຈົ້າຫມາຍຄວາມວ່າ, ແຕ່ລະສະບັບແມ່ນ superset ຂອງຫນຶ່ງທີ່ຜ່ານມາ, ດັ່ງນັ້ນຖ້າຫາກວ່າທ່ານກໍາລັງໃຊ້ ES2016+, ທ່ານກໍາລັງໃຊ້ຄຸນສົມບັດທັງຫມົດຂອງສະບັບທີ່ຜ່ານມາ.
ສິດ. ແລະເປັນຫຍັງຕ້ອງໃຊ້ ES2016+ ຫຼາຍກວ່າ ES6 ແລ້ວ?
-ດີ, ທ່ານສາມາດໃຊ້ ES6, ແຕ່ເພື່ອໃຊ້ຄຸນສົມບັດເຢັນໆເຊັ່ນ async ແລະລໍຖ້າ, ທ່ານຈໍາເປັນຕ້ອງໃຊ້ ES2016+. ຖ້າບໍ່ດັ່ງນັ້ນ, ທ່ານກໍາລັງຕິດຢູ່ກັບເຄື່ອງກໍາເນີດ ES6 ທີ່ມີ coroutines ເພື່ອສະກັດການໂທ asynchronous ສໍາລັບການຄວບຄຸມທີ່ເຫມາະສົມ.
ຂ້ອຍບໍ່ຮູ້ວ່າເຈົ້າເວົ້າຫຍັງ, ແລະຊື່ທັງຫມົດນີ້ແມ່ນສັບສົນ. ເບິ່ງ, ຂ້ອຍພຽງແຕ່ໂຫລດຂໍ້ມູນຈາກເຄື່ອງແມ່ຂ່າຍ, ຂ້ອຍເຄີຍສາມາດລວມເອົາ jQuery ຈາກ CDN ແລະພຽງແຕ່ໄດ້ຮັບຂໍ້ມູນດ້ວຍການໂທ AJAX, ເປັນຫຍັງຂ້ອຍຈຶ່ງເຮັດບໍ່ໄດ້?
- ມັນເປັນຜູ້ຊາຍປີ 2016, ບໍ່ມີໃຜໃຊ້ jQuery ອີກຕໍ່ໄປ, ມັນຈົບລົງໃນລະຫັດ spaghetti ຫຼາຍ. ທຸກຄົນຮູ້ວ່າ.
ສິດ. ດັ່ງນັ້ນທາງເລືອກຂອງຂ້ອຍແມ່ນການໂຫຼດສາມຫ້ອງສະຫມຸດເພື່ອດຶງຂໍ້ມູນແລະສະແດງຕາຕະລາງ HTML.
- ດີ, ທ່ານລວມເອົາສາມຫ້ອງສະຫມຸດເຫຼົ່ານັ້ນແຕ່ມັດພວກເຂົາຂຶ້ນກັບຕົວຈັດການໂມດູນເພື່ອໂຫລດໄຟລ໌ດຽວເທົ່ານັ້ນ.
ຂ້ອຍເຫັນ. ແລະຜູ້ຈັດການໂມດູນແມ່ນຫຍັງ?
- ຄໍານິຍາມແມ່ນຂຶ້ນກັບສະພາບແວດລ້ອມ, ແຕ່ໃນເວັບໂດຍທົ່ວໄປແລ້ວພວກເຮົາຫມາຍເຖິງສິ່ງໃດແດ່ທີ່ສະຫນັບສະຫນູນໂມດູນ AMD ຫຼື CommonJS.
Riiight. ແລະ AMD ແລະ CommonJS ແມ່ນ…?
- ຄໍານິຍາມ. ມີວິທີການອະທິບາຍວິທີການຫຼາຍຫ້ອງສະຫມຸດ JavaScript ແລະຫ້ອງຮຽນຄວນພົວພັນກັບ. ທ່ານຮູ້, ສົ່ງອອກແລະຕ້ອງການ? ທ່ານສາມາດຂຽນໄຟລ໌ JavaScript ຫຼາຍອັນທີ່ກໍານົດ AMD ຫຼື CommonJS API ແລະທ່ານສາມາດນໍາໃຊ້ບາງສິ່ງບາງຢ່າງເຊັ່ນ Browserify ເພື່ອມັດພວກມັນ.
ຕົກລົງ, ມັນສົມເຫດສົມຜົນ ... ຂ້ອຍຄິດວ່າ. Browserify ແມ່ນຫຍັງ?
- ມັນເປັນເຄື່ອງມືທີ່ອະນຸຍາດໃຫ້ທ່ານສາມາດມັດ CommonJS ອະທິບາຍການຂຶ້ນກັບໄຟລ໌ທີ່ສາມາດດໍາເນີນການໃນຕົວທ່ອງເວັບ. ມັນຖືກສ້າງຂື້ນເພາະວ່າຄົນສ່ວນໃຫຍ່ເຜີຍແຜ່ການເພິ່ງພາອາໄສເຫຼົ່ານັ້ນຢູ່ໃນທະບຽນ npm.
npm ທະບຽນ?
- ມັນເປັນບ່ອນເກັບມ້ຽນສາທາລະນະໃຫຍ່ຫຼາຍທີ່ຄົນສະຫລາດເອົາລະຫັດແລະການເພິ່ງພາອາໄສເປັນໂມດູນ.
ຄືກັບ CDN ບໍ?
- ບໍ່ແມ່ນແທ້. ມັນຄ້າຍຄືກັບຖານຂໍ້ມູນສູນກາງທີ່ທຸກຄົນສາມາດເຜີຍແຜ່ແລະດາວໂຫລດຫ້ອງສະຫມຸດໄດ້, ດັ່ງນັ້ນທ່ານສາມາດນໍາໃຊ້ພວກມັນຢູ່ໃນທ້ອງຖິ່ນເພື່ອພັດທະນາແລະຫຼັງຈາກນັ້ນອັບໂຫຼດພວກມັນໃສ່ CDN ຖ້າທ່ານຕ້ອງການ.
ໂອ້, ຄື Bower!
- ແມ່ນແລ້ວ, ແຕ່ມັນແມ່ນປີ 2016, ບໍ່ມີໃຜໃຊ້ Bower ອີກຕໍ່ໄປ.
ໂອ້, ຂ້ອຍເຫັນ ... ສະນັ້ນຂ້ອຍຈໍາເປັນຕ້ອງດາວໂຫລດຫ້ອງສະຫມຸດຈາກ npm ແລ້ວ?
- ແມ່ນແລ້ວ. ດັ່ງນັ້ນ, ສໍາລັບຕົວຢ່າງ, ຖ້າທ່ານຕ້ອງການໃຊ້ React, ທ່ານດາວໂຫລດໂມດູນ React ແລະນໍາເຂົ້າໃນລະຫັດຂອງທ່ານ. ທ່ານສາມາດເຮັດສິ່ງນັ້ນໄດ້ສໍາລັບເກືອບທຸກຫ້ອງສະຫມຸດ JavaScript ທີ່ນິຍົມ.
ໂອ້ຍ, ຄື Angular!
-Angular ແມ່ນສະນັ້ນ 2015. ແຕ່ແມ່ນ. Angular ຈະຢູ່ທີ່ນັ້ນ, ຄຽງຄູ່ກັບ VueJS ຫຼື RxJS ແລະຫ້ອງສະຫມຸດເຢັນໆ 2016 ອື່ນໆ. ຕ້ອງການຮຽນຮູ້ກ່ຽວກັບສິ່ງເຫຼົ່ານັ້ນ?
ໃຫ້ຕິດກັບ React, ຂ້ອຍ ກຳ ລັງຮຽນຮູ້ຫຼາຍຢ່າງເກີນໄປດຽວນີ້. ດັ່ງນັ້ນ, ຖ້າຂ້ອຍຈໍາເປັນຕ້ອງໃຊ້ React ຂ້ອຍດຶງມັນຈາກ npm ນີ້ແລະຫຼັງຈາກນັ້ນໃຊ້ Browserify ນີ້ບໍ?
- ແມ່ນແລ້ວ.
ມັນເບິ່ງຄືວ່າສັບສົນເກີນໄປທີ່ຈະພຽງແຕ່ຍຶດເອົາການເພິ່ງພາອາໄສແລະຜູກມັດພວກມັນເຂົ້າກັນ.
- ມັນແມ່ນ, ນັ້ນແມ່ນເຫດຜົນທີ່ທ່ານໃຊ້ຜູ້ຈັດການວຽກງານເຊັ່ນ Grunt ຫຼື Gulp ຫຼື Broccoli ເພື່ອອັດຕະໂນມັດການແລ່ນ Browserify. Heck, ທ່ານຍັງສາມາດໃຊ້ Mimosa.
ຂີ້ອາຍ? ອຶ? ບຣັອກໂຄລີ? Mimosa? ພວກເຮົາກໍາລັງລົມກັນກ່ຽວກັບຕອນນີ້?
- ຜູ້ຈັດການວຽກງານ. ແຕ່ພວກມັນບໍ່ເຢັນອີກຕໍ່ໄປ. ພວກເຮົາໄດ້ໃຊ້ພວກມັນຄືກັບປີ 2015, ຫຼັງຈາກນັ້ນພວກເຮົາໄດ້ໃຊ້ Makefiles, ແຕ່ຕອນນີ້ພວກເຮົາຫໍ່ທຸກຢ່າງດ້ວຍ Webpack.
Makefiles? ຂ້າພະເຈົ້າຄິດວ່າສ່ວນຫຼາຍແມ່ນໃຊ້ໃນໂຄງການ C ຫຼື C ++.
- ແມ່ນແລ້ວ, ແຕ່ປາກົດຂື້ນຢູ່ໃນເວັບທີ່ພວກເຮົາມັກເຮັດໃຫ້ສິ່ງທີ່ສັບສົນແລະຫຼັງຈາກນັ້ນກັບຄືນໄປບ່ອນພື້ນຖານ. ພວກເຮົາເຮັດແນວນັ້ນທຸກໆປີ, ພຽງແຕ່ລໍຖ້າມັນ, ພວກເຮົາຈະເຮັດການຊຸມນຸມຢູ່ໃນເວັບໃນຫນຶ່ງປີຫຼືສອງປີ.
ຮ້ອງໄຫ້. ທ່ານກ່າວເຖິງບາງສິ່ງບາງຢ່າງທີ່ເອີ້ນວ່າ Webpack?
- ມັນເປັນຕົວຈັດການໂມດູນອື່ນສໍາລັບຕົວທ່ອງເວັບໃນຂະນະທີ່ເປັນປະເພດຂອງ runner ວຽກງານເຊັ່ນດຽວກັນ. ມັນຄ້າຍຄືກັບ Browserify ເວີຊັນທີ່ດີກວ່າ.
ໂອເຄ. ເປັນຫຍັງມັນດີກວ່າ?
- ດີ, ອາດຈະບໍ່ດີກວ່າ, ມັນເປັນພຽງແຕ່ຄວາມຄິດເຫັນຫຼາຍກ່ຽວກັບວິທີການຂຶ້ນກັບການຜູກມັດຂອງທ່ານ. Webpack ອະນຸຍາດໃຫ້ທ່ານໃຊ້ຕົວຈັດການໂມດູນທີ່ແຕກຕ່າງກັນ, ແລະບໍ່ພຽງແຕ່ CommonJS ເທົ່ານັ້ນ, ດັ່ງນັ້ນຕົວຢ່າງທີ່ສະຫນັບສະຫນູນ ES6 ແບບພື້ນເມືອງ.
ຂ້ອຍສັບສົນທີ່ສຸດກັບເລື່ອງ CommonJS/ES6 ທັງໝົດນີ້.
- ທຸກຄົນແມ່ນ, ແຕ່ທ່ານບໍ່ຄວນສົນໃຈກັບ SystemJS ອີກຕໍ່ໄປ.
ພຣະເຢຊູຄຣິດ, ຊື່ອື່ນ -js. ຕົກລົງ, ແລະນີ້ SystemJS ແມ່ນຫຍັງ?
-Well, ບໍ່ເຫມືອນກັບ Browserify ແລະ Webpack 1.x, SystemJS ເປັນຕົວໂຫຼດໂມດູນແບບເຄື່ອນໄຫວທີ່ຊ່ວຍໃຫ້ທ່ານສາມາດຜູກມັດຫຼາຍໂມດູນໃນຫຼາຍໄຟລ໌ແທນທີ່ຈະມັດພວກມັນຢູ່ໃນໄຟລ໌ໃຫຍ່.
ລໍຖ້າ, ແຕ່ຂ້ອຍຄິດວ່າພວກເຮົາຕ້ອງການສ້າງຫ້ອງສະຫມຸດຂອງພວກເຮົາໃນໄຟລ໌ໃຫຍ່ຫນຶ່ງແລະໂຫລດນັ້ນ!
- ແມ່ນແລ້ວ, ແຕ່ເນື່ອງຈາກວ່າ HTTP/2 ກໍາລັງມາໃນປັດຈຸບັນການຮ້ອງຂໍ HTTP ຫຼາຍແມ່ນດີກວ່າ.
ລໍຖ້າ, ດັ່ງນັ້ນພວກເຮົາບໍ່ສາມາດເພີ່ມສາມຫ້ອງສະຫມຸດຕົ້ນສະບັບສໍາລັບ React ??
- ບໍ່ແມ່ນແທ້. ຂ້າພະເຈົ້າຫມາຍຄວາມວ່າ, ທ່ານສາມາດເພີ່ມພວກມັນເປັນສະຄິບພາຍນອກຈາກ CDN, ແຕ່ທ່ານຍັງຈະຕ້ອງໃສ່ Babel ຕໍ່ໄປ.
ຮ້ອງໄຫ້. ແລະນັ້ນແມ່ນບໍ່ດີບໍ?
- ແມ່ນແລ້ວ, ເຈົ້າຈະລວມເອົາທັງ babel-core, ແລະມັນຈະບໍ່ມີປະສິດທິພາບໃນການຜະລິດ. ໃນການຜະລິດ, ທ່ານຈໍາເປັນຕ້ອງໄດ້ປະຕິບັດຊຸດຂອງວຽກງານລ່ວງຫນ້າເພື່ອໃຫ້ໂຄງການຂອງທ່ານກຽມພ້ອມທີ່ເຮັດໃຫ້ພິທີການເພື່ອເອີ້ນຊາຕານເບິ່ງຄືວ່າເປັນສູດໄຂ່ຕົ້ມ. ທ່ານຈໍາເປັນຕ້ອງໄດ້ຫຼຸດຜ່ອນຊັບສິນ, uglify ໃຫ້ເຂົາເຈົ້າ, inline css ຂ້າງເທິງເທົ່ານັ້ນ, defer scripts, ເຊັ່ນດຽວກັນກັບ -
ຂ້ອຍໄດ້ຮັບມັນ, ຂ້ອຍໄດ້ຮັບມັນ. ດັ່ງນັ້ນຖ້າທ່ານບໍ່ລວມເອົາຫ້ອງສະຫມຸດໂດຍກົງໃນ CDN, ທ່ານຈະເຮັດແນວໃດ?
- ຂ້ອຍຈະຖ່າຍທອດມັນຈາກ Typescript ໂດຍໃຊ້ Webpack + SystemJS + Babel combo.
ຕົວພິມ? ຂ້ອຍຄິດວ່າພວກເຮົາຂຽນລະຫັດໃນ JavaScript!
-Typescript IS JavaScript, ຫຼືດີກວ່າ, ເປັນ superset ຂອງ JavaScript, ໂດຍສະເພາະ JavaScript ໃນຮຸ່ນ ES6. ເຈົ້າຮູ້ບໍ່, ສະບັບທີ 6 ທີ່ພວກເຮົາເວົ້າມາກ່ອນ?
ຂ້າພະເຈົ້າຄິດວ່າ ES2016+ ເປັນ superset ຂອງ ES6 ແລ້ວ! ເປັນຫຍັງພວກເຮົາຕ້ອງການໃນປັດຈຸບັນນີ້ເອີ້ນວ່າ Typescript?
-Oh, ເນື່ອງຈາກວ່າມັນອະນຸຍາດໃຫ້ພວກເຮົານໍາໃຊ້ JavaScript ເປັນພາສາພິມ, ແລະຫຼຸດຜ່ອນຄວາມຜິດພາດ run-time. ມັນແມ່ນປີ 2016, ທ່ານຄວນເພີ່ມບາງປະເພດໃສ່ລະຫັດ JavaScript ຂອງທ່ານ.
ແລະ Typescript ແນ່ນອນເຮັດແນວນັ້ນ.
-Flow ເຊັ່ນດຽວກັນ, ເຖິງແມ່ນວ່າມັນພຽງແຕ່ກວດເບິ່ງການພິມໃນຂະນະທີ່ Typescript ແມ່ນ superset ຂອງ JavaScript ທີ່ຕ້ອງໄດ້ຮັບການລວບລວມ.
ໂອ້... ແລະກະແສແມ່ນບໍ?
- ມັນເປັນຕົວກວດເຊັກແບບຄົງທີ່ທີ່ເຮັດໂດຍຜູ້ຊາຍບາງຄົນໃນເຟສບຸກ. ພວກເຂົາເຈົ້າໄດ້ຂຽນລະຫັດມັນຢູ່ໃນ OCaml, ເພາະວ່າ ການຂຽນໂປຼແກຼມ ທີ່ເປັນປະໂຫຍດ ແມ່ນຫນ້າຫວາດສຽວ.
OCaml? ການຂຽນໂປຼແກຼມທີ່ມີປະໂຫຍດ?
- ມັນແມ່ນສິ່ງທີ່ເດັກນ້ອຍທີ່ເຢັນໃຊ້ໃນປັດຈຸບັນຜູ້ຊາຍ, ທ່ານຮູ້, 2016? ການຂຽນໂປຼແກຼມທີ່ມີປະໂຫຍດ? ຫນ້າທີ່ຄໍາສັ່ງສູງ? ແກງ? ຫນ້າທີ່ບໍລິສຸດ?
ຂ້ອຍບໍ່ຮູ້ວ່າເຈົ້າເວົ້າຫຍັງ.
- ບໍ່ມີໃຜເຮັດໃນຕອນເລີ່ມຕົ້ນ. ເບິ່ງ, ທ່ານພຽງແຕ່ຕ້ອງການຮູ້ວ່າການຂຽນໂປຼແກຼມທີ່ເປັນປະໂຫຍດແມ່ນດີກ່ວາ OOP ແລະນັ້ນແມ່ນສິ່ງທີ່ພວກເຮົາຄວນໃຊ້ໃນປີ 2016.
ລໍຖ້າ, ຂ້ອຍໄດ້ຮຽນ OOP ໃນວິທະຍາໄລ, ຂ້ອຍຄິດວ່າມັນດີບໍ?
- ດັ່ງນັ້ນ Java ກ່ອນທີ່ຈະຖືກຊື້ໂດຍ Oracle. ຂ້າພະເຈົ້າຫມາຍຄວາມວ່າ, OOP ແມ່ນດີໃນຍຸກສະໄຫມ, ແລະມັນຍັງມີການນໍາໃຊ້ໃນມື້ນີ້, ແຕ່ໃນປັດຈຸບັນທຸກຄົນກໍາລັງຮູ້ວ່າການດັດແກ້ລັດທຽບເທົ່າກັບການເຕະເດັກນ້ອຍ, ດັ່ງນັ້ນໃນປັດຈຸບັນທຸກຄົນກໍາລັງຍ້າຍໄປຢູ່ໃນວັດຖຸທີ່ບໍ່ປ່ຽນແປງໄດ້ແລະການຂຽນໂປຼແກຼມທີ່ເປັນປະໂຫຍດ. guys Haskell ໄດ້ໂທຫາມັນເປັນເວລາຫລາຍປີ, ແລະຢ່າເຮັດໃຫ້ຂ້ອຍເລີ່ມຕົ້ນກັບ Elm guys- ແຕ່ໂຊກດີໃນເວັບຕອນນີ້ພວກເຮົາມີຫ້ອງສະຫມຸດເຊັ່ນ Ramda ທີ່ອະນຸຍາດໃຫ້ພວກເຮົາໃຊ້ການຂຽນໂປຼແກຼມທີ່ເປັນປະໂຫຍດໃນ JavaScript ທໍາມະດາ.
ທ່ານພຽງແຕ່ຖິ້ມຊື່ສໍາລັບ sake ຂອງມັນ? Ramnda ແມ່ນຫຍັງ?
- ບໍ່. ຣາມດາ. ເຊັ່ນດຽວກັນກັບ Lambda. ທ່ານຮູ້, ທີ່ຫ້ອງສະຫມຸດ David Chambers?
David ແມ່ນໃຜ?
- David Chambers. ຜູ້ຊາຍເຢັນ. ຫຼິ້ນແນວເກມລັດຖະປະຫານທີ່ຫມາຍຄວາມວ່າ. ຫນຶ່ງໃນຜູ້ປະກອບສ່ວນສໍາລັບ Ramda. ທ່ານກໍ່ຄວນກວດເບິ່ງ Erik Meijer ຖ້າທ່ານຈິງຈັງກ່ຽວກັບການຮຽນຮູ້ການຂຽນໂປຼແກຼມທີ່ເປັນປະໂຫຍດ.
ແລະ Erik Meijer ແມ່ນ ...?
- ໂປລແກລມທີ່ມີປະໂຫຍດເຊັ່ນດຽວກັນ. ຜູ້ຊາຍຫນ້າຫວາດສຽວ. ລາວມີການນໍາສະເຫນີຫຼາຍບ່ອນທີ່ລາວຖິ້ມ Agile ໃນຂະນະທີ່ໃຊ້ເສື້ອຍືດສີແປກໆນີ້. ເຈົ້າຄວນກວດເບິ່ງບາງສິ່ງທີ່ມາຈາກ Tj, Jash Kenas, Sindre Sorhus, Paul Irish, Addy Osmani-
ຕົກລົງ. ຂ້ອຍຈະຢຸດເຈົ້າຢູ່ທີ່ນັ້ນ. ທັງຫມົດນັ້ນແມ່ນດີແລະດີ, ແຕ່ຂ້າພະເຈົ້າຄິດວ່າທັງຫມົດນັ້ນແມ່ນສັບສົນແລະບໍ່ຈໍາເປັນສໍາລັບການພຽງແຕ່ດຶງຂໍ້ມູນແລະສະແດງມັນ. ຂ້ອຍແນ່ໃຈວ່າຂ້ອຍບໍ່ຈໍາເປັນຕ້ອງຮູ້ຈັກຄົນເຫຼົ່ານີ້ຫຼືຮຽນຮູ້ສິ່ງເຫຼົ່ານັ້ນທັງຫມົດເພື່ອສ້າງຕາຕະລາງທີ່ມີຂໍ້ມູນແບບເຄື່ອນໄຫວ. ໃຫ້ກັບຄືນໄປຫາ React. ຂ້ອຍຈະເອົາຂໍ້ມູນຈາກເຊີບເວີດ້ວຍ React ໄດ້ແນວໃດ?
- ດີ, ທ່ານບໍ່ໄດ້ດຶງຂໍ້ມູນດ້ວຍ React, ທ່ານພຽງແຕ່ສະແດງຂໍ້ມູນດ້ວຍ React.
ໂອ້, ຂໍໂທດຂ້ອຍ. ດັ່ງນັ້ນເຈົ້າໃຊ້ຫຍັງເພື່ອດຶງຂໍ້ມູນ?
- ທ່ານໃຊ້ Fetch ເພື່ອດຶງຂໍ້ມູນຈາກເຄື່ອງແມ່ຂ່າຍ.
ຂ້ອຍຂໍໂທດບໍ? ເຈົ້າໃຊ້ Fetch ເພື່ອດຶງຂໍ້ມູນບໍ? ໃຜທີ່ຈະຕັ້ງຊື່ສິ່ງເຫຼົ່ານັ້ນຈໍາເປັນຕ້ອງມີພະນັກງານ.
- ຂ້ອຍຮູ້ບໍ? Fetch ມັນເປັນຊື່ຂອງການປະຕິບັດພື້ນເມືອງສໍາລັບການປະຕິບັດ XMLHttpRequests ຕໍ່ເຄື່ອງແມ່ຂ່າຍ.
ໂອ້, ດັ່ງນັ້ນ AJAX.
-AJAX ແມ່ນພຽງແຕ່ການນໍາໃຊ້ XMLHttpRequests. ແຕ່ແນ່ນອນ. Fetch ອະນຸຍາດໃຫ້ທ່ານເຮັດ AJAX ໂດຍອີງໃສ່ຄໍາສັນຍາ, ເຊິ່ງຫຼັງຈາກນັ້ນທ່ານສາມາດແກ້ໄຂເພື່ອຫຼີກເວັ້ນການ callback hell.
ໂທກັບ hell?
- ແມ່ນແລ້ວ. ທຸກໆຄັ້ງທີ່ທ່ານປະຕິບັດການຮ້ອງຂໍ asynchronous ກັບເຄື່ອງແມ່ຂ່າຍ, ທ່ານຈໍາເປັນຕ້ອງລໍຖ້າການຕອບສະຫນອງຂອງມັນ, ເຊິ່ງຫຼັງຈາກນັ້ນເຮັດໃຫ້ທ່ານເພີ່ມຫນ້າທີ່ພາຍໃນຫນ້າທີ່, ເຊິ່ງເອີ້ນວ່າ pyramid callback ຈາກ hell.
ໂອເຄ. ແລະຄໍາສັນຍານີ້ແກ້ໄຂມັນບໍ?
- ແທ້ຈິງແລ້ວ. ໂດຍການຈັດການການໂທຫາກັບຄືນໄປບ່ອນຂອງທ່ານໂດຍຜ່ານຄໍາສັນຍາ, ທ່ານສາມາດຂຽນງ່າຍກວ່າທີ່ຈະເຂົ້າໃຈລະຫັດ, ເຍາະເຍີ້ຍແລະທົດສອບໃຫ້ເຂົາເຈົ້າ, ເຊັ່ນດຽວກັນກັບປະຕິບັດຄໍາຮ້ອງຂໍພ້ອມໆກັນໃນເວລາດຽວແລະລໍຖ້າຈົນກ່ວາພວກເຂົາທັງຫມົດຖືກໂຫລດ.
ແລະທີ່ສາມາດເຮັດໄດ້ດ້ວຍ Fetch?
- ແມ່ນແລ້ວ, ແຕ່ພຽງແຕ່ຖ້າຜູ້ໃຊ້ຂອງທ່ານໃຊ້ຕົວທ່ອງເວັບສີຂຽວ, ຖ້າບໍ່ດັ່ງນັ້ນທ່ານຈໍາເປັນຕ້ອງປະກອບມີ Fetch polyfill ຫຼືໃຊ້ Request, Bluebird ຫຼື Axios.
ຂ້ອຍຈໍາເປັນຕ້ອງຮູ້ຈັກຫ້ອງສະໝຸດເພື່ອຄວາມເຫັນແກ່ພະເຈົ້າ? ມີຈໍານວນເທົ່າໃດ?
- ມັນເປັນ JavaScript. ມັນຕ້ອງມີຫ້ອງສະຫມຸດຫຼາຍພັນຫ້ອງທີ່ທຸກຄົນເຮັດສິ່ງດຽວກັນ. ພວກເຮົາຮູ້ວ່າຫ້ອງສະຫມຸດ, ໃນຄວາມເປັນຈິງ, ພວກເຮົາມີຫ້ອງສະຫມຸດທີ່ດີທີ່ສຸດ. ຫໍສະຫມຸດຂອງພວກເຮົາແມ່ນ huuuge, ແລະບາງຄັ້ງພວກເຮົາປະກອບມີຮູບພາບຂອງ Guy Fieri ໃນໃຫ້ເຂົາເຈົ້າ.
ເຈົ້າພຽງແຕ່ເວົ້າ Guy Fieri ບໍ? ໃຫ້ຂອງນີ້ໄປກັບ. ຫໍສະໝຸດ Bluebird, Request, Axios ເຫຼົ່ານີ້ເຮັດຫຍັງ?
- ພວກເຂົາເປັນຫ້ອງສະຫມຸດເພື່ອປະຕິບັດ XMLHttpRequests ທີ່ກັບຄືນຄໍາສັນຍາ.
ວິທີການ AJAX ຂອງ jQuery ເລີ່ມຕົ້ນກັບຄືນຄໍາສັນຍາເຊັ່ນກັນບໍ?
- ພວກເຮົາບໍ່ໄດ້ໃຊ້ຄໍາວ່າ "J" ໃນປີ 2016 ອີກຕໍ່ໄປ. ພຽງແຕ່ໃຊ້ Fetch, ແລະ polyfill ມັນໃນເວລາທີ່ມັນບໍ່ຢູ່ໃນຕົວທ່ອງເວັບຫຼືໃຊ້ Bluebird, Request ຫຼື Axios ແທນ. ຫຼັງຈາກນັ້ນ, ການຄຸ້ມຄອງຄໍາຫມັ້ນສັນຍາທີ່ລໍຖ້າພາຍໃນການທໍາງານ async ແລະຂະຫຍາຍຕົວ, ທ່ານມີການໄຫຼຂອງການຄວບຄຸມທີ່ເຫມາະສົມ.
ມັນເປັນຄັ້ງທີສາມທີ່ທ່ານລໍຖ້າແຕ່ຂ້າພະເຈົ້າບໍ່ຮູ້ວ່າມັນແມ່ນຫຍັງ.
-Await ຊ່ວຍໃຫ້ທ່ານສາມາດສະກັດການໂທ asynchronous, ຊ່ວຍໃຫ້ທ່ານສາມາດຄວບຄຸມໄດ້ດີກວ່າເມື່ອຂໍ້ມູນຖືກດຶງແລະເພີ່ມຄວາມສາມາດໃນການອ່ານລະຫັດ. ມັນຫນ້າຫວາດສຽວ, ທ່ານພຽງແຕ່ຕ້ອງການໃຫ້ແນ່ໃຈວ່າທ່ານເພີ່ມ stage-3 preset ໃນ Babel, ຫຼືໃຊ້ syntax-async-functions ແລະ transform-async-to-generator plugin.
ນີ້ແມ່ນບ້າ.
- ບໍ່, ບ້າແມ່ນຄວາມຈິງທີ່ວ່າທ່ານຈໍາເປັນຕ້ອງລວບລວມລະຫັດ Typescript ແລະຫຼັງຈາກນັ້ນ transpile ມັນກັບ Babel ເພື່ອໃຊ້ລໍຖ້າ.
ຈັ່ງໃດ? ມັນບໍ່ໄດ້ລວມຢູ່ໃນ Typescript ບໍ?
- ມັນເຮັດໃນຮຸ່ນຕໍ່ໄປ, ແຕ່ໃນຮຸ່ນ 1.7 ມັນພຽງແຕ່ເປົ້າຫມາຍ ES6, ດັ່ງນັ້ນຖ້າທ່ານຕ້ອງການໃຊ້ awai ໃນຕົວທ່ອງເວັບ, ທໍາອິດທ່ານຈໍາເປັນຕ້ອງລວບລວມລະຫັດ Typescript ເປົ້າຫມາຍ ES6 ແລະຫຼັງຈາກນັ້ນ Babel ທີ່ shit ເຖິງເປົ້າຫມາຍ ES5.
ໃນຈຸດນີ້ຂ້ອຍບໍ່ຮູ້ວ່າຈະເວົ້າຫຍັງ.
- ເບິ່ງ, ມັນງ່າຍ. ລະຫັດທຸກຢ່າງໃນ Typescript. ໂມດູນທັງຫມົດທີ່ໃຊ້ Fetch ລວບລວມພວກມັນເພື່ອເປົ້າຫມາຍ ES6, transpile ພວກມັນດ້ວຍ Babel ໃນຂັ້ນຕອນ preset-3, ແລະໂຫລດພວກມັນດ້ວຍ SystemJS. ຖ້າທ່ານບໍ່ມີ Fetch, polyfill ມັນ, ຫຼືໃຊ້ Bluebird, Request ຫຼື Axios, ແລະຈັດການກັບຄໍາຫມັ້ນສັນຍາທັງຫມົດຂອງທ່ານລໍຖ້າ.
ພວກເຮົາມີຄໍານິຍາມທີ່ແຕກຕ່າງກັນຫຼາຍຂອງງ່າຍ. ດັ່ງນັ້ນ, ດ້ວຍພິທີກໍານັ້ນ, ໃນທີ່ສຸດຂ້ອຍໄດ້ດຶງຂໍ້ມູນແລະຕອນນີ້ຂ້ອຍສາມາດສະແດງມັນດ້ວຍ React ຖືກຕ້ອງບໍ?
- ຄໍາຮ້ອງສະຫມັກຂອງທ່ານຈະຈັດການການປ່ຽນແປງຂອງລັດບໍ?
ເອີ, ຂ້ອຍບໍ່ຄິດຄືກັນ. ຂ້ອຍພຽງແຕ່ຕ້ອງການສະແດງຂໍ້ມູນ.
- ໂອ້, ຂອບໃຈພະເຈົ້າ. ຖ້າບໍ່ດັ່ງນັ້ນຂ້ອຍຈະຕ້ອງອະທິບາຍໃຫ້ທ່ານ Flux, ແລະການປະຕິບັດເຊັ່ນ Flummox, Alt, Fluxible. ເຖິງແມ່ນວ່າຈະມີຄວາມຊື່ສັດທ່ານຄວນໃຊ້ Redux.
ຂ້າພະເຈົ້າພຽງແຕ່ຈະບິນຜ່ານຊື່ເຫຼົ່ານັ້ນ. ອີກເທື່ອຫນຶ່ງ, ຂ້າພະເຈົ້າພຽງແຕ່ຕ້ອງການສະແດງຂໍ້ມູນ.
- ໂອ້, ຖ້າທ່ານພຽງແຕ່ສະແດງຂໍ້ມູນທີ່ທ່ານບໍ່ຕ້ອງການ React ເພື່ອເລີ່ມຕົ້ນ. ເຈົ້າຄົງຈະດີກັບເຄື່ອງຈັກສ້າງແບບຢ່າງ.
ເຈົ້າເວົ້າຫຼິ້ນຂ້ອຍບໍ? ເຈົ້າຄິດວ່າອັນນີ້ເປັນເລື່ອງຕະຫລົກບໍ? ເຈົ້າປະຕິບັດຕໍ່ຄົນທີ່ເຈົ້າຮັກແບບນັ້ນບໍ?
- ຂ້ອຍພຽງແຕ່ອະທິບາຍສິ່ງທີ່ເຈົ້າສາມາດໃຊ້.
ຢຸດ. ພຽງແຕ່ຢຸດ.
- ຂ້ອຍຫມາຍຄວາມວ່າ, ເຖິງແມ່ນວ່າມັນພຽງແຕ່ໃຊ້ເຄື່ອງຈັກແບບແມ່ແບບ, ຂ້ອຍຍັງໃຊ້ Typescript + SystemJS + Babel combo ຖ້າຂ້ອຍເປັນເຈົ້າ.
ຂ້ອຍຈໍາເປັນຕ້ອງສະແດງຂໍ້ມູນໃນຫນ້າຫນຶ່ງ, ບໍ່ປະຕິບັດການເສຍຊີວິດ MK ຕົ້ນສະບັບຂອງ Sub Zero. ພຽງແຕ່ບອກຂ້າພະເຈົ້າວ່າເຄື່ອງຈັກແມ່ແບບທີ່ຈະນໍາໃຊ້ແລະຂ້າພະເຈົ້າຈະເອົາມັນຈາກທີ່ນັ້ນ.
- ມີຫຼາຍອັນ, ເຈົ້າຄຸ້ນເຄີຍກັບອັນໃດ?
ເອີ, ຈື່ຊື່ບໍ່ໄດ້. ມັນເປັນເວລາດົນນານກ່ອນຫນ້ານີ້.
-jTemplates? jQote? ບໍລິສຸດ?
ເອີ, ບໍ່ດັງກະດິ່ງ. ອີກອັນຫນຶ່ງ?
- ຄວາມໂປ່ງໃສ? JSRender? MarkupJS? KnockoutJS? ອັນນັ້ນມີການຜູກມັດສອງທາງ.
ອີກອັນຫນຶ່ງ?
-PlatesJS? jQuery-tmpl? ມືຈັບ? ບາງຄົນຍັງໃຊ້ມັນ.
ບາງທີ. ມີຄວາມຄ້າຍຄືກັນກັບອັນສຸດທ້າຍບໍ?
- mustache, ຂີດກ້ອງ? ຂ້າພະເຈົ້າຄິດວ່າປັດຈຸບັນເຖິງແມ່ນ lodash ມີຫນຶ່ງທີ່ຈະມີຄວາມຊື່ສັດ, ແຕ່ວ່າແມ່ນປະເພດຂອງປີ 2014.
ເອີ.. ບາງທີມັນອາດຈະໃໝ່ກວ່າ.
-Jade? DustJS?
ບໍ່.
-DotJS? EJS?
ບໍ່.
-Nunjucks? ECT?
ບໍ່.
-Mah, ບໍ່ມີໃຜມັກໄວຍາກອນ Coffeescript ແນວໃດກໍ່ຕາມ. Jade?
ບໍ່, ເຈົ້າເວົ້າແລ້ວ Jade.
- ຂ້ອຍຫມາຍຄວາມວ່າ Pug. ຂ້ອຍຫມາຍເຖິງ Jade. ຂ້າພະເຈົ້າຫມາຍຄວາມວ່າ, Jade ໃນປັດຈຸບັນແມ່ນ Pug.
ຮ້ອງໄຫ້. ບໍ່. ຈື່ບໍ່ໄດ້. ເຈົ້າຈະໃຊ້ອັນໃດ?
- ອາດຈະເປັນພຽງແຕ່ ES6 ສະຕຣິງແມ່ແບບພື້ນເມືອງ.
ໃຫ້ຂ້ອຍເດົາ. ແລະນັ້ນຕ້ອງການ ES6.
- ຖືກຕ້ອງ.
ເຊິ່ງ, ຂຶ້ນກັບຕົວທ່ອງເວັບທີ່ຂ້ອຍກໍາລັງໃຊ້ຕ້ອງການ Babel.
- ຖືກຕ້ອງ.
ເຊິ່ງ, ຖ້າຂ້ອຍຕ້ອງການລວມໂດຍບໍ່ມີການເພີ່ມຫ້ອງສະຫມຸດຫຼັກທັງຫມົດ, ຂ້ອຍຈໍາເປັນຕ້ອງໂຫລດມັນເປັນໂມດູນຈາກ npm.
- ຖືກຕ້ອງ.
ເຊິ່ງ, ຕ້ອງການ Browserify, ຫຼື Wepback, ຫຼືສ່ວນຫຼາຍອາດຈະເປັນສິ່ງອື່ນທີ່ເອີ້ນວ່າ SystemJS.
- ຖືກຕ້ອງ.
ເຊິ່ງ, ເວັ້ນເສຍແຕ່ວ່າມັນເປັນ Webpack, ໂດຍສະເພາະຄວນຈະຖືກຈັດການໂດຍນັກແລ່ນວຽກ.
- ຖືກຕ້ອງ.
ແຕ່, ເນື່ອງຈາກວ່າຂ້ອຍຄວນຈະໃຊ້ການຂຽນໂປລແກລມທີ່ມີປະສິດຕິພາບແລະພາສາທີ່ພິມ, ຂ້ອຍຈໍາເປັນຕ້ອງໄດ້ລວບລວມ Typescript ກ່ອນຫຼືເພີ່ມ Flow ນີ້.
- ຖືກຕ້ອງ.
ແລະຫຼັງຈາກນັ້ນສົ່ງໃຫ້ Babel ຖ້າຂ້ອຍຕ້ອງການໃຊ້ລໍຖ້າ.
- ຖືກຕ້ອງ.
ສະນັ້ນຂ້ອຍສາມາດໃຊ້ Fetch, ສັນຍາ, ແລະຄວບຄຸມການໄຫຼເຂົ້າແລະ magic ທັງຫມົດນັ້ນ.
- ພຽງແຕ່ຢ່າລືມ polyfill Fetch ຖ້າມັນບໍ່ໄດ້ຮັບການສະຫນັບສະຫນູນ, Safari ຍັງບໍ່ສາມາດຈັດການກັບມັນໄດ້.
ເຈົ້າຮູ້ຫຍັງ. ຂ້າພະເຈົ້າຄິດວ່າພວກເຮົາເຮັດແລ້ວຢູ່ທີ່ນີ້. ຕົວຈິງແລ້ວ, ຂ້ອຍຄິດວ່າຂ້ອຍເຮັດແລ້ວ. ຂ້ອຍເຮັດແລ້ວກັບເວັບ, ຂ້ອຍເຮັດດ້ວຍ JavaScript ທັງຫມົດ.
- ນັ້ນດີ, ໃນສອງສາມປີພວກເຮົາທຸກຄົນຈະເຂົ້າລະຫັດໃນ Elm ຫຼື WebAssembly.
ຂ້ອຍພຽງແຕ່ຈະຍ້າຍໄປຢູ່ເບື້ອງຫຼັງ. ຂ້າພະເຈົ້າພຽງແຕ່ບໍ່ສາມາດຈັດການການປ່ຽນແປງຈໍານວນຫຼາຍເຫຼົ່ານີ້ແລະສະບັບແລະສະບັບ, compilers ແລະ transpilers. ຊຸມຊົນ JavaScript ແມ່ນບ້າຖ້າມັນຄິດວ່າໃຜສາມາດຕິດຕາມເລື່ອງນີ້ໄດ້.
- ຂ້ອຍໄດ້ຍິນເຈົ້າ. ທ່ານຄວນລອງຊຸມຊົນ Python ແລ້ວ.
ເປັນຫຍັງ?
- ເຄີຍໄດ້ຍິນ Python 3 ບໍ?
ປັບປຸງໃຫ້ທັນ: ຂອບໃຈສໍາລັບການຊີ້ typos ແລະຄວາມຜິດພາດ, ຂ້າພະເຈົ້າຈະປັບປຸງບົດຄວາມເປັນບັນທຶກໄວ້. ການສົນທະນາໃນ HackerNews ແລະ Reddit .