Misago යනු Django පදනම් කරගත් ප්රසිද්ධ වෙබ් ෆෝරමයක් වන අතර, නවතම UI අන්තර්ක්රියා සඳහා React.js භාවිතා කරයි. නමුත් මේ සම්බන්ධයෙන් අඩුපාඩු සහ ගැටලු පවතින බැවින්, සංවර්ධකයින් නව ආකාරයක් සොයති.
වත්මන් ක්රියාකාරීත්වය කෙරෙහි පෙනේ: පරිශීලකයා https://misago-project.org වෙත යන විට Django view එක තොරතුරු ලබා ගෙන HTML පූරණයක් සකස් කරයි. ඒ HTML එකේ ත්රෙඩ් ලැයිස්තුව සහ ඒකට අදාළ JSON දත්ත අන්තර්ගත වේ. පසුදා JavaScript එක එම JSON කියවා React.js කොම්පොනන්ට් මගින් HTML එක ප්රතිස්ථාපනය කරයි. එවිට බොත්තම් සක්රිය වන අතර කාල සළකුණු වෙනස් වේ.
මෙම ද්විත්ව ඉම්පලීමෙන් පසුබැසීමක් සිදුවේ. Django templates හා React.js කොම්පොනන්ට් දෙකම එකම පිටුවට අත්යවශ්යයි. සංස්කරණය කිරීමේදී සංවර්ධකයන් Django template එකේ වෙනස්කම් දැක ගනී, නමුත් ඒවා තත්කාලිකව පෙනෙන අතර React.js HTML එකෙන් එම වෙනස්කම් මාරු වේ. එමෙන්ම API, JSON serializer, දෙකේම පරිවර්තන ගොනු (django.po, djangojs.po) වැනි අතිරේක වැඩ බරක් පවතින අතර, ජාවාස්ක්රිප්ට් බාගත ප්රමාණය වැඩි වීම නිසා පරණ ජංගම උපාංගවල ප්රදර්ශනය මන්දගත වේ.
මෙම ගැටලුවට HTMX නමින් නව විසඳුමක් යෝජනා කර ඇත. HTMX යනු HTML තුළ “dynamic islands” ලෙස හැඳින්විය හැකි කොටස් සකසා, ඒවාට සම්බන්ධ වූ ක්රියාකාරකම් සිදු වන විට සර්වර්‑පාර්ශ්වයෙන් නව HTML ලබාගෙන ඒ කොටස ප්රතිස්ථාපනය කරන කුඩා JavaScript පුස්තකාලයකි. Misago හි ත්රෙඩ් ලැයිස්තුව, නව කාණ්ඩයක් තේරීම, පරිශීලකයාගේ නෝටිෆිකේෂන් වැනි කාර්යයන් HTMX මඟින් සරලව කළ හැකිය. මෙය JSON serialization, React.js කොම්පොනන්ට් ලියීම, SPA ඉදිකිරීම වැනි අතිරේක වැඩ ඉවත් කරයි.
ශ්රී ලංකාවට ඇති වැදගත්කම
ශ්රී ලංකාවේ තරුණ සංවර්ධකයින්ට, HTMX මත පදනම් වූ සරල UI ක්රමය ඉගෙන ගැනීම පහසු වේ. Django පදනම තවත් තවත් භාවිතා කරමින්, අඩු පරිමාණ JavaScript සමඟ වේගවත් වෙබ් යෙදුම් නිර්මාණය කළ හැකිය. ඒ නිසා ශ්රී ලංකාවේ කුඩා ව්යාපාර හා ස්ටාර්ට්‑අප් ගෝලීය තරඟකරුවන්ට අඩු පිරිවැයෙන්, උසස් පරිශීලක අත්දැකීමක් ලබා දීමට අවස්ථාව ලැබේ. අමතරව, ප්ලගීන් සංවර්ධනයේදී Django templates පමණක් අවශ්ය වීම නිසා, දේශීය ඩිවෙලොපර් කණ්ඩායම් දෙකම (backend හා frontend) එකම කුලකයක් තුළ වැඩ කළ හැකිය.
අවසන් වශයෙන්, Misago හි React.js ඉවත් කර HTMX අනුගමනය කිරීම, කේත පදනම සරල කිරීම, පරිශීලක අත්දැකීම වැඩි කිරීම සහ ශ්රී ලංකාවේ තාක්ෂණික සමාජයට නව ඉගෙනුම් මාර්ග සපයයි.