paint-brush
2016 දී JavaScript ඉගෙන ගැනීමට දැනෙන්නේ කෙසේද?විසින්@jjperezaguinaga
729,044 කියවීම්
729,044 කියවීම්

2016 දී JavaScript ඉගෙන ගැනීමට දැනෙන්නේ කෙසේද?

විසින් Jose Aguinaga11m2016/10/03
Read on Terminal Reader
Read this story w/o Javascript

දිග වැඩියි; කියවීමට

<em>මෙම ලිපිය ලිවීමේදී</em> <a href="https://hackernoon.com/tagged/javascript" target="_blank"><em>JavaScript</em></a> රාමු නිර්මාණය කර <em>නොමැත</em> .

Companies Mentioned

Mention Thumbnail
Mention Thumbnail

Coin Mentioned

Mention Thumbnail
featured image - 2016 දී JavaScript ඉගෙන ගැනීමට දැනෙන්නේ කෙසේද?
Jose Aguinaga HackerNoon profile picture

මෙම ලිපිය ලිවීමේදී JavaScript රාමු නිර්මාණය කර නොමැත .

පහත දැක්වෙන්නේ Circle CI හි "එය අනාගතයයි" යන ලිපියෙන්. ඔබට මෙහි මුල් පිටපත කියවිය හැකිය . මෙම කෑල්ල හුදෙක් මතයක් වන අතර, ඕනෑම JavaScript රාමුවක් මෙන්, එය ඉතා බැරෑරුම් ලෙස නොගත යුතුය.

හේයි, මට මෙම නව වෙබ් ව්‍යාපෘතිය ලැබුණි, නමුත් අවංකව කිවහොත් මම වසර කිහිපයකින් බොහෝ වෙබ් කේතනය කර නොමැති අතර භූ දර්ශනය ටිකක් වෙනස් වී ඇති බව මට ඇසිණි. ඔබ මෙහි ඇති වඩාත්ම යාවත්කාලීන වෙබ් සංවර්ධකයා නේද?

-ඇත්ත පදය Front End engineer, නමුත් ඔව්, මම තමයි නිවැරදි පුද්ගලයා. මම වෙබ් කරන්නේ 2016 දී. දෘශ්‍යකරණයන්, සංගීත වාදකයන්, පාපන්දු ක්‍රීඩා කරන පියාසර ඩ්‍රෝන්, ඔබ එය නම් කරන්න. මම දැන් JsConf සහ ReactConf වෙතින් ආපසු පැමිණියෙමි, එබැවින් මම වෙබ් යෙදුම් නිර්මාණය කිරීමට නවතම තාක්ෂණයන් දනිමි.

සිසිල්. මට පරිශීලකයින්ගේ නවතම ක්‍රියාකාරකම් පෙන්වන පිටුවක් නිර්මාණය කිරීමට අවශ්‍ය වේ, එබැවින් මට REST අන්ත ලක්ෂ්‍යයෙන් දත්ත ලබාගෙන එය කිසියම් පෙරහන කළ හැකි වගුවක ප්‍රදර්ශනය කිරීමට අවශ්‍ය වන අතර සේවාදායකයේ යමක් වෙනස් වුවහොත් එය යාවත්කාලීන කළ යුතුය. මම හිතුවේ සමහර විට jQuery භාවිතා කර දත්ත ලබා ගැනීමට සහ ප්‍රදර්ශනය කිරීමටද?

-අනේ දෙවියනේ නෑ, කවුරුත් jQuery පාවිච්චි කරන්නේ නැහැ. ඔබ ප්‍රතික්‍රියා ඉගෙන ගැනීමට උත්සාහ කළ යුතුය, එය 2016 වේ.

ඔහ්, හරි. ප්රතික්රියාව යනු කුමක්ද?

-එය ෆේස්බුක් හි සමහර පිරිමි ළමයින් විසින් සාදන ලද සුපිරි සිසිල් පුස්තකාලයකි, එය සැබවින්ම ඔබගේ යෙදුමට පාලනය සහ කාර්ය සාධනය ගෙන එයි, ඔබට ඕනෑම දර්ශන වෙනස් කිරීම් ඉතා පහසුවෙන් හැසිරවීමට ඉඩ සලසයි.

