ඔබ කවදා හෝ පරණ රෙපොසිටරියක් අරගෙන, 200 කට අධික පේළි ගණනක් ඇති singleProcessOrder.js ගොනුවක් මුහුණ දුන්නාද? නෙට්රික if‑වල, for‑ලූප් වල, "TODO: fix this later" කියන පරණ සටහන් වලින් පිරී තිබුණානම්, ඒ කේතය ඔබේ මොළය තද කරයි. මෙවැනි ගොනුවකට නව ලොයල්ටි‑පොයින්ට් විශේෂාංගයක් එක් කරන්න උත්සාහ කරන විට, ඔබට මැට්රික්ස් චිත්රයක් මත නියොව වගේ හැඟීමක් ලැබේ.
මෙවැනි කේතයේ ප්රධාන ගැටලුව නම්, එකම ෆංක්ෂන් එකට බොහෝ වැඩ තැන්පත් කර ඇති බවයි. විස්තරකරණය, බදු ගණනය, වට්ටම් ගණනය, දත්ත ගබඩා කිරීම – සෑම දෙයක්ම එකම කේත බ්ලොක් එකේ එකතුවී ඇත. එම නිසා කුඩා වෙනස්කම් කිරීමේදී තවත් අතුරුදන් වීමක් සිදු විය හැක, මෙන්ම පාරිභෝගිකයන්ට 100% වට්ටමක් ලැබීම වැනි වැරදිද සිදු විය.
මෙම තත්ත්වය වැඩි කාලයක් පවත්වාගෙන යාමට තරම් ගැටලුවක්. ඩිබග් කිරීමේ කාලය වැඩිවීම, නව වැඩ අරඹා ගැනීමට අඩු වේගය, සහ ව්යාපාරික අලාභය – මේ සියල්ලම තවත් තරගකාරී වෙළඳපලේ ඔබේ තරඟශීලතාවයට බාධා වේ. එබැවින් කේතය පිරිසිදු කර, ඒකක‑පරික්ෂා සහිත, නැවත භාවිතා කළ හැකි කොටස් ලෙස වෙන් කිරීම අත්යවශ්ය වේ.
Extract Method කියන සරල තාක්ෂණය මෙහි ප්රධාන විසඳුමයි. සම්බන්ධිත ලොජික් එකක් තෝරා, ඒකට පැහැදිලි නාමයක් දී, වෙනම ෆංක්ෂන් එකක් ලෙස ගෙනයාමෙන්, මුල් ෆංක්ෂන් එක ඉතා උසස්‑මට්ටමේ කතාන්දරයක් වගේ පෙනේ. මෙය කියවීමට පහසු කිරීම, ඒකක‑පරික්ෂා කිරීම, නැවත භාවිතා කිරීම, හා දෝෂ හඳුනා ගැනීමේ කාලය අඩු කිරීම වැනි වාසියන් ලබා දෙයි.
උදාහරණයක් ලෙස, පාරිභෝගික ඇනවුම සකස් කරන ෆංක්ෂන් එකේ validateOrder, calculateTax, applyLoyaltyDiscount, persistOrder වැනි නව ෆංක්ෂන් සෑදීමෙන්, එක් එක් කොටස තනිව පරීක්ෂා කළ හැකි වේ. බදු අනුපාතය රාජ්යය අනුව වෙනස් වුවහොත්, calculateTax ෆංක්ෂන් එකම වෙනස් කරන්නේ පමණයි; අනෙකුත් ලොජික් වලට කිසිදු බලපෑමක් නොවේ.
ශ්රී ලංකාවට ඇති වැදගත්කම
ශ්රී ලංකාවේ තරුණ සංවර්ධකයින්ට Clean Code සංකල්පය ඉගෙන ගැනීම, රැකියා වෙළඳපලේ තරඟශීලතාවය වැඩි කරයි. ආයතන සඳහා, පරණ සොෆ්ට්වෙයාර් පද්ධති අලුත් කිරීමේදී Refactoring ක්රමය භාවිතා කිරීමෙන්, පද්ධති නඩත්තු වියදම අඩු වේ, සේවා නතර වීමේ අවදානම අඩු වේ, සහ නවතම තාක්ෂණ සමඟ ඒකාබද්ධ කිරීම පහසු වේ. එමෙන්ම, විශ්වවිද්යාල සහ පුහුණු පාඨමාලාවල මෙම පද්ධති අධ්යාපන අංශය ඇතුළත් කිරීමෙන්, සිසුන්ට ව්යාප්ත කේත පරිසරයකට සූදානම් වීමට අවස්ථාව ලැබේ.
ඉදිරියට, ශ්රී ලංකා තාක්ෂණ ආයතන Refactoring කුසලතාවය අනුගමනය කර, නව නිෂ්පාදන සංවර්ධනයේ වේගය වැඩි කර, ගනුදෙනුකරුවන්ට තත්ත්ව සහතිකයක් ලබා දීමට සමත් වේ.
කේතය පිරිසිදු කර, නව අංග එකතු කිරීමේදී දෝෂ අවදානම අඩු කර, ඔබේ සංවර්ධන කණ්ඩායමට නිර්මාණශීලී කාර්යයන්ට අවකාශය ලබා දෙන්න.