Framework එකක් කියන්නේ මොකක්ද?
Framework එකක් කියන්නේ මොකක්ද, developers ලා ඒවා භාවිතා කරන්නේ ඇයි, සහ framework එකක් library එකකින් වෙනස් වන්නේ කොහොමද?
Programming ඉගෙනගන්න පටන් ගත්තම React, Django, Laravel, Angular, Spring Boot, Next.js වගේ නම් නිතරම අහන්න ලැබෙනවා.
ඒත් මේවා මොනවාද?
මේවායින් බොහොමයක් applications develop කරන්න developers ලාට උදව් කරන frameworks හෝ development tools.
Framework එකක් කියන්නේ මොකක්ද?
Framework එකක් කියන්නේ software application එකක් develop කිරීමට අවශ්ය pre-built structure, tools සහ rules ලබාදෙන development foundation එකක්.
ඒ කියන්නේ application එකක් සම්පූර්ණයෙන්ම හිස් project එකකින් පටන් ගන්නවා වෙනුවට, framework එකෙන් ලබාදෙන structure එක භාවිතා කරලා application එකේ actual features develop කරන්න පුළුවන්.
සරලව කිව්වොත්:
Framework එකක් කියන්නේ software එකක් build කිරීමට කලින්ම සකස් කර ඇති foundation එකක් වගේ දෙයක්.
ඔයාට ගෙයක් හදන්න ඕන කියලා හිතමු.
හිස් ඉඩමකින් පටන් ගත්තොත් හැම දෙයක්ම ඔයාටම plan කරන්න වෙනවා.
Foundation එක හදන්නේ කොහොමද?
Rooms organize කරන්නේ කොහොමද?
Electrical system එක කොහොමද?
Plumbing system එක කොහොමද?
Doors සහ windows තියෙන්නේ කොහෙද?
මේ හැම දෙයක්ම මුල ඉඳන් කරන්න ගියොත් ගොඩක් කාලයක් යනවා.
දැන් හිතන්න, කෙනෙක් ඔයාට basic house structure එකක් හදලා දුන්නා කියලා.
Foundation එකත් තියෙනවා. Walls වල basic structure එකත් තියෙනවා. Plumbing සහ electrical system එකට අවශ්ය basic planning එකත් තියෙනවා.
දැන් ඔයාට කරන්න තියෙන්නේ:
Rooms design කිරීම
Furniture තෝරාගැනීම
Colors තෝරාගැනීම
අවශ්ය additional features එකතු කිරීම
මේක software development වල framework එකකට සමානයි.
Framework එක basic structure එක ලබාදෙනවා. Developer application එකේ actual features හදනවා.
Framework එකකින් ලැබෙන්නේ මොනවාද?
Framework එක අනුව ලබාදෙන features වෙනස් වෙනවා. නමුත් සාමාන්යයෙන් framework එකක් developers ලාට මේ වගේ දේවල් handle කරන්න උදව් කරනවා:
Project structure – Files සහ components organize කරන්නේ කොහොමද
Routing – වෙනස් URLs සහ pages handle කිරීම
Database interaction – Database සමඟ සන්නිවේදනය කිරීම
Authentication – Login සහ user permissions handle කිරීම
Request handling – User requests process කිරීම
Error handling – Application errors manage කිරීම
Security features – Common security mechanisms ලබාදීම
Reusable components – එකම code එක නැවත නැවත ලියන එක අඩු කිරීම
ඒ නිසා මේ හැම දෙයක්ම මුල සිටම develop කරන්න අවශ්ය නෑ, framework එකෙන් ලබාදෙන tools සහ structures භාවිතා කරන්න පුළුවන්.
ජනප්රිය Framework කිහිපයක්
විවිධ programming languages සහ applications සඳහා විවිධ frameworks තියෙනවා.
Framework | සාමාන්ය භාවිතය |
|---|---|
Django | Python web applications |
Laravel | PHP web applications |
Angular | Web applications |
Spring Boot | Java backend applications |
Next.js | Full-stack React applications |
Flutter | Cross-platform applications |
උදාහරණයක් විදිහට Python භාවිතා කරලා web application එකක් හදනවා නම්, Django වලින් application එකේ development structure එක සහ අවශ්ය tools ගොඩක් ලබාගන්න පුළුවන්.
PHP application එකක් හදනවා නම් Laravel වලින් ඒ වගේම development foundation එකක් ලබාදෙනවා.
Framework එකක් සහ Library එකක් අතර වෙනස
Beginners ලාට මේ දෙක ගොඩක් වෙලාවට confusing.
Library සහ Framework කියන්නේ එකම දෙයක් නෙවෙයි.
ප්රධාන වෙනස තමයි application එකේ flow එක control කරන්නේ කවුද? කියන එක.
Library
Library එකකදී සාමාන්යයෙන් ඔයාගේ application එක library එක call කරනවා.
Your application
↓
calls
↓
Libraryඔයාට අවශ්ය වෙලාවට library එකේ functionality එකක් call කරලා, වැඩේ ඉවර වුණාම application එකේ flow එක continue කරන්න පුළුවන්.
Framework
Framework එකකදී framework එක application එකේ overall flow එක control කරලා, අවශ්ය අවස්ථාවලදී ඔයාගේ code එක call කරනවා.
Framework
↓
Controls application flow
↓
Your Codeමේ concept එක Inversion of Control කියලත් හඳුන්වනවා.
ඒ technical term එක නම් මතක තියාගන්න අවශ්ය නැහැ.
මේ අදහස විතරක් මතක තියාගන්න:
Library එකක් ඔයා (Developer) call කරනවා. Framework එකක් බොහෝවිට ඔයාගේ code එක call කරනවා.
ඔයා මොනවාහරි Cook කරනවා කියලා හිතමු.
Library එකක් නම්,
ඔයාට ඔයාගේම kitchen එකක් සහ cooking process එකක් තියෙනවා.
ඔයාට blender එකක් අවශ්ය වුණොත්:
මට blender එක ඕන.
Blender එක අරගෙන අවශ්ය වැඩේ කරලා, ආයෙත් ඔයාගේ cooking process එක continue කරනවා.
මෙතන process එක control කරන්නේ ඔයා.
Framework එකක් නම්,
දැන් හිතන්න ඔයා professional kitchen එකකට ගියා කියලා.
එතන:
Kitchen layout එකක් තියෙනවා
Equipment තියෙනවා
Workstations තියෙනවා
Rules තියෙනවා
Specific workflow එකක් තියෙනවා
ඔයාට තවමත් කෑම එක හදන්න පුළුවන්.
නමුත් ඔයා වැඩ කරන්නේ දැනටමත් ලබාදීලා තියෙන structure එක ඇතුළත.
Framework එකකට මේක තරමක් සමානයි.
Developers ලා Frameworks භාවිතා කරන්නේ ඇයි?
ප්රධාන හේතුවක් තමයි development වේගවත් කිරීම.
Large application එකක් සම්පූර්ණයෙන්ම scratch එකෙන් develop කරනවා කියලා හිතන්න.
බොහෝ applications වලට අවශ්ය වෙන common functionality නැවත නැවත develop කරන්න සිදුවෙනවා.
Framework එකක් ඒ basic foundation එකෙන් විශාල කොටසක් ලබාදෙන නිසා, developerට application එකේ unique features develop කිරන්න වැඩි අවධානයක් යොමු කරන්න පුළුවන්.
උදාහරණයක් විදිහට:
User Registration
↓
Login System
↓
Dashboard
↓
Products
↓
Paymentsවගේ application එකක් develop කරද්දී framework එක application එකේ underlying structure එක handle කරන්න උදව් කරනවා.
Framework එක හැම දෙයක්ම කරලා දෙනවද?
නැහැ.
මේක beginners ලාට වැදගත් misconception එකක්.
Framework එකක් භාවිතා කළා කියලා programming දැනුම අවශ්ය නැහැ කියන්න පුලුවන් කමක් නෑ.
ඊට අමතරව ඔයාට මේ දේවල් ගැනත් අවබෝධයක් තියෙන්න අවශ්යයි:
Programming
Data structures
Databases
APIs
Security
Application architecture
Framework එකේ concepts
Framework එක කියන්නේ tool එකක්, programming knowledge එක වෙනුවට භාවිතා කළ හැකි දෙයක් නෙවෙයි.
මේක power drill එකකට සමාන කරන්න පුළුවන්.
Power drill එකක් construction වැඩ ලේසි කරනවා. හැබැයි කොහෙද drill කරන්න ඕන, කොහොමද භාවිතා කරන්න ඕන කියලා ඔයාට හරියට දැනගන්න වෙනවා.
Framework එකක්ද, Library එකක්ද?
තවත් වැදගත් point එකක්.
Developers ලා සාමාන්ය conversation එකේ development tools ගොඩක් "frameworks" කියලා හඳුන්වනවා. නමුත් technicaly ඒවා හැම එකක්ම framework නොවෙන්න පුළුවන්.
උදාහරණයක් විදිහට React, framework එකක් කියලා කිව්වත්, officially හදුන්වන්නෙ user interfaces build කිරීමට භාවිතා කරන JavaScript library එකක් විදිහට.
අනෙක් අතට Next.js, React මත additional application-level features ලබාදෙන framework එකක් ලෙස භාවිතා වෙනවා.
ඒ නිසා මේ labels ගැන confuse වෙනවාට වඩා, tool එක application එකට උදව් කරන්නේ කොහොමද කියන concept එක තේරුම් ගැනීම වඩා වැදගත්.
ඉතින් අන්තිමට බැලුවොත් Framework එකක් කියන්නේ software application එකක් build කිරීමට developers ලාට ලබාදෙන ready-made foundation එකක්.
හිස් project එකකින් හැම දෙයක්ම මුල සිටම හදනවා වෙනුවට, framework එකෙන් ලබාදෙන:
Structure
Tools
Rules
Common functionality
භාවිතා කරලා application එක develop කරන්න පුළුවන්.
සරලව මතක තියාගන්න:
Library එකක් කියන්නේ ඔයා භාවිතා කරන tool එකක්. Framework එකක් කියන්නේ ඔයා application එක build කරන structure එකක්.
මේ concept එක තේරුම් ගත්තට පස්සේ Django, Laravel, Angular, Spring Boot, Next.js වගේ නම් අහනකොට ඒවාගේ purpose එක තේරුම් ගන්න ගොඩක් ලේසි වෙනවා.
Did you find this article helpful?
Related Articles
Azure වලින් මොනවද කරන්න පුළුවන්?
Microsoft Azure කියන්නේ විවිධ විදිහෙ දේවල් ගොඩක් කරන්න පුලුවන් cloud platform එකක්.
මොනවද මේ Linux Shell වර්ග?
Linux වල තියෙන Bash, Zsh, Fish, Dash වගේ Shells අතර වෙනස්කම්
Flutter සහ React Native
Mobile App Development එකට හොද මොකක්ද?