ඒක පිළිවෙලට ඇහෙනවා. සේවාදායකයෙන් දත්ත පෙන්වීමට මට React භාවිතා කළ හැකිද?

-ඔව්, නමුත් පළමුව ඔබ ඔබේ වෙබ් පිටුවේ පුස්තකාලයක් ලෙස React සහ React DOM එක් කළ යුතුයි.

ඉන්න, පුස්තකාල දෙකක් ඇයි?

-එබැවින් එකක් සැබෑ පුස්තකාලය වන අතර දෙවැන්න DOM හැසිරවීම සඳහා වන අතර, එය දැන් ඔබට JSX හි විස්තර කළ හැක.

JSX? JSX යනු කුමක්ද?

-JSX යනු XML මෙන් පෙනෙන JavaScript සින්ටැක්ස් දිගුවකි. එය DOM විස්තර කිරීමට තවත් ආකාරයකි, එය වඩා හොඳ HTML එකක් ලෙස සිතන්න.

HTML වල වැරැද්ද කුමක්ද?

-එය 2016. කිසිවෙක් තවදුරටත් HTML කෙලින්ම කේත නොකරයි.

හරි. කොහොමහරි මම මේ පුස්තකාල දෙක එකතු කළොත් මට React භාවිතා කරන්න පුළුවන්?

- තරමක් නොවේ. ඔබට Babel එක් කිරීමට අවශ්‍ය වන අතර, එවිට ඔබට React භාවිත කළ හැක.

තවත් පුස්තකාලයක්? බාබෙල් යනු කුමක්ද?

-ඔහ්, Babel යනු ඔබට JavaScript හි නිශ්චිත අනුවාද ඉලක්ක කිරීමට ඉඩ සලසන සම්ප්‍රේෂකයකි, ඔබ JavaScript හි ඕනෑම අනුවාදයක කේත කරන අතරතුර. ReactJS භාවිත කිරීමට ඔබට Babel ඇතුළත් කිරීමට අවශ්‍ය නැත, නමුත් ඔබ එසේ කරන්නේ නම් මිස, ඔබ ES5 භාවිත කිරීමෙහි සිරවී සිටින අතර, එය සැබෑවක් ලෙස සලකමු, එය 2016 වේ, ඔබ ES2016+ හි කේතීකරණය කළ යුත්තේ අනෙකුත් සිසිල් දරුවන් මෙන්.

ES5? ES2016+? මම මෙතන අතරමං වෙනවා. ES5 සහ ES2016+ යනු කුමක්ද?

-ES5 යනු ECMAScript 5 යන්නයි. වර්තමානයේ බොහෝ බ්‍රව්සර් මගින් ක්‍රියාත්මක කර ඇති බැවින් බොහෝ දෙනා ඉලක්ක කර ඇති සංස්කරණය එයයි.

ECMAScript ද?

-ඔව්, ඔබ දන්නවා, ස්ක්‍රිප්ටිං සම්මත ජාවාස්ක්‍රිප්ට් පදනම් වූයේ 1995 දී එහි මුල් නිකුතුවෙන් පසුව, ජාවාස්ක්‍රිප්ට් ලයිව්ස්ක්‍රිප්ට් ලෙස නම් කරන ලද අතර එය ධාවනය වූයේ නෙට්ස්කේප් නැවිගේටරය තුළ පමණි. එකල එය ඉතා අවුල් සහගත විය, නමුත් ස්තුතිවන්ත විය යුත්තේ දැන් දේවල් ඉතා පැහැදිලි වන අතර අප සතුව මෙම ක්‍රියාත්මක කිරීමේ සංස්කරණ 7ක් වැනිය.

සංස්කරණ 7 ක්. සැබෑවට. සහ ES5 සහ ES2016+ ද?

- පිළිවෙලින් පස්වන සහ හත්වන සංස්කරණය.

ඉන්න, හයවෙනි එකට මොකද වුණේ?

- ඔබ අදහස් කළේ ES6? ඔව්, මම අදහස් කළේ, සෑම සංස්කරණයක්ම පෙර එකෙහි සුපිරි කට්ටලයකි, එබැවින් ඔබ ES2016+ භාවිතා කරන්නේ නම්, ඔබ පෙර අනුවාදවල සියලුම විශේෂාංග භාවිතා කරයි.

