රෝද ප්‍රතිනිර්මාණය කිරීම ප්‍රයෝජනවත් වන්නේ ඇයි?

රෝද ප්‍රතිනිර්මාණය කිරීම ප්‍රයෝජනවත් වන්නේ ඇයි?

පසුගිය දිනක මම උසස් තනතුරක් සඳහා අයදුම් කරන JavaScript සංවර්ධකයෙකු සමඟ සම්මුඛ සාකච්ඡාවක් කළෙමි. සම්මුඛ පරීක්ෂණයට ද පැමිණ සිටි සගයෙක්, HTTP ඉල්ලීමක් කරන කාර්යයක් ලිවීමට අපේක්ෂකයාගෙන් ඉල්ලා සිටි අතර, අසාර්ථක වුවහොත්, කිහිප වතාවක් නැවත උත්සාහ කරන්න.

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

නමුත් අහෝ. ඔව්, ඔහු මීට පෙර එවැනි කේතයකට මුහුණ දී ඇති බව පැහැදිලිය. එහි සෑම දෙයක්ම ක්‍රියාත්මක වන ආකාරය ඔහු සාමාන්‍යයෙන් දැන සිටියේය. අපට අවශ්‍ය වන්නේ සංකල්පය පිළිබඳ අවබෝධයක් පෙන්නුම් කරන විසඳුමක සටහනක් පමණි. කෙසේ වෙතත්, අපේක්ෂකයා පුවරුවේ ලියා ඇති කේතය සම්පූර්ණ විකාරයකි. JavaScript හි ඇති පොරොන්දු මොනවාද යන්න පිළිබඳව ඔහුට ඉතා අපැහැදිලි අදහසක් තිබූ අතර ඒවා අවශ්‍ය වන්නේ මන්දැයි පැහැදිලි කිරීමට ඔහුට නොහැකි විය. කනිෂ්ඨයෙකුට මෙය සමාව දිය හැකි නමුත්, ඔහු තවදුරටත් ජ්යෙෂ්ඨ තනතුරට සුදුසු නොවීය. මෙම සංවර්ධකයාට සංකීර්ණ පොරොන්දු දාමයක දෝෂ නිවැරදි කිරීමට සහ ඔහු හරියටම කළ දේ අන් අයට පැහැදිලි කිරීමට හැකි වන්නේ කෙසේද?

සංවර්ධකයින් සූදානම් කළ කේතය ස්වයං-පැහැදිලි ලෙස සලකයි

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

සාමාන්‍යයෙන් එය ක්‍රියාත්මක වේ, නමුත් දේවල් උපක්‍රමශීලී වන විට, යාන්ත්‍ර විද්‍යාව අවබෝධ කර ගැනීම ප්‍රතිලාභයට වඩා වැඩි ය.

මේ අනුව, ජ්‍යෙෂ්ඨ සංවර්ධක තනතුර සඳහා අපගේ අපේක්ෂකයා පොරොන්දු වස්තු ස්වයං-පැහැදිලි ලෙස සැලකේ. වෙනත් කෙනෙකුගේ කේතයක කොතැනක හෝ සිදු වූ විට ඔවුන් සමඟ කටයුතු කරන්නේ කෙසේද යන්න පිළිබඳ අදහසක් ඔහුට තිබිය හැකිය, නමුත් ඔහු පොදු මූලධර්මය තේරුම් නොගත් අතර සම්මුඛ පරීක්ෂණයේදී එය නැවත කිරීමට නොහැකි විය. සමහර විට ඔහු එම කොටස හදවතින්ම සිහිපත් කර ඇත - එය එතරම් අපහසු නොවේ:

return new Promise((resolve, reject) => {
  functionWithCallback((err, result) => {
   return err ? reject(err) : resolve(result);
  });
});

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

මූලයන් වෙත ආපසු යන්න

2012 දී, ඉදිරිපස රාමු වල ආධිපත්‍යය තවම තහවුරු වී නොතිබූ විට, jQuery ලෝකය පාලනය කළ අතර, මම පොත කියෙව්වා JavaScript Ninja හි රහස්, jQuery හි නිර්මාතෘ ජෝන් රෙසිග් විසින් රචිත.

මෙම පොත මුල සිටම තමන්ගේම jQuery නිර්මාණය කරන ආකාරය පාඨකයාට උගන්වන අතර පුස්තකාලය නිර්මාණය කිරීමට හේතු වූ චින්තන ක්‍රියාවලිය පිළිබඳ අද්විතීය අවබෝධයක් සපයයි. මෑත වසරවලදී, jQuery එහි පෙර ජනප්‍රියත්වය නැති වී ඇත, නමුත් මම තවමත් පොත බෙහෙවින් නිර්දේශ කරමි. ඇය ගැන මට වඩාත්ම බලපෑවේ මට මේ සියල්ල ගැනම සිතිය හැකිය යන නිරන්තර හැඟීමයි. කතුවරයා විස්තර කළ පියවර කෙතරම් තර්කානුකූලද යත්, කෙතරම් පැහැදිලිද යත්, මම එයට බැස ගියහොත් මට පහසුවෙන් jQuery නිර්මාණය කළ හැකි යැයි මම බැරෑරුම් ලෙස සිතීමට පටන් ගතිමි.

ඇත්ත වශයෙන්ම, යථාර්ථයේ දී මට මේ වගේ දෙයක් කිරීමට නොහැකි වනු ඇත - එය දරාගත නොහැකි තරම් දුෂ්කර බව මම තීරණය කරමි. මගේම විසඳුම් වැඩ කිරීමට නොහැකි තරම් සරල හා බොළඳ බවක් පෙනෙනු ඇත, මම එය අත්හරිමි. මම jQuery ස්වයං-පැහැදිලි දේවල් ලෙස වර්ග කරමි, නිවැරදි ක්‍රියාකාරිත්වය තුළ ඔබ අන්ධ ලෙස විශ්වාස කළ යුතුය. පසුව, මම මෙම පුස්තකාලයේ යාන්ත්‍ර විද්‍යාව ගැන සොයා බැලීමට කාලය නාස්ති නොකරමි, නමුත් එය හුදෙක් කළු පෙට්ටියක් ලෙස භාවිතා කරමි.

