|
Frameworks සහ Libraries අතර වෙනස 🤔💻

Frameworks සහ Libraries අතර වෙනස 🤔💻

technology web development programming
By Rasanjana 2025-04-10 17:14:40

Framework vs Library: තාක්ෂණික ලෝකයේ මේ වෙනස හරියටම දන්නවාද? 🤔


මෘදුකාංග හෝ වෙබ් යෙදුමක් (Software/Web Application) නිර්මාණය කිරීමේදී, අපිට නිතරම අහන්න ලැබෙන, ඒ වගේම සංවර්ධන ක්‍රියාවලියට නැතුවම බැරි වචන දෙකක් තමයි "framework" සහ "library" කියන්නේ. මේ දෙකම අපේ වැඩ පහසු කරන, වේගවත් කරන මෙවලම් වුණත්, මේවායේ ක්‍රියාකාරීත්වය සහ අපි ඒවා භාවිතා කරන විදිය අතර පැහැදිලි, තීරණාත්මක වෙනසක් තියෙනවා. හරියට වැඩ කරනකොට අතට ගන්න ඕන ආයුධය (tool) හරියටම දැනගෙන ඉන්න එක වගේ, මේ වෙනස තේරුම් ගැනීමත් ඉතා වැදගත්. අපි බලමු මේ වෙනස මොකක්ද කියලා.


Library: ඔබේ කේතයට උදව්කරුවෙක් 📚


සරලවම කිව්වොත්, library එකක් කියන්නේ යම් නිශ්චිත කාර්යයක් හෝ කාර්යයන් කිහිපයක් ඉටු කිරීම සඳහා කලින් ලියා සකස් කරපු කේත එකතුවක් (a collection of pre-written code like functions, classes). හිතන්න ඔබට ඔබේ වෙබ් පිටුවේ යම් කොටසක් ලස්සනට animate කරගන්න ඕන කියලා. ඒ සඳහා මුල ඉඳන් කේත ලියනවා වෙනුවට, අදාළ animation library එකක් භාවිතා කරලා, එහි ඇති functions ඔබේ කේතය තුළ සිට "කැඳවීමක්" (call) කිරීමෙන් ඒ කාර්යය පහසුවෙන් කරගන්න පුළුවන්.

මෙහිදී වැදගත්ම දේ තමයි පාලනය (Control) ඔබේ අතේ තිබීම. ඔබේ ප්‍රධාන යෙදුමේ (application) කේතය තමයි තීරණය කරන්නේ library එකේ මොන කොටසද, කවදාද, කොතනදීද භාවිතා කරන්නේ කියලා. Library එක හරියට ඔබේ වැඩ ලේසි කරගන්න පාවිච්චි කරන විශේෂිත ආයුධ පෙට්ටියක් (toolbox) වගෙයි. ඔබට අවශ්‍ය ආයුධය (function) අවශ්‍ය වෙලාවට අරගෙන පාවිච්චි කරලා ආයෙත් පසෙකින් තියනවා. ඔබේ වැඩපිළිවෙළේ සමස්ත සැලැස්ම තීරණය කරන්නේ ඔබයි, library එක නෙවෙයි.

  • නම්‍යශීලී බව (Flexibility): ඔබට අවශ්‍ය ඕනෑම library එකක් හෝ කිහිපයක්, ඔබේ අවශ්‍යතාවය පරිදි, ඔබේ යෙදුමට එකතු කරගැනීමේ නිදහස තියෙනවා.
  • උදාහරණ: jQuery (JavaScript DOM manipulation), React (UI ගොඩනැගීමට - මෙය සමහර විට framework ලක්ෂණත් පෙන්වනවා), Lodash (JavaScript utility functions), Requests (Python HTTP requests).

Framework: යෙදුමේ සැකිල්ල සහ නීති සම්පාදකයා 🏗️


Framework එකක් කියන්නේ library එකකට වඩා පුළුල් දෙයක්. එය යම් ආකාරයක යෙදුමක් (application) ගොඩනැගීම සඳහා අවශ්‍ය මූලික ව්‍යුහය (structure), නීති රීති මාලාව (conventions), සහ බොහෝ විට අවශ්‍ය libraries සහ tools ඇතුළත් කර සකස් කළ සම්පූර්ණ පද්ධතියක් වගෙයි.