හරි. එසේනම් ES6ට වඩා ES2016+ භාවිතා කරන්නේ ඇයි?

-හොඳයි, ඔබට ES6 භාවිතා කළ හැක, නමුත් async සහ Wait වැනි සිසිල් විශේෂාංග භාවිතා කිරීමට, ඔබ ES2016+ භාවිතා කළ යුතුය. එසේ නොමැතිනම් ඔබ නිසි පාලන ප්‍රවාහය සඳහා අසමමුහුර්ත ඇමතුම් අවහිර කිරීම සඳහා coroutines සහිත ES6 ජනක යන්ත්‍ර සමඟ සිරවී ඇත.

ඔබ දැන් කීවේ කුමක්දැයි මම නොදනිමි, මේ සියලු නම් අවුල් සහගත ය. බලන්න, මම දැන් සර්වර් එකකින් ඩේටා පොකුරක් ලෝඩ් කරනවා, ඉස්සර මට සීඩීඑන් එකකින් jQuery ඇතුළත් කර AJAX ඇමතුම් වලින් දත්ත ලබා ගැනීමට හැකි විය, මට එය කළ නොහැක්කේ ඇයි?

-ඒක 2016 මචන්, කවුරුත් jQuery පාවිච්චි කරන්නේ නෑ, ඒක ඉවර වෙන්නේ ස්පැගටි කෝඩ් එකකින්. ඒක හැමෝම දන්නවා.

හරි. එබැවින් මගේ විකල්පය වන්නේ දත්ත ලබා ගැනීමට සහ HTML වගුවක් පෙන්වීමට පුස්තකාල තුනක් පැටවීමයි.

-හොඳයි, ඔබ එම පුස්තකාල තුන ඇතුළත් කරන නමුත් එක් ගොනුවක් පමණක් පූරණය කිරීම සඳහා මොඩියුල කළමනාකරුවෙකු සමඟ ඒවා බණ්ඩල් කරන්න.

මම දකියි. සහ මොඩියුල කළමනාකරු යනු කුමක්ද?

නිර්වචනය පරිසරය මත රඳා පවතී, නමුත් වෙබයේ අපි සාමාන්‍යයෙන් අදහස් කරන්නේ AMD හෝ CommonJS මොඩියුල සඳහා සහය දක්වන ඕනෑම දෙයක්.

Riiight. සහ AMD සහ CommonJS යනු...?

- අර්ථ දැක්වීම්. බහු ජාවාස්ක්‍රිප්ට් පුස්තකාල සහ පන්ති අන්තර්ක්‍රියා කළ යුතු ආකාරය විස්තර කිරීමට ක්‍රම තිබේ. ඔබ දන්නවා, අපනයනය සහ අවශ්‍යතා? ඔබට AMD හෝ CommonJS API නිර්වචනය කරන බහු ජාවාස්ක්‍රිප්ට් ගොනු ලිවිය හැකි අතර ඔබට ඒවා එකතු කිරීමට Browserify වැනි දෙයක් භාවිතා කළ හැක.

හරි, ඒක තේරුමක් ඇති දෙයක්... මම හිතන්නේ. Browserify යනු කුමක්ද?

-එය බ්‍රවුසරයේ ක්‍රියාත්මක කළ හැකි ගොනු වෙත CommonJS විස්තර කර ඇති පරායත්තයන් මිටි කිරීමට ඔබට ඉඩ සලසන මෙවලමකි. බොහෝ අය එම පරායත්තතා npm රෙජිස්ට්‍රියේ පළ කරන නිසා එය නිර්මාණය විය.

npm රෙජිස්ට්රි?

-එය ඉතා විශාල පොදු ගබඩාවකි, එහිදී දක්ෂ පුද්ගලයින් කේත සහ පරායත්තතා මොඩියුල ලෙස තබයි.

CDN එකක් වගේද?

