تفاوت کتابخانه (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
توسعهدهندگان دربارهی ما چه میگویند
تجربه کار باliara_cloud@امروز خیلی خوب بود. یکی از سرویس هام رو منتقل کردم روش و راضیم. انقد سریع و جذاب کارم راه افتادم اصن باورم نمیشد! برعکس سرویس های PaaS دیگه با اون همه پیچیدگیشون. دمتون گرم
...
MohammadReza
keikaavousi
بعد از بسته شدن @fandoghpaas و ناراحتی همهمون از اینکه یه سرویس خوب و صادق نمیتونه از پس هزینهها بر بیاد، سرویسم رو منتقل کردم به پاس لیارا (https://liara.ir @liara_cloud) . تجربه راحت و خوب. تفاوتهایی داشت که کمی کار میخواست ولی تا الان کاملا راضی.
jadi
jadi
یه خسته نباشید باید به تصمیمliara_cloud@بگم،
بعد از چندین روز سرکله زدن با سرویس های مشابه بالاخره تصمیم گرفتم لیارا رو امتحان کنم و باور نمیشه ۱۰ دقیقه بیشتر وقت نبرد،
دمتون گرم.
Arch
EbadiDev
واسه سرویس PaaS با اختلاف لیارا بهترین رابط کاربری داره و یکی از مزیتهای سرویس دیتابیسشون اینه که خودشون به صورت دورهای بکآپ میگیرن.
...
Ali Najafi
me_ali_najafi
یکی از کارهای خوبی که جدیداً میکنم اینه که یه دیتابیس روی لیارا میسازم و به پروژه وصل میکنم اینطوری هم خونه و هم محل کار دیتابیس بروز رو دارم و راحت میتونم ادامه بدم کار روliara_cloud@
Navid
1navid
عاشقliara_cloud@شدم درسته در حد AWS نیست ولی خب تجربه خوبی واسه پروژه های داخل ایران ارائه میده، میتونم رو CD هم اجراش کنم
Amir H Shekari
vanenshi