Framework به معنای چارچوب کاری است و این واژه در حوزههای متنوعی مورد استفاده قرار میگیرد ولی در این مطلب قصد داریم به مفهوم فریمورک در زبانهای برنامه نویسی بپردازیم.
فریمورک یا چارچوب کاری در زبانهای برنامه نویسی به مجموعهای از قوانین و کتابخانه ها گفته میشود که کار برنامه نویسی را نظام مند و قدرتمند پیش میبرند.
تقریبا هر زبان برنامه نویسی چند فریمورک قدرتمند برای خود دارد، البته ذکر این نکته ضروری است که در تمام زبانهای برنامه نویسی استفاده از فریمورکها هر چند ضروری است ولی بدون فریمورک نیز باید بتوان کار توسعه نرم افزار را انجام داد.
بسیار شنیده ایم که کاربران به عنوان مثال برنامه نویسی PHP را با برنامه نویسی دات نت مقایسه میکنند. این مقایسه از اساس اشتباه است. چون PHP یک زبان مستقل برنامه نویسی است ولی دات نت یک فریمورک است که برای زبان برنامه نویسی C# و یا ASP پیاده سازی شده است. پس درست این است که PHP را با زبان C# مقایسه کنیم.
اگر قصد یادگیری زبانی مانند C# را دارید شاید گزینهای بهتر از .net ندارید هر چند فریمورکهای BFC ،MonoRail و دیگر فریمورکها نیز وجود دارند ولی کمتر کسی سراغ آنها میرود.
در PHP فریمورکها بسیار متنوع و قدرتمند هستند. مانند فریمورک های:
- لاراول
- سیمفونی
- زند فریمورک
- کیک
- Codeigniter
آموزش کامل و کاربردی فریمورک لاراول
آموزش کامل و کاربردی فریمورک قدرتمند سیمفونی
زبان python نیز فریمورکهای قدرتمندی دارد که معروف ترین آنها جنگو است.
زبان Ruby نیز از فریمورک قدرتمندی به نام Ruby on Rails بهره میبرد.
چرا باید از فریمورکها استفاده کرد؟
به طور خلاصه فریمورکها کار ساخت نرم افزارهای حرفهای و امن را بسیار ساده تر و قدرتمند تر میکنند.
فریمورکها توسط برنامه نویسان قدرتمندی نوشته میشوند که علاوه بر تعریف چارچوب کاری نظام مند کتابخانههای قدرتمندی نیز به فریمورک خود متصل میکنند که شما را از نوشتن بسیاری از کتابخانههای بی نیاز میکند.
مثلا تقریبا در تمام فریمورکها کتابخانههایی برای ارتباط با پایگاه داده وجود دارد که فرایند ارتباط با پایگاه داده شامل دریافت و ذخیره اطلاعات را تسهیل میکنند.
پایگاههای داده به دلیل آسیب پذیری بالایی که دارند در معرض حجم وسیعی از تهدیدها هستند که کمتر برنامه نویسی میتواند برنامه خود را با رعایت کلیه نکات امنیتی پیاده سازی کند.
متخصصانی که فریمورکها را پیاده میکنند برای حل این چالش از کتابخانهای به نام ORM استفاده میکنند که تقریبا تمام نکات امنیتی ارتباط و استفاده از پایگاه داده را رعایت میکنند.
ORM چیست؟
ORMها و یا Object-relational mapping ها شاید مهم ترین بخش هر فریمورک باشند ولی پیاده سازی آنها نیازمند دانش، تجربه و تخصص بالاست که با استفاده از ORM در نرم افزار خود میزان زیادی از دغدغههای شما را حل میکند.
ORM باعث تبدیل دادههای ساده به Objectهای مناسب برای استفاده در برنامه میشود.
اطلاعات در سیستمهای پایگاه داده رابطهای به صورت غیر شی گرا هستند و برای سهولت در استفاده از دادههای پایگاه داده در برنامههای شی گرا از ORM استفاده میشود تا این دادهها تبدیل به دادههای مناسب برای استفاده در زبانهای شی گرا شوند.
معروف ترین ORMهای .net عبارتند از LINQ و Entity.
در زبان برنامه نویسی PHP شاید هیچ ORMای به اندازه Doctrine معروف و مهم نباشد. ولی ORMهای داخلی Cake PHP و ZendFramework و Laravel نیز بازدهی خوبی دارند.
زبان برنامه نویسی جاوا شاید بیشترین تنوع ORMها را دارد که از این بین میتوان به athena framework و Ebean اشاره کرد.
زبان برنامه نویسی Python نیز از Peewee و Tryton و همچنین ORM داخلی Django استفاده میکند.
زبان برنامه نویسی Ruby از iBaTIS و زبان برنامه نویسی Go از SQLBoiler بهره میبرند.
یکی از مزیتهای مهم استفاده از ORMها وجود امکان کوچ ساده در بین سیستمهای مدیریت دیتابیس است. مثلا شما کار توسعه نرم افزار خود را با سیستم پایگاه داده MySQL شروع میکنید. در ادامه کار سیستم خود ممکن است مجبور باشید به جای MySQL از MongoDB استفاده کنید. در اکثر ORMها تغییر سیستم مدیریت دیتابیس به راحتی امکان پذیر است. در صورتی که اگر از ORM استفاده نکنید تغییر سیستم پایگاه داده به معنای دوباره نوشتن حجم بزرگی از کدهای خود و تستهای مکرر برای اطمینان از صحت عملکرد نرم افزار با سیستم پایگاه داده جدید میباشد.
MVC در فریمورکها به چه معناست؟
ام وی سی، در واقع یک مدل ارتباطی برای ارتباط اجزاء درونی یک فریمورک است.
MVC در واقع خلاصه عبارات Model ،View و Controler است. model مربوط به بخش پایگاه داده، View مرتبط با لایه نمایشی و ارتباط با کاربران و Controler برای ایجاد ارتباطات درون نرم افزار بین View و Model است.
البته خلاصه کردن فعالیتهای فریمورک به MVC خیلی کلی است و هر فریمورک تعریف خاصی از MVC برای خود دارد.
و در خاتمه باید بگم این مطلب برای کامل بودن اطلاعات درون سایت و ارجاع دادن دوستان به مفهوم فریمورک تولید شده که امیدوارم مفید بوده باشه.
اگر نقد، پیشنهاد و یا انتقادی در مورد مطالب گفته شده دارید خوشحال میشویم با شما در بخش نظرات در ارتباط باشیم.
خیلی خیلی عالی.
با تشکر از نکارنده این متن به خاطر اختصار و شفافیت در شرح موضوع.