-ඇත්තෙන්ම නැහැ. එය ඕනෑම කෙනෙකුට පුස්තකාල ප්‍රකාශයට පත් කිරීමට සහ බාගත කිරීමට හැකි මධ්‍යගත දත්ත ගබඩාවක් වැනිය, එබැවින් ඔබට ඒවා සංවර්ධනය සඳහා දේශීයව භාවිතා කළ හැකි අතර ඔබට අවශ්‍ය නම් ඒවා CDN වෙත උඩුගත කළ හැකිය.

ඔහ්, බෝවර් වගේ!

-ඔව්, නමුත් දැන් 2016 යි, කවුරුත් දැන් Bower භාවිතා කරන්නේ නැහැ.

ඔහ්, මට පේනවා... එහෙනම් මට පුස්තකාල npm එකෙන් බාගන්න ඕනද?

- ඔව්. උදාහරණයක් ලෙස, ඔබට React භාවිතා කිරීමට අවශ්‍ය නම්, ඔබ React මොඩියුලය බාගත කර එය ඔබගේ කේතයට ආයාත කරන්න. සෑම ජනප්‍රිය ජාවාස්ක්‍රිප්ට් පුස්තකාලයක් සඳහාම ඔබට එය කළ හැක.

ඔහ්, කෝණික වගේ!

-Angular ඉතින් 2015. ඒත් ඔව්. VueJS හෝ RxJS සහ අනෙකුත් සිසිල් 2016 පුස්තකාල සමඟ කෝණික එහි ඇත. ඒවා ගැන ඉගෙන ගන්න කැමතිද?

අපි React සමඟ රැඳී සිටිමු, මම දැනටමත් බොහෝ දේවල් ඉගෙන ගනිමින් සිටිමි. ඉතින්, මට React භාවිතා කිරීමට අවශ්‍ය නම් මම එය මෙම npm වෙතින් ලබාගෙන මෙම Browserify දෙය භාවිතා කරනවාද?

- ඔව්.

යැපීම් පොකුරක් අල්ලාගෙන ඒවා එකට ගැටගැසීමට එය අතිශයින් සංකීර්ණ බව පෙනේ.

-එය, ඔබ Browserify ධාවනය ස්වයංක්‍රීය කිරීමට Grunt හෝ Gulp හෝ Broccoli වැනි කාර්ය කළමනාකරු භාවිතා කරන්නේ එබැවිනි. හෙක්, ඔබට මිමෝසා පවා භාවිතා කළ හැකිය.

මැසිවිලි නඟන්න? ගල්ප්? බ්රොකොලී? මිමෝසා? අපෝ දැන් කතා කරන්නේ?

- කාර්ය කළමනාකරුවන්. නමුත් ඔවුන් තවදුරටත් සිසිල් නොවේ. අපි ඒවා 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-core ඇතුළත් වනු ඇත, එය නිෂ්පාදනය සඳහා කාර්යක්ෂම නොවේ. නිෂ්පාදනයේදී, සාතන් කැඳවීමේ චාරිත්‍රය තම්බන ලද බිත්තර වට්ටෝරුවක් මෙන් පෙනෙන පරිදි ඔබේ ව්‍යාපෘතිය සූදානම් කිරීමට පෙර කාර්ය මාලාවක් සිදු කිරීමට ඔබට අවශ්‍ය වේ. ඔබට වත්කම් කුඩා කිරීමට, ඒවා කැත කිරීමට, නැමීමට ඉහළින් css පේළිගත කිරීමට, ස්ක්‍රිප්ට් කල් දැමීමට අවශ්‍ය වේ, මෙන්ම-

මට ඒක තේරුණා, මට තේරුණා. ඉතින් ඔබ පුස්තකාල සෘජුවම CDN එකකට ඇතුළත් නොකරන්නේ නම්, ඔබ එය කරන්නේ කෙසේද?

-මම එය Webpack + SystemJS + Babel Combo එකක් භාවිතයෙන් Typescript වෙතින් සම්ප්‍රේෂණය කරමි.

යතුරු ලියනය? මම හිතුවේ අපි JavaScript වලින් කේතනය කරනවා කියලා!

