DEV.to වෙබ් අඩවියේ ලිපි සඳහා අදාල ප්රතිචාර ස්ක්රිප්ට් එකක් රැගෙන, සති දෙකකට පමණක් දෝෂයක් පෙනී සිටීමක් හෙළි වුණා. reply_comments.py කියන කුඩා Python කේතය, ලිපියේ ලිපි සටහන් (comments) පරීක්ෂා කර, ඔබට පිළිතුරු ලියන ලැයිස්තුවක් JSON ආකාරයෙන් සපයයි.
මෙම ස්ක්රිප්ට් එකේ මූලික කොටස replied_by_me(comment) නම් ෆංශනයයි. එය එක් ත්රෙඩ් එකේ සියලු උප-ප්රතිචාර (children) පරීක්ෂා කර, ඔබ (ME) කිසිදු වරක් ප්රතිචාර දැක්වුවාද කියා සොයයි. එම ෆංශනය any(c["user"]["username"] == ME or replied_by_me(c) for c in comment["children"]) ලෙස ලියලා ඇත.
ඒ අනුව, pending() ෆංශනය මේ පරීක්ෂාව භාවිතා කර, ඔබේ නම හෝ ඔබේ ප්රතිචාරයක් තිබේ නම් එම ත්රෙඩ් එක අත්හරිනවා. මෙය “මම මේ ත්රෙඩ් එකට පිළිතුරු දුන්නාද? එසේ නම් අත්හරින්න” කියන අදහසට සමානයි.
කෙසේ වෙතත්, මෙහි වැරදි අර්ථය “අවසන් පණිවුඩය මගේද?” යන්න නොව “කලින්ම මට පිළිතුරු තිබේද?” යන එකයි. එම නිසා, ඔබ පිළිතුරු දුන් පසු, අන් අය තවත් ප්රශ්නයක් ඇතුළත් කළාම, ස්ක්රිප්ට් එය “අවශ්ය නැත” ලෙස සලකයි. උදාහරණයක් ලෙස, අලික්ස් (alexshev) නමින් පරිශීලකයෙක් පළමු අදහසක් දී, ඔබ පිළිතුරු දෙන්නා පසු, නැවත අදහසක් එක්කලා. එම ත්රෙඩ් එක replied_by_me true ලෙස පෙන්වයි, එමනිසා pending() එය තවත් පරීක්ෂා නොකරයි.
මෙම ගැටලුව වැඩිදුරටත් නරඹන විට, තාක්ෂණික ලිපිවලදී තරුණ සංවර්ධකයින්ට ප්රතිචාර ලබා ගැනීමේ අවස්ථාව අඩු වේ. ඔබේ පිළිතුරක් ලැබුන පසු, අලුත් ප්රශ්නයක් එළියට පෙනෙන්නේ නැති නිසා, සංවාදය අවසන් වූ බව වැරදි ලෙස සිතේ. මෙය සමාජ මාධ්ය හෝ බ්ලොග් පරිසරයේ පාරිභෝගික සහයෝගය අඩු කරයි.
ශ්රී ලංකාවට ඇති වැදගත්කම
- සිසුන් – Python කේත පරීක්ෂණයේ නියම වැරදි වර්ග හඳුනා ගැනීමට මෙය උදව් කරයි, ඉගෙනුම් වගකීම් වැඩිදියුණු වේ.
- සංවර්ධකයින් – ස්වයංක්රීය ප්රතිචාර පද්ධතියක් නිර්මාණය කරන විට, “අවසන් ප්රතිචාර” පරීක්ෂා කිරීමේ වැදගත්කම පිළිබඳ අවධානයක් ලැබේ.
- ව්යාපාර – ගනුදෙනුකාරකයන්ගේ ප්රතිචාර නිරීක්ෂණය, ගැටළු විසඳුම් වේගවත් කිරීම, සේවා තත්ත්වය උසස් කිරීමේදී මෙවැනි බග් හඳුනා ගැනීම අත්යවශ්ය වේ.
අවසන් වශයෙන්, මෙම දෝෂය නිවැරදි කිරීමෙන්, සංවාදය සත්ය තත්ත්වයේ පවත්වාගෙන යාමට, අලුත් ප්රශ්න නිරන්තරයෙන් පෙනී සිටීමේ හැකියාව ලැබේ. කේත ලේඛකයන්ට, “මගේ අවසාන පිළිතුර” පරීක්ෂා කිරීමේ ලොජික් එක නිවැරදිව සැලැස්වීම, වැඩි සාර්ථකත්වයක් ලබා දේ.