ඔබ කේතයක් කිසිදාම හසුරුවා නැත්නම්, එය තවදුරටත් පැරණිවෙනවා කියලා ඔබ හිතන්නෙ නැතිවෙයි. නමුත් භෞතික විද්යාවේ දෙවන නීතිය කියනවා, වෙන්වූ පද්ධතියක අවිස්සාව (entropy) නිතර වැඩි වෙයි. මේ නීතිය සොෆ්ට්වෙයා කේතයත් අදාළ කරගන්නා විට, ඔබේ රෙපොසිටරිත් කාලයත් එක්ක අස්ථි රහිතව පිරිසිදු නොවෙයි.
කේතයේ අවිස්සාව කුමක්ද? තනි පද්ධතියක් අලූත් කරගෙන නොයන විට, එහි අවිස්සාව – අවිවිධානය, අසමත්තා – ස්වයංක්රීයව වැඩි වේ. ඒක මිනිස් කාමරයක් ගොඩක් සෙට් කරලා ඉදිරියට නොගෙන ඉඳීමේ අයුරෙන් හඳුන්වයි. කාමරය පිරිසිදු කරලා තබන්නේ නැතිව, බඩු, කූරු, කුඩා කාඩ්පත් පිරිසිදු නොවීමත් වගේ.
කඩ කවුළු (Broken Windows) න්යායය 1982 දී නගර නීතිඥයන් විසින් ඉදිරිපත් කළ න්යායයයි. කඩ කවුළුවක් අලුත්වැඩියා නොකළහොත්, අනෙක් කවුළුද කැඩෙයි. එය සොෆ්ට්වෙයාට අදාළ කරන්නේ, කේතයේ කුඩා වැරදි, නාමකරණ අසමත්තා, ‘TODO’ සටහන් වැනි දේවල් අලුත්වැඩියා නොකළහොත්, අනාගත සංවර්ධකයාට “මෙහි ප්රමිතිය බිඳී ගියා” කියලා සිතෙයි. ඒකෙන් පසු තවත් තවත් “වින්ඩෝ” කඩ කවුළු වගේ පිරිසිදු නොවෙයි.
- අනවශ්ය නම්කරණය – “tempVar” වැනි නාමයන්
- දෝෂ සහිත පරීක්ෂණ කේතය – #TODO: fix later
- දැවෙන if‑else වෘත්තීය – ත්රි-පද අලංකාරය
- අධික පුරාණ dependencies – deprecated libraries
Lehman නීති 8කින් තුනක් අපට මතක තබාගත යුතුයි:
1. අඛණ්ඩ වෙනස්කම් – භාවිතා කරන පද්ධතිය නිතර වෙනස් නොවෙයි නම්, එය අලෙවියෙන් පසුබැසී යයි.
2. ආකාරිකත්වය වැඩිවීම – නව ලක්ෂණ, නිවැරදි කිරීම්, නව dependencies එක්ක එක්කලාම, පද්ධතියේ සංකීර්ණතාව වැඩි වෙයි. එය තවදුරටත් පිරිසිදු කිරීමේ වැඩ අවශ්ය කරයි.
3. අනුවාදනීය කාර්යය – පද්ධතිය අලුත් අවශ්යතා, නව API, නීතිමය වෙනස්කම් වලට අනුව යාවත්කාලීන නොකළහොත්, පසුබැසීමක් සිදුවේ.
ශ්රී ලංකාවට ඇති වැදගත්කම
ශ්රී ලංකාවේ තරුණ සංවර්ධකයින්ට, මෙම සංකල්පය තේරුම් ගැනීම අත්යවශ්ය. කේතය කාලයත් සමඟ පිරිසිදු නොකරනවා නම්, පුරාණ dependencies නිසා security vulnerabilities ඉහළ යයි, එය අපගේ IT ආයතනවලට ගැටළු උදාකරයි. පාරිභෝගික සොෆ්ට්වෙයා, e‑commerce, fintech වැනි ක්ෂේත්රවල නවීකරණය අවශ්ය වන විට, අවිස්සාව කළු කර ඇති පද්ධතියක් අලුත් පදනමක් ලෙස පාවිච්චි කළොත්, ව්යාපාරික නාස්තියක් ඇතිවේ. ඒ නිසා, නිතර code review, automated tests, dependency updates වැනි ප්රතිකාර ක්රම අනුගමනය කිරීම, ශ්රී ලංකාවේ තාක්ෂණික වර්ධනයේ මූලික පදනමක් වේ.
කේත අවිස්සාව පිළිබඳ අවබෝධයක් ඇතිව, පිරිසිදු, maintainable, scalable software එකක් ගොඩනැගීම, අපගේ දේශීය තාක්ෂණ ආර්ථිකය ශක්තිමත් කරයි.
කේතය නොතැඹිලුවත්, අවිස්සාව අඩු නොවෙයි. එය පිරිසිදු කරගෙන යමු – ඔබේ පද්ධතිය දිගුකාලීන සාර්ථකත්වයට.