ටයිප්ස්ක්‍රිප්ට් යනු ජාවාස්ක්‍රිප්ට් ය, නැතහොත් වඩා හොඳින් කිවහොත්, ජාවාස්ක්‍රිප්ට් හි සුපිරි කට්ටලයක්, වඩාත් නිශ්චිතව ඊඑස් 6 අනුවාදයේ ජාවාස්ක්‍රිප්ට් ය. ඔබ දන්නවා, අපි කලින් කතා කළ හයවන අනුවාදය?

මම හිතුවා ES2016+ දැනටමත් ES6 හි සුපිරි කට්ටලයක් කියලා! අපිට දැන් Typescript කියන දේ අවශ්‍ය ඇයි?

-Oh, එය අපට ටයිප් කළ භාෂාවක් ලෙස JavaScript භාවිතා කිරීමට ඉඩ සලසයි, සහ ධාවන කාල දෝෂ අඩු කරයි. එය 2016, ඔබ ඔබේ JavaScript කේතයට වර්ග කිහිපයක් එකතු කළ යුතුය.

සහ Typescript පැහැදිලිවම එය කරයි.

Typescript යනු සම්පාදනය කිරීමට අවශ්‍ය JavaScript හි සුපිරි කට්ටලයක් වන අතර, එය ටයිප් කිරීම සඳහා පමණක් පරීක්ෂා කරයි.

සුසුම්... සහ ප්‍රවාහය යනු?

-ඒක Facebook එකේ සමහර කොල්ලෝ හදපු static type checker එකක්. ක්‍රියාකාරී ක්‍රමලේඛනය නියමයි නිසා ඔවුන් එය OCaml වලින් කේතනය කළා .

OCaml? ක්‍රියාකාරී වැඩසටහන්කරණය?

-ඒක තමයි අද කාලේ නියම ළමයි පාවිච්චි කරන්නේ මචන්, ඔයා දන්නවද, 2016? ක්‍රියාකාරී වැඩසටහන්කරණය? ඉහළ ඇණවුම් කාර්යයන්? කරි ද? පිරිසිදු කාර්යයන්?

ඔබ දැන් කීවේ කුමක්දැයි මට අදහසක් නැත.

- මුලදී කිසිවෙකු එසේ නොකරයි. බලන්න, OOP වලට වඩා ක්‍රියාකාරී ක්‍රමලේඛනය වඩා හොඳ බව ඔබ දැනගත යුතු අතර 2016 දී අප භාවිතා කළ යුත්තේ එයයි.

ඉන්න, මම විද්‍යාලයේ OOP ඉගෙන ගත්තා, මම හිතුවේ ඒක හොඳයි කියලා?

-ඔරකල් විසින් මිලදී ගැනීමට පෙර ජාවා ද එසේමය. මම අදහස් කළේ, OOP අතීතයේ හොඳ වූ අතර, එය අදටත් එහි භාවිතයන් ඇත, නමුත් දැන් සෑම කෙනෙකුම වෙනස් කරන තත්වයන් ළදරුවන්ට පයින් ගැසීමට සමාන බව වටහාගෙන ඇත, එබැවින් දැන් සෑම කෙනෙකුම වෙනස් කළ නොහැකි වස්තූන් සහ ක්‍රියාකාරී වැඩසටහන් වෙත ගමන් කරයි. Haskell යාලුවනේ අවුරුදු ගාණක් තිස්සේ ඒකට කතා කරනවා, - මාව එල්ම් යාලුවන්ගෙන් පටන් ගන්න එපා- නමුත් වාසනාවකට දැන් වෙබයේ Ramda වගේ පුස්තකාල තියෙනවා, අපිට සරල JavaScript වලින් ක්‍රියාකාරී ක්‍රමලේඛන භාවිතා කිරීමට ඉඩ සලසයි.

ඔබ ඒ සඳහා පමණක් නම් අතහරිනවාද? මොන මගුලක්ද රම්න්ඩ?

- නෑ. රම්ඩා. Lambda වගේ. ඔයා දන්නවද ඩේවිඩ් චේම්බර්ස්ගේ පුස්තකාලය?

ඩේවිඩ් කවුද?

- ඩේවිඩ් චේම්බර්ස්. නියම මිනිහා. මධ්‍ය කුමන්ත්‍රණ ක්‍රීඩාවක් කරයි. Ramda සඳහා දායකයන්ගෙන් එක් අයෙකි. ඔබ ක්‍රියාකාරී ක්‍රමලේඛනය ඉගෙනීම ගැන බැරෑරුම් නම් Erik Meijer ද පරීක්ෂා කළ යුතුය.

