Backend යනු කුමක්ද?
පෙර මොඩියුලයේදී අපි පරිශීලකයා දකින සහ අන්තර්ක්රියා කරන Frontend (HTML, CSS, JS) පිළිබඳව ඉගෙන ගත්තෙමු. නමුත්, ඔබ login බොත්තමක් එබූ විට, ඔබගේ පරිශීලක නාමය සහ මුරපදය තහවුරු කරන්නේ කවුද? ඔබ භාණ්ඩයක් මිලදී ගත් විට, එම තොරතුරු දත්ත සමුදායේ ගබඩා කරන්නේ කොහේද? මෙම සියලු "තිරය පිටුපස" සිදුවන ක්රියාවලි හසුරුවන, පරිශීලකයාට නොපෙනෙන කොටස තමයි Backend හෙවත් සේවාදායක-අන්තය (Server-side) ලෙස හැඳින්වෙන්නේ.
මෙය ආපන ශාලාවකට උපමා කළ හැක:
- Frontend: මෙය පාරිභෝගිකයා දකින, වේටර්වරයා සේවය කරන ආපන ශාලාවේ ඉදිරිපස කොටසයි.
- Backend: මෙය පාරිභෝගිකයාට නොපෙනෙන මුළුතැන්ගෙයයි. වේටර්වරයා (Frontend) ගෙන එන ඇණවුම (request) භාරගෙන, අමුද්රව්ය (දත්ත සමුදායෙන් දත්ත) භාවිතා කර, ආහාරය (response) පිළියෙල කර නැවත වේටර්වරයාට ලබා දෙන්නේ මුළුතැන්ගෙය (Backend) විසිනි.
Backend එකේ ප්රධාන වගකීම්
- ව්යාපාරික තර්කනය (Business Logic): යෙදුමේ මූලික නීති සහ ක්රියාවලි ක්රියාත්මක කිරීම. (උදා: වට්ටමක් ගණනය කිරීම, පරිශීලක අවසර මට්ටම් පරීක්ෂා කිරීම).
- දත්ත සමුදා සන්නිවේදනය: දත්ත සමුදායට දත්ත එකතු කිරීම, ලබා ගැනීම, යාවත්කාලීන කිරීම සහ මැකීම වැනි සියලුම ක්රියාවලි සිදු කිරීම. Frontend එකට කිසිවිටෙකත් දත්ත සමුදාය සමග සෘජුව කතා කිරීමට ඉඩ නොදේ.
- API (Application Programming Interface): Frontend සහ Backend අතර සන්නිවේදනය සඳහා වන පාලම API ලෙස හැඳින්වේ. Frontend එක Backend එකෙන් දත්ත ඉල්ලන්නේ API calls හරහාය. බොහෝවිට මෙම දත්ත හුවමාරුව JSON ආකෘතියෙන් සිදුවේ.
- සත්යාපනය සහ බලය පැවරීම (Authentication & Authorization): පරිශීලකයෙකු පද්ධතියට ඇතුළු වීමට සුදුසුදැයි (Authentication) සහ ඇතුළු වූ පසු ඔවුන්ට කිරීමට අවසර ඇත්තේ කුමක්දැයි (Authorization) තීරණය කිරීම.
ජනප්රිය Backend තාක්ෂණයන්
Backend එක නිර්මාණය කිරීමට විවිධ ක්රමලේඛන භාෂා සහ රාමු (Frameworks) භාවිතා කළ හැක. අපි ඒවායින් වඩාත් ජනප්රිය දෙකක් දෙස බලමු.
1. Node.js (Express.js සමග)
භාෂාව: JavaScript. Node.js හි ඇති විප්ලවීයම දෙය නම්, සාමාන්යයෙන් බ්රවුසරය තුළ පමණක් ක්රියාත්මක වූ JavaScript, සේවාදායකයේ (server) ක්රියාත්මක කිරීමට හැකියාව ලබා දීමයි. එමගින්, එකම භාෂාව (JavaScript) භාවිතා කර සම්පූර්ණ වෙබ් යෙදුමම (Full Stack) නිර්මාණය කිරීමට සංවර්ධකයන්ට අවස්ථාව ලැබේ.
Express.js යනු Node.js මත වෙබ් යෙදුම් සහ APIs නිර්මාණය කිරීම ඉතා පහසු කරන, සැහැල්ලු සහ නම්යශීලී රාමුවකි (framework).
සුදුසු වන්නේ: Real-time applications (chat apps), Single-Page Applications (SPAs), සහ අධික data streaming අවශ්ය වන යෙදුම් සඳහා.2. Django
භාෂාව: Python. Django යනු "batteries-included" දර්ශනය මත ගොඩනැගුණු, ඉහළ මට්ටමේ (high-level) රාමුවකි. මෙහි තේරුම නම්, වෙබ් යෙදුමකට අවශ්ය වන බොහෝ දේ (උදා: admin panel, database object-relational mapper (ORM), ආරක්ෂක විධිවිධාන) Django මගින්ම සූදානම් කර තිබීමයි. එමගින් ඉතා වේගයෙන් සංකීර්ණ යෙදුම් නිර්මාණය කිරීමට හැකි වේ.
සුදුසු වන්නේ: දත්ත-ප්රමුඛ (data-driven) වෙබ් අඩවි, Content Management Systems (CMS), සහ විද්යාත්මක යෙදුම් සඳහා.අවසාන වශයෙන්
Backend යනු පරිශීලකයාට නොපෙනුනත්, ඕනෑම අර්ථවත් වෙබ් යෙදුමක හදවතයි. එය දත්ත කළමනාකරණය කරමින්, ආරක්ෂාව තහවුරු කරමින්, සහ Frontend එකට අවශ්ය සේවාවන් ලබා දෙමින් යෙදුම පණගන්වයි.
දැන් අපි Backend එක මගින් API හරහා දත්ත ලබා දෙන ආකාරය දන්නා නිසා, ඊළඟට අප ඉගෙන ගත යුත්තේ එම දත්ත භාවිතා කර, ඉතා සංකීර්ණ සහ ගතික (dynamic) පරිශීලක අතුරුමුහුණත් (User Interfaces) නිර්මාණය කරන ආකාරයයි. ඒ සඳහා, සරල JavaScript වලින් ඔබ්බට ගොස්, ඊළඟ මොඩියුලයෙන් අපි "Frontend Development (React/Angular)" වැනි ප්රබල රාමු පිළිබඳව අධ්යයනය කරමු.