اینجا میخوام به این موضوع بپردازم که اساسا تفاوت بین یک فریمورک و یک کتابخونه چیه؟! خب تعابیر زیادی در مورد این موضوع هست مثالا اینکه خیلی از افراد معتقدن :
یک فریمورک متشکل از چندین کتابخانه است.
این تعبیر همیشه هم درست نیست به این حال تعابیر دیگه ای هم هستند مثل اینکه کد ما کتابخانه را کتابخانه را فرا میخواند ولی این فریمورک است که کد ما رو فراخوانی می کنه و...
یک کتابخانه مجموعه ای از توابع ، اشیا و ماژول های مختلفی است که کد برنامه شما بخشی از آن را بسته به نیازی که داردرا فراخوانی می کند. کتابخانه ها معمولاً دارای API آنها نیز کوچکتری هستند و به وابستگی کمتری نیاز دارند.
چرا به کتابخانه ها احتیاج داریم؟ به یک دلیل بسیار ساده یعنی استفاده مجدد از کد ، از کدی که قبلاً توسط سایر توسعه دهندگان نوشته شده است استفاده کنید. به عنوان مثال فرض کنید نیاز به تابع خاصی دارید که یک عملکرد به خصوص را برای شما انجام می دهد به جای اینکه خودتون دست به کار بشید و کد مربوطه رو بنویسید که در نهایت ممکن خطاهایی هم داشته باشه از کتابخانه ها که توسط دیگر توسعه دهندگان ایجاد شده استفاده کنید.
از طرف دیگر ، Framework توابع یا اشیایی غیر اجرا شده را تعریف کرده است که به شما کمک می کند ابزار شخصی سازی شده خودتون رو خلق کنید. از آنجا که یک چارچوب به خودی خود یک برنامه کاربردی است ، دامنه وسیع تری دارد و تقریباً همه موارد لازم برای ساختن یک برنامه کاربر را مطابق نیاز خود در بر می گیرد.
به طور خلاصه : فریمورک یک ابزار کامل است که این امکان را به توسعه دهنده می دهد که بسته به نیاز خود با افزودن کدهایی ، در خروجی اپلیکیشن مورد نظر خود را به دست آورد.
بنابراین ، تفاوت اصلی در "وارونگی کنترل" است که معمولاً IoC نامیده می شود. وقتی ما از کتابخانه تابعی را فرا می خوانیم ، کنترل را در دست داریم. اما در چارچوب ، کنترل معکوس می شود ، یعنی فریمورک است که ما را صدا می کند.
نکات مهم:
Library: مجموعه ای از عملیات خاص و کاملاً مشخص را انجام می دهد. مثالها: پروتکل های شبکه ، فشرده سازی ، دستکاری تصویر ، ابزارهای کار با رشته ها ، کار با قواعد منظم یا regular expression ، ریاضیات و غیره
چارچوب: در واقع اسکلتی از یک نرم افزار است که به شما امکان تکمیل کردن آن و رسیدن به یک اپلیکیشن دلخواه را می دهد. نمونه هایی از چارچوب ها: سیستم برنامه وب ، مدیر افزونه ، سیستم GUI.
وارونگی کنترل: وقتی از کتابخانه تابعی را فراخوانی می کنیم ، کنترل را در دست داریم. اما در چارچوب ، کنترل معکوس می شود ، یعنی چارچوب ما را صدا می کند.
منبع : وبسات Geeksforgeeks
توی این مقاله می خوایم چند سایت مفید برای توسعه دهندگان معرفی کنیم.
فاطمه روانبخش 3,292 بیشتر بخوانیدتوی این مقاله می خوایم از نحوه ی یادگیری برنامه نویسی برای تازه کارا بگیم.
فاطمه روانبخش 3,119 بیشتر بخوانیدتوی این مقاله می خوایم از کاربردهای مختلف جاوا اسکریپت بگیم.
فاطمه روانبخش 1,587 بیشتر بخوانید