එතකොට Erik Meijer...?

-Functional programming guy ද. නියම මිනිහා. මෙම අමුතු පාට කමිසය භාවිතා කරන අතරතුර ඔහු Agile කුණු කූඩයට දමන ඉදිරිපත් කිරීම් සමූහයක් ඔහු සතුව ඇත. ඔබ Tj, Jash Kenas, Sindre Sorhus, Paul Irish, Addy Osmani- වෙතින් සමහර දේවල් ද පරීක්ෂා කළ යුතුය.

හරි. මම ඔයාව එතන නවත්තනවා. ඒ සියල්ල හොඳ සහ හොඳයි, නමුත් දත්ත ලබා ගැනීමට සහ ඒවා ප්‍රදර්ශනය කිරීමට පමණක් ඒ සියල්ල ඉතා සංකීර්ණ සහ අනවශ්‍ය යැයි මම සිතමි. ගතික දත්ත සහිත වගුවක් සෑදීමට මට මෙම පුද්ගලයින් දැන ගැනීමට හෝ ඒ සියල්ල ඉගෙන ගැනීමට අවශ්‍ය නොවන බව මට හොඳටම විශ්වාසයි. අපි 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 දී "J" වචනය භාවිතා නොකරමු. Fetch භාවිතා කරන්න, එය බ්‍රවුසරයක නොමැති විට එය බහු පුරවන්න හෝ ඒ වෙනුවට Bluebird, Request හෝ Axios භාවිතා කරන්න. ඉන්පසුව async ශ්‍රිතයක් සහ උත්පාතයක් තුළ පොරොන්දම් බලා පොරොන්දම කළමනාකරණය කරන්න, ඔබට නිසි පාලන ප්‍රවාහයක් ඇත.

ඔබ බලාපොරොත්තු වන බව සඳහන් කරන තුන්වන අවස්ථාව මෙය නමුත් එය කුමක්දැයි මට අදහසක් නැත.

-Await ඔබට අසමමුහුර්ත ඇමතුමක් අවහිර කිරීමට ඉඩ සලසයි, දත්ත ලබා ගන්නා විට වඩා හොඳ පාලනයක් ලබා ගැනීමට සහ සමස්ත කේත කියවීමේ හැකියාව වැඩි කිරීමට ඔබට ඉඩ සලසයි. එය නියමයි, ඔබට අවශ්‍ය වන්නේ ඔබ Babel හි අදියර-3 පෙරසිටුව එක් කරන බව සහතික කර ගැනීමයි, නැතහොත් සින්ටැක්ස්-ඇසින්ක්-ෆන්ක්ෂන්ස් සහ ට්‍රාන්ස්ෆෝම්-ඇසින්ක්-ට-ජනක ප්ලගිනය භාවිතා කිරීමයි.

මේක පිස්සුවක්.

-නෑ, උමතුව යනු ඔබට ටයිප්ස්ක්‍රිප්ට් කේතය පෙර සම්පාදනය කිරීමට අවශ්‍ය වන අතර පසුව බලා සිටීම සඳහා එය බාබෙල් සමඟ සම්ප්‍රේෂණය කළ යුතුය.

මොකක්ද? එය Typescript හි ඇතුළත් නොවේද?

-එය මීළඟ අනුවාදයේ සිදු කරයි, නමුත් 1.7 අනුවාදයේ එය ඉලක්ක කරන්නේ ES6 පමණි, එබැවින් ඔබට බ්‍රවුසරයේ Wait භාවිතා කිරීමට අවශ්‍ය නම්, පළමුව ඔබ ES6 ඉලක්ක කර ඔබේ Typescript කේතය සම්පාදනය කළ යුතු අතර පසුව ES5 ඉලක්ක කර ගැනීමට Babel එය සම්පාදනය කළ යුතුය.

මේ වෙලාවේ මම දන්නේ නැහැ මොනවා කියන්නද කියලා.

