تفاوت بین Framework و Library چیه ؟

library vs framework
library vs framework

اکثر دولوپر‌ها این دو واژه رو به جای همدیگه به‌کار میبرن در‌حالی‌که با هم دیگه یه تفاوت‌هایی دارن .

در‌واقع هر دوی اونها یکسری کد‌های از‌پیش‌نوشته‌شده توسط شخص یا اشخاص دیگه‌ای هستن که استفاده از اون‌ها کار رو برای بقیه‌ی برنامه‌نویس‌ها خیلی راحت‌تر میکنه و باعث میشه یسری مشکلات رایج برنامه‌نویسی به‌راحتی و بدون‌نیاز به وقت زیاد قابل‌حل باشن. هدف اصلی از خلق لایبرری و فریم‌ورک هم در واقع همین هست.

تفاوت بین لایبرری و فریم‌ورک توی وا‌‌ژه‌ی inversion of control خلاصه میشه اما الان بیشتر در‌موردش توضیح میدم.

لایبرری مجموعه‌ای از یکسری کلاس‌ها و متد‌هاست. وقتی که شما از لایبرری استفاده میکنی میشه گفت کنترل جریان کد یا اون اپلیکیشن دست خود شماست، این شما هستی که تعیین میکنی کی و کجا از چه لایبرری استفاده کنی. دقیقا مثل این هست که وقتی شما میری توی کتابخونه این خودت هستی که یکسری کتاب از قفسه انتخاب میکنی و میخونی .

فکر میکنم هر برنامه‌نویسی با لایبرری math آشنایی داشته باشه، برای استفاده از اون‌ها شما فقط فانکشن‌هایی رو که نیاز داری کال میکنی بدون توجه به این که اون فانکشن از چه الگوریتمی استفاده میکنه. به عنوان مثال jQuery و React از جمله لایبرری‌های معروف جاوااسکریپت هستن.

فریم‌ورک مجموعه‌ی کاملی از لایبرری‌هاست . وقتی از فریم‌ورک استفاده میکنی کنترل جریان برنامه دست اون فریم‌ورک هست و چارچوب و اسکلت کد شما توسط اون فریم‌ورک تعیین میشه. فریم‌ورک برای شما بستری فراهم میکنه تا بتونی کد‌ها رو بنویسی و این فریم‌ورک هست که تصمیم میگیره کی و کجا از کد‌های شما استفاده بکنه. تصور کن به شما کتابی داده‌شده که باید جاهای خالی کتاب رو پر بکنی. به عنوان مثال Angular و Vue.js از فریم‌ورک های جاوا‌اسکریپت محسوب میشن .

در‌واقع شما میتونی از لایبرری‌ها در حین انجام یک پروژه استفاده بکنی اما از فریم‌ورک باید دقیقا وقتی میخوای اون پروژه رو شروع کنی استفاده بکنی. نکته ی دیگه اینکه توی یک پروژه نمیشه از چند فریم‌ورک استفاده کرد اما میشه همزمان از چند لایبرری استفاده کرد .

به طور معمول فریم‌ورک پیچیده‌تر از لایبرری هست اما مزیتی که داره اینه که دیگه دولوپر نگران این نیست که طراحی ساختار کد خوب هست یا نه.

در پایان میشه تمامی مطالبی که گفته شد رو توی تصویر زیر خلاصه کرد ...

خلاصه ی مطلب

Framework vs Library
Framework vs Library


ممنون از همراهی و حمایتتون ...

دست به کد باشید!