මෙහිදී library එකට වඩා ප්‍රතිවිරුද්ධ දෙයක් සිදුවන්නේ: පාලනය (Control) තිබෙන්නේ framework එක අතේ. Framework එක විසින් යෙදුමේ මූලික සැකිල්ල සහ ක්‍රියාත්මක වීමේ ගලායාම (application flow) සපයනවා. ඔබ කළ යුත්තේ ඒ framework එක නිර්වචනය කර ඇති නිශ්චිත ස්ථාන වලට (predefined places, hooks, methods) ඔබේම කේත (your specific logic) ඇතුළත් කිරීමයි. Framework එක තමයි ඔබේ කේතය අවශ්‍ය වෙලාවට "කැඳවන්නේ" (call කරන්නේ). මේකට "Inversion of Control" (IoC) කියලත් කියනවා.


හිතන්න framework එකක් කියන්නේ නිවසක් හදන්න දෙන ලද සැකිල්ලක් (blueprint) හෝ පලංචියක් (scaffolding) වගෙයි. කොහෙද බිත්ති එන්න ඕන, කොහෙද දොර ජනෙල් තියෙන්න ඕන කියන දළ සැලැස්ම ඒකෙන් දෙනවා. ඔබ කරන්නේ ඒ සැකිල්ලට අනුව අදාළ දේවල් (ගඩොල්, සිමෙන්ති - ඔබේ කේතය) එකතු කරමින් නිවස සම්පූර්ණ කරන එකයි. ඔබ framework එකේ නීති වලට සහ ව්‍යුහයට අනුගත වෙන්න ඕන.

  • ව්‍යුහය සහ නීති: මුලදී මෙය සීමාකාරී බවක් දැනුනත්, විශාල ව්‍යාපෘති වලදී කේතය සංවිධානාත්මකව තබා ගැනීමට, කණ්ඩායම් ලෙස වැඩ කිරීමට සහ නඩත්තුව පහසු කිරීමට මෙය උපකාරී වෙනවා.
  • උදාහරණ: Angular (Web applications), Django (Python web applications), Spring (Java enterprise applications), Ruby on Rails (Ruby web applications), Vue.js (Progressive web applications).

වෙනස එකම වාක්‍යයකින්: පාලනය කා අතේද? 🤷‍♂️

  • Library භාවිතා කරන විට: ඔබ library එක call කරනවා.
  • Framework භාවිතා කරන විට: Framework එක ඔබේ කේතය call කරනවා.


අවසාන වශයෙන් 💡

Framework සහ library කියන්නේ එකිනෙකට වෙනස් ක්‍රියාකාරීත්වයක් සහිත, නමුත් එකම අරමුණක් (මෘදුකාංග සංවර්ධනය පහසු කිරීම) වෙනුවෙන් නිර්මාණය වූ බලවත් මෙවලම් දෙකක්. Library එකක් ඔබට නිශ්චිත කාර්යයක් සඳහා උදව්වක් ලබා දෙන අතර, framework එකක් යෙදුමක් ගොඩනැගීම සඳහා සම්පූර්ණ ව්‍යුහයක් සහ මගපෙන්වීමක් සපයනවා. ඔබ කරන කාර්යයට වඩාත් ගැලපෙන මෙවලම තෝරා ගැනීමට මේ වෙනස නිවැරදිව අවබෝධ කර ගැනීම අත්‍යවශ්‍යයි. මේ දෙකම නිවැරදිව භාවිතා කිරීමෙන්, වඩාත් කාර්යක්ෂමව, වේගවත්ව සහ ගුණාත්මක භාවයෙන් යුතු මෘදුකාංග නිර්මාණය කිරීමට ඔබට හැකියාව ලැබෙනවා.


Rasanjana

Rasanjana

Member since 2025-04-09 13:55:06

Comments

Please login to post a comment.

No comments yet. Be the first to comment!