- බලන්න, එය පහසුයි. සෑම දෙයක්ම ටයිප්ස්ක්‍රිප්ට් වලින් කේත කරන්න. Fetch භාවිතා කරන සියලුම මොඩියුල ES6 ඉලක්ක කිරීමට ඒවා සම්පාදනය කරයි, අදියර-3 පෙරසිටුවක් මත Babel සමඟ ඒවා මාරු කරයි, සහ SystemJS සමඟ ඒවා පූරණය කරයි. ඔබට Fetch නොමැති නම්, එය බහු පුරවන්න, නැතහොත් Bluebird, Request හෝ Axios භාවිතා කරන්න, සහ ඔබේ පොරොන්දු සියල්ල බලා සිටීමෙන් හසුරුවන්න.

පහසු යන්න පිළිබඳව අපට විවිධ අර්ථකථන ඇත. ඉතින්, ඒ චාරිත්‍රයෙන් මම අවසානයේ දත්ත ලබා ගත්තා, දැන් මට එය ප්‍රතික්‍රියා සහිතව පෙන්විය හැකිද?

-ඔබේ යෙදුම කිසියම් රාජ්‍ය වෙනසක් හසුරුවන්නේද?

වැරදි, මම හිතන්නේ නැහැ. මට අවශ්‍ය වන්නේ දත්ත ප්‍රදර්ශනය කිරීමයි.

- ඔහ්, දෙවියන්ට ස්තූතියි. නැතිනම් මට ඔබට Flux සහ Flummox, Alt, Fluxible වැනි ක්‍රියාත්මක කිරීම් පැහැදිලි කිරීමට සිදු වනු ඇත. අවංකවම ඔබ Redux භාවිතා කළ යුතුය.

මම ඒ නම් උඩින් පියාඹන්නයි යන්නේ. නැවතත්, මට දත්ත ප්‍රදර්ශනය කිරීමට අවශ්‍යයි.

-ඔහ්, ඔබ පෙන්වන්නේ දත්ත ප්‍රදර්ශනය කරන්නේ නම් ඔබට ආරම්භ කිරීමට ප්‍රතිචාර දැක්වීම අවශ්‍ය නොවේ. සැකිලි එන්ජිමක් සමඟ ඔබට හොඳ වනු ඇත.

ඔයා මට විහිළු කරනව ද? මෙය විහිළුවක් යැයි ඔබ සිතනවාද? ඔබ ඔබේ ආදරණීයයන්ට සලකන්නේ එලෙසද?

- මම ඔබට භාවිතා කළ හැකි දේ පැහැදිලි කළා.

නවත්වන්න. නිකන් නවතින්න.

-මම කියන්නේ, එය නිකම්ම ටෙම්ප්ලේටින් එන්ජිමක් භාවිතා කළත්, මම ඔබ නම් තවමත් Typescript + SystemJS + Babel Combo භාවිතා කරමි.

මට පිටුවක දත්ත සංදර්ශන කිරීමට අවශ්‍යයි, උප ශූන්‍යයේ මුල් MK මාරකය සිදු කිරීමට නොවේ. නිකමට කියන්න මොන ටෙම්ප්ලේටින් ඇන්ජිමද පාවිච්චි කරන්නේ කියලා මම එතනින් ගන්නම්.

- බොහෝ දේ ඇත, ඔබට හුරුපුරුදු කුමක්ද?

ආහ්, නම මතක නැහැ. එය බොහෝ කලකට පෙරය.

-jTemplates? jQote? පිරිසිදුද?

වැරදියි, සීනුව නාද කරන්නේ නැහැ. තවත් එකක්?

- විනිවිදභාවය? JSRender? MarkupJS? KnockoutJS? ඒකේ තිබ්බේ ද්වි-මාර්ග බැඳීමක්.

තවත් එකක්?

-PlatesJS? jQuery-tmpl? හැන්ඩ්ල්බාර්? සමහර අය තවමත් එය භාවිතා කරයි.

සමහර විට. අර අන්තිම එකට සමාන ඒවා තියෙනවද?

- උඩු රැවුල, යටි ඉර? මම හිතන්නේ දැන් lodash පවා අවංක විය යුතු එකක් ඇත, නමුත් ඒවා 2014 වර්ගයකි.

