ඇස්බැස්ටෝස් ලෝන්ජෝන් ලබා දීම ...
ඊයේ මගේ මාතෘකාව පැක්ට් ප්රකාශන සමඟ, ජාවාස්ක්රිප්ට් සමඟ ප්රතික්රියාශීලී වැඩසටහන්කරණය . එය සැබවින්ම Node.js කේන්ද්රීය මාතෘකාවක් නොවේ; මුල් පරිච්ඡේද න්යාය ආවරණය කිරීමට අදහස් කරන අතර පසුව කේත-බර පරිච්ඡේදයන් පුහුණුව ආවරණය කරයි. මම ඇත්තටම ඒ පාඨකයාට වෙබ්-සේවාදායකය දෙන්න අසමත් කිරීමට සුදුසු වේ හිතන්නේ නැති නිසා, Node.js බවක් බොහෝ දුරට පැහැදිලි තේරීම. නඩුව විවෘත කිරීමට පෙර එය වසා දමන ලදී.
Node.js සමඟ මගේ අත්දැකීම් පිළිබඳව මට ඉතා රෝස දර්ශනයක් ලබා දිය හැකිව තිබුණි. ඒ වෙනුවට මට හමු වූ හොඳ කරුණු සහ නරක කරුණු ගැන මම අවංක විය.
මෙහි අදාළ උපුටා දැක්වීම් කිහිපයක් ඇතුළත් කිරීමට මට ඉඩ දෙන්න:
අවවාදයයි: Node.js සහ එහි පරිසර පද්ධතිය උණුසුම්යි - ඔබව නරක ලෙස පුළුස්සා දැමීමට තරම්!
මම ගණිතයේ ගුරුවරයෙකුගේ සහායකයකු ලෙස සිටියදී, මට පැහැදිලි නොවූ එක් යෝජනාවක් වූයේ යමක් “පහසු” යැයි ශිෂ්යයෙකුට නොකියන ලෙසයි. නැවත සලකා බැලීමේදී හේතුව තරමක් පැහැදිලිව පෙනෙන්නට තිබුණි: ඔබ යමක් පහසු යැයි මිනිසුන්ට පැවසුවහොත්, විසඳුමක් නොදකින කෙනෙකුට මෝඩ හැඟීමක් ඇති විය හැකිය (ඊටත් වඩා) මෝඩකම, මන්ද ඔවුන්ට ගැටලුව විසඳන්නේ කෙසේද යන්න පමණක් නොව ගැටලුව ඔවුන් තේරුම් ගැනීමට තරම් මෝඩයි පහසු එකක්!
පයිතන් / ජැන්ගෝ වෙතින් පැමිණෙන පුද්ගලයින්ට කරදර නොකරන ගොචා ඇත, ඔබ යමක් වෙනස් කළහොත් වහාම ප්රභවය නැවත පූරණය කරයි. Node.js සමඟ, පෙරනිමි හැසිරීම නම්, ඔබ එක් වෙනසක් සිදු කරන්නේ නම්, පැරණි අනුවාදය කාලය අවසන් වන තුරු හෝ ඔබ අතින් නතර කර සේවාදායකය නැවත ආරම්භ කරන තෙක් අඛණ්ඩව ක්රියාත්මක වේ. මෙම නුසුදුසු හැසිරීම පයිතොනිස්ටස්ට කරදරයක් නොවේ; එය විවිධ ක්රියාකාරීත්වයන් සපයන ස්වදේශීය Node.js පරිශීලකයින් ද කෝපයට පත් කරයි. StackOverflow ප්රශ්නයට “Node.js හි ගොනු ස්වයංක්රීයව නැවත පූරණය කිරීම” මෙම ලිපිය ලියන අවස්ථාව වන විට උඩුකුරු 200 කට අධික ප්රමාණයක් සහ පිළිතුරු 19 ක් ඇත; සංස්කරණයක් මඟින් http://tinyurl.com/reactjs-node-supervisor හි මුල් පිටුව සමඟ නෝඩ්-සුපරීසර් නැනී ස්ක්රිප්ට් වෙත යොමු කරයි.. මෙම ගැටළුව නව පරිශීලකයින්ට මෝඩ බවක් දැනීමට විශාල අවස්ථාවක් ලබා දෙන්නේ ඔවුන් ගැටලුව විසඳා ඇතැයි සිතූ නිසාය, නමුත් පැරණි, දෝෂ සහිත හැසිරීම සම්පූර්ණයෙන්ම වෙනස් නොවේ. සේවාදායකය තල්ලු කිරීමට අමතක කිරීම පහසුය; මම කිහිප වතාවක්ම එසේ කර ඇත්තෙමි. මම දීමට කැමති පණිවිඩය නම්, “නැත, ඔබ මෝඩ නැත, මන්ද Node.js හි මෙම හැසිරීම ඔබේ පිටුපසට පහර දෙයි; Node.js හි නිර්මාණකරුවන් මෙහි සුදුසු හැසිරීම් සැපයීමට කිසිදු හේතුවක් නොදැක්වීය. එය සමඟ සාර්ථකව කටයුතු කිරීමට උත්සාහ කරන්න, සමහර විට නෝඩ්-සුපරීක්ෂකගෙන් හෝ වෙනත් විසඳුමකින් සුළු උපකාරයක් ලබා ගන්න, නමුත් කරුණාකර ඔබ මෝඩයෙක් යැයි හැඟීමෙන් ඉවත්ව නොයන්න. ගැටලුව ඇති තැනැත්තා ඔබ නොවේ; ගැටළුව ඇත්තේ Node.js හි සුපුරුදු හැසිරීම තුළ ය. ”
මෙම කොටස, යම් විවාදයකින් පසුව, “එය පහසුය” යන හැඟීම ලබා දීමට මා අකමැති නිසාය. වැඩ කිරීමට දේවල් ලබා ගැනීමේදී මම නැවත නැවතත් මගේ දෑත් කපා, දුෂ්කරතා මඟහරවා ගැනීමට මට අවශ්ය නැති අතර, Node.js සහ එහි පරිසර පද්ධතිය හොඳින් ක්රියාත්මක වීම සෘජු කාරණයක් වන අතර එය ඔබටත් ward ජු නොවේ නම් , ඔබ දන්නේ නැහැ ඔබ කරන්නේ කුමක්ද කියා. ඔබ Node.js භාවිතා කර පිළිකුල් සහගත දුෂ්කරතාවන්ට මුහුණ නොදෙන්නේ නම් එය අපූරුය. ඔබ එසේ කළහොත්, “මම මෝඩයෙක්, මා සමඟ යම් වැරැද්දක් තිබිය යුතුයි” යන හැඟීමෙන් ඔබ ඉවත්ව නොයනු ඇතැයි මම බලාපොරොත්තු වෙමි. Node.js සමඟ ගනුදෙනු කිරීමේදී අප්රසන්න විස්මයන් අත්විඳින්නේ නම් ඔබ මෝඩ නැත. ඒ ඔබ නොවේ! එය Node.js සහ එහි පරිසර පද්ධතියයි!
අවසාන පරිච්ඡේදවල සහ නිගමනයෙන් පසුව මට සැබවින්ම අවශ්ය නොවූ උපග්රන්ථය, පරිසර පද්ධතිය තුළ මට සොයාගත හැකි දේ ගැන කථා කරන අතර, මෝරොනික් වචනාර්ථවාදය සඳහා ක්රියාමාර්ගයක් සපයයි:
HTML5 යතුරු-වටිනාකම් ගබඩාවේ සේවාදායක පාර්ශවයක් ක්රියාත්මක කිරීම පරිපූර්ණ සුදුසුකමක් ලෙස පෙනෙන සහ තවමත් මුදවා ගත හැකි තවත් දත්ත සමුදායකි. මෙම ප්රවේශය මඟින් බොහෝ හොඳ ඉදිරිපස සංවර්ධකයින් හොඳින් වටහාගෙන ඇති API එකක ප්රධාන වාසිය ඇත. එම කාරණය සඳහා, එය එතරම් හොඳ නොවන ඉදිරිපස සංවර්ධකයින් ප්රමාණවත් ලෙස තේරුම් ගන්නා API එකකි. නමුත් node-localstorage පැකේජය සමඟ, ශබ්ද කෝෂ-සින්ටැක්ස් ප්රවේශය ලබා නොදෙන අතර (ඔබට localStorage.setItem (key, value) හෝ localStorage.getItem (key) භාවිතා කිරීමට අවශ්යය, localStorage [key] නොවේ), සම්පූර්ණ localStorage අර්ථ නිරූපණය ක්රියාත්මක වේ පෙරනිමි 5MB කෝටාවක් ඇතුළුව - ඇයි? සේවාදායක පාර්ශවීය ජාවාස්ක්රිප්ට් සංවර්ධකයින් තමන්ගෙන් ආරක්ෂා විය යුතුද?
සේවාදායක පාර්ශව දත්ත සමුදායන් සඳහා, වෙබ් අඩවියකට 5MB කෝටාවක් යනු සංවර්ධකයින්ට එය සමඟ වැඩ කිරීමට ඉඩ දීම සඳහා ත්යාගශීලී සහ ප්රයෝජනවත් හුස්ම ගැනීමේ කාමරයකි. ඔබට වඩා අඩු කෝටාවක් සැකසිය හැකි අතර කුකී කළමණාකරනය සමඟ ලිහිල් කිරීමට වඩා සංවර්ධකයින්ට ඉමහත් දියුණුවක් ලබා දිය හැකිය. 5MB සීමාවක් බිග් දත්ත සේවාදායක පාර්ශව සැකසීමට ඉතා ඉක්මණින් ණයට දෙන්නේ නැත, නමුත් සම්පත්දායක සංවර්ධකයින්ට බොහෝ දේ කිරීමට භාවිතා කළ හැකි තරමක් ත්යාගශීලී දීමනාවක් තිබේ. නමුත් අනෙක් අතට, 5MB යනු මෑතකදී මිලදී ගත් බොහෝ තැටිවල විශේෂයෙන් විශාල කොටසක් නොවේ, එයින් අදහස් වන්නේ ඔබ සහ වෙබ් අඩවියක් තැටි අවකාශය සාධාරණ ලෙස භාවිතා කිරීම පිළිබඳව එකඟ නොවන්නේ නම් හෝ සමහර වෙබ් අඩවි හුදෙක් හොග් නම්, එය ඇත්ත වශයෙන්ම පිරිවැය නොවේ ඔබේ දෘ hard තැටිය මේ වන විටත් පිරී නොතිබුණි නම් ඔබ බොහෝ දුරට ගිලී ගිය දෘ drive තැටියක අනතුරකට ලක් නොවේ.
කෙසේ වෙතත්, ඔබ ඔබේ සේවාදායකයා සඳහා එක් ලිවීමේ කේතයක් වන විට, ඔබේ දත්ත සමුදාය 5MB ප්රමාණයට වඩා දරාගත නොහැකි තරම් අමතර ආරක්ෂාවක් අවශ්ය නොවන බව මෘදු ලෙස පෙන්වා දිය හැකිය. බොහෝ සංවර්ධකයින්ට නැනී ලෙස ක්රියා කිරීමට අවශ්ය නොවන අතර අවශ්ය නොවන අතර සේවාදායක පාර්ශවීය දත්ත 5MB ට වඩා ගබඩා කිරීමෙන් ඒවා ආරක්ෂා කරයි. 5MB කෝටාව සේවාදායකයාගේ පැත්තෙන් රන්වන් සමතුලිත ක්රියාවක් වන අතර එය Node.js සේවාදායකයේ තරමක් මෝඩය. (තවද, මෙම උපග්රන්ථයේ ආවරණය කර ඇති බහු පරිශීලකයින් සඳහා දත්ත සමුදායක් සඳහා, ඔබ එක් එක් පරිශීලක ගිණුම සඳහා තැටියේ වෙනම දත්ත සමුදායක් නිර්මාණය නොකරන්නේ නම් එය පරිශීලක ගිණුමකට 5MB නොවන බව තරමක් වේදනාකාරී ලෙස පෙන්වා දිය හැකිය; සියලුම පරිශීලක ගිණුම් එකට. එය වේදනාකාරී විය හැකියඔබ වෛරසයට ගියහොත්!) ලේඛනයේ සඳහන් වන්නේ කෝටාව අභිරුචිකරණය කළ හැකි නමුත් සතියකට පෙර සංවර්ධකයාට කෝටාව වෙනස් කරන්නේ කෙසේදැයි විමසන ඊමේල් පණිවිඩයකට පිළිතුරු නොලැබෙන අතර ස්ටැක් ඕවර්ෆ්ලෝ ප්රශ්නයම අසන ලෙසම ය. මට සොයාගත හැකි එකම පිළිතුර ගිතුබ් කෝපි ස්ක්රිප්ට් ප්රභවය වන අතර, එය ඉදිකිරීම්කරුවෙකුට විකල්ප දෙවන පූර්ණ සංඛ්යා තර්කයක් ලෙස ලැයිස්තු ගත කර ඇත. එබැවින් එය ප්රමාණවත් තරම් පහසු වන අතර ඔබට තැටියක් හෝ කොටස් ප්රමාණයකට සමාන කෝටාවක් නියම කළ හැකිය. නමුත් තේරුමක් නැති අංගයක් වරාය කිරීමට අමතරව, විචල්යයක් හෝ ශ්රිතයක් සඳහා “අසීමිත” යන්නෙහි අර්ථය 0 ලෙස අර්ථ දැක්වීමේ සම්මත සම්මුතියක් අනුගමනය කිරීමට මෙවලම් කර්තෘ සම්පූර්ණයෙන්ම අසමත් වී ඇත. මෙම වැරදිසහගත ක්රියාව සමඟ කළ හැකි හොඳම දේ නම්, කෝටාව අනන්තය බව සඳහන් කිරීමයි:
if (typeof localStorage === 'undefined' || localStorage === null)
{
var LocalStorage = require('node-localstorage').LocalStorage;
localStorage = new LocalStorage(__dirname + '/localStorage',
Infinity);
}
අදහස් දෙකක් පිළිවෙලට මාරු කිරීම:
සමස්තයක් ලෙස ජාවාස්ක්රිප්ට් භාවිතා කරමින් මිනිසුන් නිරන්තරයෙන් පාදයට වෙඩි තබා ගත් අතර, ජාවාස්ක්රිප්ට් හි ගෞරවනීය භාෂාවක් බවට පත් කිරීම ඩග්ලස් ක්රොක්ෆෝඩ්ගේ සාරාංශයක් ලෙස මෙසේ පැවසීය. මෙන්න හොඳ කොටස්. වෙන කිසිවක් නැති බව අමතක කරන්න. ” සමහර විට උණුසුම් Node.js පරිසර පද්ධතිය තමන්ගේම “ඩග්ලස් ක්රොක්ෆර්ඩ්” වර්ධනය කර ගනු ඇත , ඔවුන් පවසනු ඇත, “Node.js පරිසර පද්ධතිය යනු වයිල්ඩ් වෙස්ට් කේතීකරණයකි, නමුත් සැබෑ මැණික් කිහිපයක් සොයාගත හැකිය. මෙන්න මාර්ග සිතියමක්. ඕනෑම වියදමකින් වැළකී සිටිය යුතු අංශ මෙන්න. ඕනෑම භාෂාවකින් හෝ පරිසරයකින් සොයා ගත හැකි ධනවත්ම ගෙවීම් සහිත ප්රදේශ මෙන්න. ”
සමහර විට වෙනත් කෙනෙකුට එම වචන අභියෝගයක් ලෙස ගත හැකි අතර, ක්රොක්ෆර්ඩ්ගේ නායකත්වය අනුගමනය කර Node.js සහ එහි පරිසර පද්ධතිය සඳහා “හොඳ කොටස්” සහ / හෝ “වඩා හොඳ කොටස්” ලිවිය හැකිය. මම පිටපතක් මිලදී ගන්නම්!
සියලු ව්යාපෘති සඳහා උද්යෝගය හා වැඩ කරන වේලාවන් සැලකිල්ලට ගෙන, මෙම ලිපිය ලියන අවස්ථාවේ දී නොමේරූ පරිසර පද්ධතියක් පිළිබඳ කිසියම් ප්රකාශයක් තියුණු ලෙස කෝපයට පත් කිරීම වසරක් හෝ දෙකක් හෝ තුනක් තුළ අවශ්ය වේ. “2015 Node.js පරිසර පද්ධතියට බිම් බෝම්බ කිහිපයක් තිබුණි. 2020 Node.js පරිසර පද්ධතියට විවිධ පාරාදීස ඇත. ”