فریم ورک (framework) چیست؟
مفاهیم برنامه نویسی
فریم ورک (framework) چیست؟
فریم ورک(Framework) در اصطلاح به معنای "چارچوب نرم افزاری" و "قالب کاری" است.
فریم ورک ها درواقع مجموعه ای از قوانین وابزارها و کتابخانه هایی ازکدهای به اشتراک گذاشته شده هستندکه باهدف کمک به طراحان و توسعه دهندگان به منظورایجاد ویژگیهای منحصربه فردبرای پروژههایشان تمرکز دارند که توسعهدهندگان میتوانندهنگام توسعهی برنامههاآن رافراخوانی کنند.همچنین فریم ورکها کمک میکنندسرعت توسعه افزایش یافته،امنیت بالارود وهمچنین باعث بهبودتوسعه پذیری کدهامی شود. بنابراین یک فریم ورک به برنامه نویسان کمک می کندکدهای کمتری بنویسندودرزمان کمتری به نتیجهی بهتری دست پیداکنندبرای مثال یک کارخانه تولید محصولات رادرنظربگیرید این کارخانه برای تولید محصولات جدیده سری ازابتداشروع به طراحی نمی کندوطرح های قبلی رامورداستفاده قرارمی دهد، فریم ورک ها دربرنامه نویسی چنین معنایی دارند.
فریم ورکها معمولاطبق الگوی MVC طراحی میشوند، MVC یک ساختار برنامه نویسی شی گراوشکل خاصی ازترکیب کدهای برنامه نویسی است. دراین ساختار، کدها به سه لایه مجزا طبقهبندی میشوند. در MVC هربخشی وظیفه منحصربهفردی دارد:
- Model: ذخیره و بازیابی اطلاعات
- View: نمایش اطلاعات به کاربر
- Controller: دریافت اطلاعات ازکاروپردازش آنها
بهطورکلی فریم ورکهاهرساختاری که داشته باشند، هدف اصلیشان انجام عملیات برنامه نویسی در کمترین زمان ممکن و با حداقل تعداد کدودرعین حال باحداکثرکارایی است.
انواع فریم ورک ها
همانطورکه گفتیم فریم ورک (Framework)، فایلی حاوی مجموعهای ازهزاران هزا کدواسکریپت درزبانهای مختلف برنامه نویسی مثل PHP،JavaScript،Python و ...است و هرزبانی فریم ورکهای مخصوص به خودرادارد برای مثال برای طراحی سایت با زبان php فریم ورکهای گوناگونی وجوددارند. فریم ورکهایی مانند Symfony،CakePHP،Zend وLaravel ازاین دست هستند. همچنین می توان درموردفریم ورک های تحت سیستم عامل مانندجاواودات نت،نوشتن به یکباره واجراروی چندین سیستم عامل ازنظراقتصادی بسیارپراهمیت هستند.فریم ورک الزاماً چیزی ساخته شده وبه صورت پکیج درآمده برای عموم نیست؛چرا که ممکن است یک فریم ورک منحصراًبرای شخص یایک تیم طراحی شده باشد.
مزایای فریم ورک
-
جلوگیری ازتکراردرکدوبنابراین کاهش کدنویسی
-
بالارفتن سرعت انجام کدنویسی و صرفه جویی درزمان بنابراین کاهش قابل توجه زمان توسعه برنامه
-
انجام کار تیمی:استفاده ازفریم ورک هاباعث بوجودآمدن وتقویت روحیه کارتیمی خواهدشد.
-
بروزرسانی آسان برنامه:اکثرفریم ورک های معروف به طورمنظم آپدیت می شوند.
-
افزایش امنیت برنامه
معایب فریم ورک
-
وجودنقص درفریم ورک ومنتقل شدن باگ به دیگران:ممکن است فریم ورک موردنظردارای باگ ونقصی باشدوافرادبدون اطلاع وبی توجه ازآن استفاده کنند.
-
امکان کپی برداری:امکان کپی برداری ازطراحیهاوسودجویی وجوددارد.
-
مشکل حافظه: به دلیل استفاده زیاد از کلاس درفریم ورک ها حافظه ی بیشتری اشغال شده واغلب بامشکل حافظه مواجه خواهیم شد.
-
کاهش تسلط برپروژه: امکان تغییرکدهای فریم ورک وجود ندارد به همین دلیل است که تسلط بر پروژه کاهش می یابد.
-
عدم امکان رفع خطای قطعه کدهای فریم ورک: اگر خطایی دریک قطعه کد در فریم ورک پیدا شود نمی توانید سریع به سراغ آن رفته وآن را رفع کنید.
-
نیازبه زمان: اغلب طراحان نیازبه مقداری زمان دارند تا نحوه کار با فریمورکها را یاد بگیرند.
ودرنهایت بایدگفت باهمه ی این معایبی که ذکرشدبازهم نمی توان ازمزایای فریم ورک هاچشم پوشی کردودراغلب مواردمزایای فریم ورک برمعایب آن ارجحیت داردوبه جزدرمواردی خاص وبرای کاربردهای ویژه، برنامهنویسی وطراحی سایت بافریم ورک گزینهای هوشمندانه است امانکته مهمی که باید به آن توجه کردانتخاب بهترین زبان برنامهنویسیوانتخاب صحیح فریم ورک مناسب است که به دانش و تجربهی زیادی نیازمند است.
نظر شما
>