تفاوت کتاب‌خانه (library) و فریم‌ورک (framework) در چیست؟

تفاوت کتاب‌خانه (library) و فریم‌ورک (framework)

تفاوت اصلی بین کتاب‌خانه و فریم‌ورک در “وارونگی کنترل (inversion of Control)” است. هنگامی که شما یک متد (method) را از کتاب‌خانه فراخوانی می‌کنید، شمایید که بر رویکرد آن کنترل دارید. اما در فریم‌ورک این‌مسئله برعکس است: فریم‌ورک است که کدهای شما را فراخوانی می‌کند.

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

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

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

در سمت دیگر، کتاب‌خانه هیچ چیزی را برای شروع در اختیار شما نمی‌گذارد. در مقابلِ فریم‌ورک، ویژگی‌های محدودتری در کتاب‌خانه وجود دارد. همچنین برای استفاده گسترده‌تر از آن‌ها باید از ویژگی‌های ثالث (third-party) دیگر استفاده کنید.

هر کتاب‌خانه، مجموعه‌ای از کلاس‌های (class) تعریف شده‌است. دلیل این امر ساده‌، استفاده مجدد از کدهاست. برای مثال، کدی که قبلاً توسط توسعه‌دهندگان دیگر نوشته شده است را دریافت‌کنید. کلاس‌ها و متدها معمولاً عملیات خاصی را در یک منطقه خاص، تعریف می‌کنند.

مثلا، چندین کتاب‌خانه برای ریاضیات وجود دارد، که به توسعه‌دهنده اجازه می‌دهند، تابع (function) را بدون پیاده‌سازی مجدد یک الگوریتم و نحوه کار آن، فراخوانی کند.

فریم‌ورک، تمامی جریان (flow) را در کنترل خود دارد و نقاطی از پیش تعریف‌شده وجود دارد که شما باید، با کد‌های خود آن‌ها را تکمیل کنید. همچنین فریم‌ورک معمولاً پیچیده‌تر است.

فریم‌ورک اسکلتی را تعریف می‌کند که در آن، برنامه ما ویژگی‌های خاص خود را برای تکمیل‌کردن این‌اسکلت به آن می‌افزاید. از این‌طریق، فریم‌ورک در زمان موردنیاز کدهای شمارا فراخوانی ‌می‌کند.

فایده، این است که توسعه دهندگان، دیگر نیازی به نگرانی در مورد خوب بودن یا نبودن طراحی اسکلت برنامه‌‌شان ندارند، بلکه تمرکز خود را برروی توسعه آن می‌گذارند.

در هردوی آن‌‌ها – فریم‌ورک و کتاب‌خانه، APIهای تعریف شده‌ای موجوداست که توسط برنامه‌نویسان، مورد استفاده قرار می‌گیرد. جمع‌بندی: می‌توان به این فکرکرد که کتاب‌خانه، در توسعه ویژگی‌های اپلیکیشن به ما کمک می‌کند و فریم‌ورک اسکلت آن را تشکیل می‌دهد. در این‌میان API، اتصال دهنده‌ای برای استفاده هر‌دوی آن‌ها در کنار هم است.

یک روند توسعه معمولی، با فریم‌ورک شروع می‌شود و کارکرد (function)های بخصوص در کتابخانه‌ها تعریف شده‌است، و از طریق API، خصوصیت‌های توسعه یافته با اسکلت برنامه ادغام و برنامه ما شکل می‌گیرد.

منبع: https://dev.to/iamdejean/library-vs-framework-what-is-the-difference-5ehi

برچسب‌ها:

خدمات رایگان لیارا

۲.۵ گیگابایت فضای ذخیره‌سازی ابری رایگان

۲.۵ گیگابایت Object Storage سازگار با پروتکل S3 با دیسک‌های SSD به‌صورت رایگان دریافت کنید.

هاست رایگان برای دیتابیس‌

دیتابیس‌های MariaDB، PostgreSQL و Redis را فقط با یک کلیک و به‌صورت رایگان تهیه کنید.

سرویس DNS رایگان

به سادگی دامنه‌تان را اضافه کنید و به صورت رایگان رکورد‌های آن را مدیریت کنید.

۱۰۰ هزار تومان اعتبار اولیه

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

ارسال ۱۰۰ ایمیل تراکنشی رایگان در هر ماه

در سرویس ایمیل لیارا شما می‌توانید تا ۱۰۰ ایمیل رایگان در هر ماه ارسال کنید و فقط برای بیش از آن هزینه پرداخت کنید. (به‌همراه دسترسی SMTP)

هاست رایگان برای انواع وبسایت

تفاوتی ندارد برای وبسایت خود از Node استفاده می‌کنید یا Laravel و Django، در لیارا می‌توانید به صورت کاملا رایگان آن را میزبانی کنید.

توسعه‌دهندگان درباره‌ی ما چه می‌گویند

تجربه کار باliara_cloud@امروز خیلی خوب بود. یکی از سرویس هام رو منتقل کردم روش و راضیم. انقد سریع و جذاب کارم راه افتادم اصن باورم نمیشد! برعکس سرویس های PaaS دیگه با اون همه پیچیدگیشون. دمتون گرم
...

MohammadReza
liara testimonial
keikaavousi

بعد از بسته شدن @fandoghpaas و ناراحتی همه‌مون از اینکه یه سرویس خوب و صادق نمی‌تونه از پس هزینه‌ها بر بیاد، سرویسم رو منتقل کردم به پاس لیارا (https://liara.ir @liara_cloud) . تجربه راحت و خوب. تفاوت‌هایی داشت که کمی کار می‌خواست ولی تا الان کاملا راضی.

jadi
liara testimonial
jadi

یه خسته نباشید باید به تصمیمliara_cloud@بگم،
بعد از چندین روز سرکله زدن با سرویس های مشابه بالاخره تصمیم گرفتم لیارا رو امتحان کنم و باور نمیشه ۱۰ دقیقه بیشتر وقت نبرد،
دمتون گرم.

Arch
liara testimonial
EbadiDev

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

Ali Najafi
liara testimonial
me_ali_najafi

یکی از کارهای خوبی که جدیداً میکنم اینه که یه دیتابیس روی لیارا میسازم و به پروژه وصل میکنم اینطوری هم خونه و هم محل کار دیتابیس بروز رو دارم و راحت میتونم ادامه بدم کار روliara_cloud@

Navid
liara testimonial
1navid

عاشقliara_cloud@شدم درسته در حد AWS نیست ولی خب تجربه خوبی واسه پروژه های داخل ایران ارائه میده، میتونم رو CD هم اجراش کنم

Amir H Shekari
liara testimonial
vanenshi