වැරදි.. සමහර විට අලුත් වෙන්න ඇති.

- ජේඩ්? DustJS?

නැත.

-DotJS? EJS?

නැත.

- නන්ජුක්ස්? ECT?

නැත.

-මාහ්, කොහොමත් කවුරුත් Coffeescript සින්ටැක්ස් වලට කැමති නැහැ. ජේඩ්?

නැහැ, ඔබ දැනටමත් ජේඩ් කිව්වා.

- මම අදහස් කළේ Pug. මම කිව්වේ ජේඩ්. මම කිව්වේ, ජේඩ් දැන් පග්.

සුසුම්ලන්න. නෑ මතක නෑ. ඔබ භාවිතා කරන්නේ කුමන එකද?

-සමහරවිට ES6 ස්වදේශීය අච්චු තන්තු පමණි.

මට අනුමාන කරන්න දෙන්න. ඒ සඳහා ES6 අවශ්‍ය වේ.

- නිවැරදි.

මා භාවිතා කරන බ්‍රවුසරය මත පදනම්ව, Babel අවශ්‍ය වේ.

- නිවැරදි.

එනම්, මට සම්පූර්ණ මූලික පුස්තකාලය එකතු නොකර ඇතුළත් කිරීමට අවශ්‍ය නම්, මට එය npm වෙතින් මොඩියුලයක් ලෙස පූරණය කළ යුතුය.

- නිවැරදි.

කුමන, Browserify, හෝ Wepback හෝ බොහෝ විට SystemJS ලෙස හඳුන්වන වෙනත් දෙයක් අවශ්‍ය වේ.

- නිවැරදි.

එය Webpack නොවේ නම්, කාර්ය ධාවකයෙකු විසින් ඉතා මැනවින් කළමනාකරණය කළ යුතුය.

- නිවැරදි.

නමුත්, මම ක්‍රියාකාරී ක්‍රමලේඛනය සහ ටයිප් කරන ලද භාෂා භාවිතා කළ යුතු බැවින්, මට මුලින්ම Typescript පූර්ව සම්පාදනය කිරීමට හෝ මෙම Flow thingy එකතු කිරීමට අවශ්‍ය වේ.

- නිවැරදි.

මට Wait භාවිතා කිරීමට අවශ්‍ය නම් එය Babel වෙත යවන්න.

- නිවැරදි.

ඒ නිසා මට පසුව ෆෙච්, පොරොන්දම්, සහ ප්‍රවාහ පාලනය සහ ඒ සියල්ල භාවිතා කළ හැක.

-පොලිෆිල් ෆෙච් එකට සහය නොදක්වන්නේ නම්, සෆාරිට තවමත් එය හැසිරවිය නොහැක.

ඔයා දන්නවා ද. මම හිතන්නේ අපි මෙතනින් ඉවරයි. ඇත්තටම, මම හිතන්නේ මම ඉවරයි. මම අන්තර්ජාලයෙන් ඉවරයි, මම JavaScript එකත් ඉවරයි.

-ඒක හොඳයි, තව අවුරුදු කිහිපයකින් අපි හැමෝම Elm හෝ WebAssembly වල කේතනය කරන්න යනවා.

මම යන්තම් ආපසු පසුපසට යන්නෙමි. මට මෙම බොහෝ වෙනස්කම් සහ අනුවාද සහ සංස්කරණ සහ සම්පාදක සහ සම්ප්‍රේෂක හැසිරවිය නොහැක. JavaScript ප්‍රජාව ඕනෑම කෙනෙකුට මෙය දිගටම කරගෙන යා හැකි යැයි සිතන්නේ නම් පිස්සු ය.

- මට ඔයාව ඇහෙනවා. එවිට ඔබ පයිතන් ප්‍රජාව උත්සාහ කළ යුතුය.

ඇයි?

Python 3 ගැන අහල තියෙනවද?

යාවත්කාලීන කිරීම: අක්ෂර වින්‍යාසය සහ වැරදි පෙන්වා දීම ගැන ස්තූතියි, මම සඳහන් කළ පරිදි ලිපිය යාවත්කාලීන කරන්නම්. HackerNews සහ Reddit හි සාකච්ඡාව .