ඔබේ සොෆ්ට්වෙයා කේතය වැඩි වෙද්දී අලුත් වෙනස්කම් එක් කිරීමේදී බොහොම අමාරුයි කියලා හැමෝම දන්නවා. ඒකට හේතුව බොහොම විට SOLID මූලධර්මයන් නොපැහැදිලිව අනුගමනය කිරීමයි. SOLID කියන්නේ නීති නොව, සැලසුම් මාර්ගෝපදේශ කිහිපයක්. ඒවා අනුගමනය කරලා කේතය සංවිධානය කළොත්, වැඩිදුරටත් වැඩි පිරිසක් එක්වෙද්දීද, පද්ධතිය පවත්වාගෙන යන්න ඉතා පහසුයි.
අපි දැන් ප්රධානම පළමු මූලධර්මය, Single Responsibility Principle (SRP) ගැන කතා කරමු. මෙහි අර්ථය වන්නේ එක් කලාපයක් (class, function, method) එකක් එකම කාර්යයක් පමණක් කරන එකයි. උදාහරණයක් ලෙස පක්ෂීන්ගේ ශබ්දය පෙන්වන කාර්යයක් දෙකක් (පක්ෂී වර්ගය තීරණය කිරීම + ශබ්දය මුද්රණය) එකම ක්රියාවලියෙන් කරන්නේ නම්, අලුත් පක්ෂී එකක් එක්කනොගතොත් හෝ ශබ්දය වෙනස් කරවීමට අවශ්ය නම්, ඒ ක්රමයම වෙනස් කරන්න වෙනවා – මෙය SRP උල්ලංඝනයයි. එය විසඳීමට, පක්ෂී වර්ගයට අනුව වෙනම ක්ලාස් සකස් කර, එක් එක් ක්ලාස් එකම ශබ්දය පමණක් ප්රදර්ශනය කරන ලෙස සැකසිය යුතුයි.
දෙවන මූලධර්මය Open/Closed Principle (OCP) වේ. මෙහි කියවෙන්නේ, පද්ධතිය විස්තර කිරීමට නව ක්රියාකාරකම් (extensions) එකතු කළ හැකි විය යුතු, නමුත් පවතින කේතය වෙනස් නොකළම. අපගේ පක්ෂී ශබ්ද සේවාවට නව පක්ෂී එකක් එක්කනොගතොත්, පරණ කේතයට තවත් elif එකක් එක්කනොවී, නව ක්ලාස් එකක් සාදා ඒක භාවිතා කළ හැකිය. මෙය නවීන පද්ධති වල දෝෂ අවදානම අඩු කරයි.
OCP ලබාගැනීමට දෙකක් තියෙනවා – ඉන්හෙරිට් කිරීම සහ කම්පෝසීෂන්. ඉන්හෙරිට් කිරීමේදී මව් පන්තිය (parent) වෙනස් කරන විට සියලුම උප පන්තීන් (subclasses) බලපායි. කම්පෝසීෂන් භාවිතා කරන්නේ හැසිරීම (behavior) වස්තුවක් ලෙස ඇතුළත් කිරීමයි; එවිට අවශ්ය විට ඒ වස්තුව වෙනස් කරලා පද්ධතියේ වෙනත් කොටසකට බලපාන්නේ නැහැ.
ශ්රී ලංකාවට ඇති වැදගත්කම
ශ්රී ලංකාවේ තරුණ සංවර්ධකයන්ට SOLID මූලධර්මයන් ඉගෙන ගැනීම, වැඩි පරිමාණ පද්ධති නිර්මාණය කිරීමේදී ගැටලු අඩු කරයි. විශ්වවිද්යාල සිසුන්, සොෆ්ට්වෙයා අභ්යාස මඟින් කේතය modular කර, කණ්ඩායම් වැඩේදී merge conflicts අඩු කරගත හැක. තවද, ශ්රී ලාංකීය ව්යාපාරයන්ට මෙය තරඟකාරීත්වය වැඩි කරයි – නිර්මාණය කරන API, cloud සේවා, mobile apps වැනි පද්ධති ඉක්මනින් අලුත් කරගැනීමට හැකිවීම, වෙළඳපොළේ ඉක්මන් ප්රතිචාරයක් ලබා දේ.
ඉතින්, SOLID මූලධර්මයන් අනුගමනය කිරීමේදී කේතය ලේසි, පරීක්ෂණීය, සහ අනාගත වෙනස්කම් සඳහා සූදානම් වේ. ඔබේ පළපුරුදු කණ්ඩායමට මේ මාර්ගෝපදේශ අනුගමනය කරගතහොත්, වැඩි දියුණු, අඩු දෝෂ සහිත නිෂ්පාදන ඉදිරිපත් කළ හැකි වනු ඇත.
අදම ඔබේ කේතයට SOLID පදනමක් එක් කර, වැඩි හුදකලාකම සහ අනාගත සාර්ථකත්වයක් ගොඩනඟන්න.