සොෆ්ට්වේයාර් කණ්ඩායම් බොහෝවිට "මොනෝ රෙපෝ" හෝ "මල්ටි රෙපෝ" යන දෙකෙන් එකක් තෝරලා, ඒකම අනුගමනය කරයි. නමුත් අපි හදුනාගත්තේ, යෙදුම් වල නිකුත් කිරීමේ වේගය, හිමිකාරකම සහ පරීක්ෂණ අවශ්යතා වෙනස් වීම නිසා, හයිබ්රිඩ් ආකෘතියක් වඩාත් සුදුසු බවයි.
පද්ධතියේ රූපය
මෙම වේදිකාව තුළ මුළුමනින්ම හය (6) යෙදුම් පවත්වා ඇත. ඒවායින් REST API බ්යැක්ඇන්ඩ් එක Node.js + TypeScript භාවිතයෙන් ලියන අතර, එය සියලුම යෙදුම් භාවිත කරයි. ඉතිරි යෙදුම් දෙක වෙබ් (React) සහ එකක් Next.js මත පදනම්ව, ඉතිරි තිදෙනා React Native (Expo) මගින් ජංගම යෙදුම් ලෙස සපයයි.
වෙබ් යෙදුම් සහ API එක එකම මොනෝ රෙපෝවෙහි (repo: main‑platform) ගොඩනැගී ඇත. ජංගම යෙදුම් තුන (resident, guard, staff) තනි තනි රෙපෝසිටරීන් (mobile‑resident, mobile‑guard, mobile‑staff) ලෙස පවත්වා ඇත.
ජංගම යෙදුම් වෙනම රෙපෝවක් ඇත්තේ ඇයි?
ජංගම යෙදුම් නිකුත් කිරීමේ ක්රියාවලිය වෙබ් යෙදුම් වලට වඩා දිගු වේ. වෙබ් යෙදුම් කේතය main branch එකට merge වීමත් සමඟ CI/CD පද්ධතියෙන් CDN වෙත තත්ක්ෂණිකව යාවත්කාලීන වේ. එයට විරුද්ධව, ජංගම යෙදුම් Google Play හෝ Apple App Store අනුමත කිරීමක් අවශ්ය කරයි; ඒ නිසා නව APK එකක් තනන්න, සමාලෝචන කාලයක් බලා, පසුගාමී rollout එකක් කළ යුතුය. මෙම වෙනස නිසා, ජංගම රෙපෝවන් වෙනම versioning, release‑please, EAS build config සහ changelog එකක් අරගෙන තිබේ. එවිට වෙබ් වෙනස්කම් ජංගම නිකුත් කිරීමේදී අතුරුදහන් නොවී, ප්රකාශන සටහන් පැහැදිලිව පවතිනවා.
API සහ වෙබ් යෙදුම් එකට රැඳවීමේ හේතුව
නව විශේෂාංගයක් සාමාන්යයෙන් API එකේ නව endpoint එකක්, React පේජ් එකක් සහ UI සංශෝධන එකතු කරයි. ඒ සියල්ල එකම රෙපෝවෙහි PR එකක් තුළ කළහොත්, ඒකම CI පයිප්ලයින් එකෙන් සියලු පරීක්ෂණ සිදු කර, reviewers ලා එකම දෘශ්යය පුරා වැඩේ බලන්න පුළුවන්. වෙන වෙනම රෙපෝවන් තුළ PR එකක් විවෘත කරන්නේ නම්, සම්බන්ධිත PR කීපයක් සම්බන්ධ කරගත යුතුය, ඒක coordination බර වැඩි කරනවා.
ක්රොස්‑රෙපෝ ගැටලුව සහ ආරක්ෂාව
API එකේ contract එක වෙනස් වීමක් සිදුවූ විට, ඒ වෙනස ජංගම යෙදුම් වලට බලපානවාදැයි පරීක්ෂා කිරීම අත්යවශ්යයි. අපි මේ සඳහා parent issue එක main‑platform රෙපෝවෙහි තබා, mobile රෙපෝවන්ට child issue එකක් සම්බන්ධ කර, PR දෙකම එකම issue එකට ලින්ක් කරමු. ඒවගේම, breaking changes සඳහා අමතර review step එකක් දමලා, “මෙම වෙනස කුමන ජංගම app version එකට බලපායි?” කියලා විමසනවා.
ශාඛා ආරක්ෂාව
සියලු රෙපෝවන්ට main branch එකේ එකම branch protection policy එකක් පවතිනවා: direct push නොහැක, අනිවාර්යයෙන්ම එකක් හෝ වැඩි reviewers ලාගේ අනුමැතිය, CI පරීක්ෂණ සාර්ථක වීම. මෙය කණ්ඩායම් අතර code quality එක රැක ගැනීමට අත්යවශ්යයි.
මෙම හයිබ්රිඩ් සැලැස්ම, ව්යාපෘතියේ වේගවත් නිකුත් කිරීම, කාර්ය සාධනය හා පාරිභෝගික ප්රතිචාර වල අඩු ප්රතිවිරුද්ධතා සමඟ, සංවර්ධන කණ්ඩායම් සඳහා ඉතා ප්රයෝජනවත් වේ.
ශ්රී ලංකාවට ඇති වැදගත්කම
ශ්රී ලංකාවේ තරුණ සංවර්ධකයින්ට, මොනෝ‑රෙපෝ සහ මල්ටි‑රෙපෝ අතර තේරුම් ගැනීම, වඩාත් සුගත නිකුත් ව්යාපෘති කළමනාකරණය ඉගෙන ගැනීමට හොඳ අවස්ථාවකි. ඒ සමඟ, සමාගම් සඳහා ද, මෙම ආකෘතිය භාවිතා කරන්නේ නම්, වෙබ් සහ ජංගම පද්ධති එකට සම්බන්ධ කරගැනීමේ අඩු පිරිවැය සහ වේගවත් CI/CD පාරිභෝගික අත්දැකීම් ලබා දිය හැකිය. එමෙන්ම, ශ්රී ලංකාවේ තාක්ෂණික සමාජයට, GitHub branch protection, cross‑repo issue linking වැනි ප්රායෝගික ක්රමවේදයන් ගැඹුරු අවබෝධයක් ලබා දේ.
අනාගතයේ තවත් තාක්ෂණික ව්යාපෘති වලට මෙම හයිබ්රිඩ් ආකෘතිය යොදා ගත හැකි බව, දේශීය සංවර්ධක කණ්ඩායම් අතර වැඩි අවධානයක් ලැබෙනු ඇත.