නමුත් මේ පොත කියවීමෙන් මම වෙනස් පුද්ගලයෙක් වුණා. මම මූලාශ්‍ර කේතය කියවීමට පටන් ගත් අතර බොහෝ විසඳුම් ක්‍රියාත්මක කිරීම ඇත්ත වශයෙන්ම ඉතා විනිවිද පෙනෙන, පැහැදිලිව පෙනෙන බව සොයා ගත්තෙමි. නැහැ, ඇත්ත වශයෙන්ම, ඔබම මෙවැනි දෙයක් ඉදිරිපත් කිරීම වෙනම කතාවකි. නමුත් එය අන් අයගේ කේතය අධ්‍යයනය කිරීම සහ පවතින විසඳුම් ප්‍රතිනිෂ්පාදනය කිරීම අපගේම දෙයක් ඉදිරිපත් කිරීමට උපකාරී වේ.

ඔබ ලබා ගන්නා ආශ්වාදය සහ ඔබ දැකීමට පටන් ගන්නා රටා ඔබව සංවර්ධකයෙකු ලෙස වෙනස් කරයි. ඔබ නිරන්තරයෙන් භාවිතා කරන සහ ඉන්ද්‍රජාලික කෞතුක වස්තුවක් ලෙස සිතීමට ඔබ පුරුදු වී සිටින එම අපූරු පුස්තකාලය මැජික් මත කිසිසේත් ක්‍රියා නොකරන බවත්, නමුත් ගැටලුවක් සරලව හා සම්පත්දායක ලෙස විසඳන බවත් ඔබට පෙනී යනු ඇත.

සමහර විට ඔබට කේතය හරහා සිදුරු කිරීමට සිදුවනු ඇත, එය පියවරෙන් පියවර විශ්ලේෂණය කරයි, නමුත් මේ ආකාරයට, කුඩා, ස්ථාවර පියවරයන් ඔස්සේ ගමන් කිරීමෙන්, විසඳුම වෙත කතුවරයාගේ මාර්ගය නැවත නැවතත් කළ හැකිය. මෙය ඔබට කේතීකරණ ක්‍රියාවලියට ගැඹුරට කිමිදීමට සහ ඔබේම විසඳුම් ඉදිරිපත් කිරීමට ඔබට වැඩි විශ්වාසයක් ලබා දෙනු ඇත.

පොරොන්දම් බලල වැඩ කරන්න පටන් ගත්තම මට පෙනුනේ සුද්ද මායාවක් වගේ. පසුව මම ඔවුන් එකම ඇමතුම් මත පදනම් වූ බව සොයා, මගේ ක්රමලේඛන ලෝකය උඩු යටිකුරු විය. එසේ නම්, ආපසු ඇමතුම් වලින් අපව ගලවා ගැනීම වන රටාව, එහි අරමුණ, ඇමතුම් භාවිතයෙන්ම ක්‍රියාත්මක වේ ද?!

මෙය විවිධ ඇස්වලින් කාරණය දෙස බැලීමටත්, මෙය මා ඉදිරියෙහි ඇති කිසියම් සංක්ෂිප්ත කේත කැබැල්ලක් නොවන බවත්, මගේ ජීවිතයේ කිසිදා මට තේරුම් ගත නොහැකි තහනම් සංකීර්ණත්වය බවත් තේරුම් ගැනීමට මට උපකාර විය. මේවා නිසි කුතුහලයෙන් හා ගැඹුරු ගිල්වීමෙන් ගැටළු නොමැතිව තේරුම් ගත හැකි රටා පමණි. මිනිසුන් කේත කිරීමට සහ සංවර්ධකයින් ලෙස වර්ධනය වීමට ඉගෙන ගන්නා ආකාරය මෙයයි.

මෙම රෝදය නැවත නිර්මාණය කරන්න

එබැවින් ඉදිරියට ගොස් රෝද ප්‍රතිනිර්මාණය කරන්න: ඔබේම දත්ත බන්ධන කේතයක් ලියන්න, ගෘහස්ථ පොරොන්දුවක් සාදන්න, නැතහොත් ඔබේම රාජ්‍ය කළමනාකරණ විසඳුමක් සාදන්න.
කිසිවෙකු මේ සියල්ල භාවිතා නොකරන බව කමක් නැත - නමුත් දැන් ඔබ එය කරන්නේ කෙසේදැයි දනී. ඔබේම ව්‍යාපෘතිවල එවැනි වර්ධනයන් පසුව භාවිතා කිරීමට ඔබට අවස්ථාව තිබේ නම්, එය සාමාන්‍යයෙන් විශිෂ්ටයි. ඔබට ඒවා වර්ධනය කර වෙනත් දෙයක් ඉගෙන ගැනීමට හැකි වනු ඇත.

මෙහි කාරණය වන්නේ ඔබේ කේතය නිෂ්පාදනයට යැවීම නොව, අලුත් දෙයක් ඉගෙන ගැනීමයි. පවතින විසඳුමක් ඔබේම ක්‍රියාත්මක කිරීම ලිවීම හොඳම ක්‍රමලේඛකයින්ගෙන් ඉගෙන ගැනීමට සහ එමඟින් ඔබේ කුසලතා ඔප් නැංවීමට හොඳ ක්‍රමයකි.

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න