فریم ورک چیست؟
فریم ورک
فریم ورک یک چهارچوب نرمافزاری است که توسعه دهنده (developer) آن را فراخوانی کرده و از آن استفاده میکند.
یک اسکلت ساختمان را در نظر بگیرید. اسکلتبندی کمک میکند که ساختمان در یک نظم مشخص و چهارچوب تعیین شده ساخته شود. فریمورکها هم دقیقاً همین نقش را دارند. آنها باعث میشوند که برنامهنویس در یک چهارچوب مشخص بهصورت منظم کدنویسی کند.
همچنین با فراخوانی این چهارچوب دیگر نیازی نیست هربار تمام کدهای موردنیاز و رایج را بنویسید. فقط کافی است روی کارکرد خود پروژه تمرکز کنید. در واقع فریمورکها، کدهای رایجی هستند که در هر پروژه مورد نیاز است. زمانی که به پروژه اضافه میشوند از چندباره نویسی بخشی از کدها هم جلوگیری میشود.
فریم ورکها معمولا بر اساس ساختاری به نام (MVC (Model View Controller ساخته میشوند. MVC یک ساختار برنامه نویسی شی گرا و شکل خاصی از ترکیب کدهای برنامه نویسی است. در این ساختار، کدها به سه لایه مجزا طبقهبندی میشوند. در MVC هر بخشی وظیفه منحصربهفردی دارد:
- Model: ذخیره و بازیابی اطلاعات
- View: نمایش اطلاعات به کاربر
- Controller: دریافت اطلاعات از کاربر و پردازش آنها
زمانی که یک کاربر از سایتتان بازدید میکند درواقع در حال بهکارگیری بخش کنترلر است. بدین ترتیب کنترلر، ویو را را بررسی میکند و آنچه را که باید نمایش میدهد. وقتی بازدیدکنندگان یکی از دستورات CRUD و یا ( Creat – Read – Update – Delete) را انجام میدهند درواقع در حال انجام چنین کارهایی هستند:
- Create: ایجاد یک حساب کاربری
- Read: انجام عمل جستجوی سایت
- Update: ایجاد تغییرات در تنظیمات حساب کاربری
- Delete: حذف حساب کاربری
البته این بدین معنا نیست که همه فریم ورکها بر اساس شی گرایی ساخته میشوند. معمولا پرتالها و سیستمهای مدیریت محتوا مانند جوملا، نیوک، مامبو، وردپرس و … درنهایت به یک کتابخانه یا فریم ورک تبدیل میشوند.
بهطورکلی فریم ورکها هر ساختاری که داشته باشند، هدف اصلیشان انجام عملیات برنامه نویسی در کمترین زمان ممکن و با حداقل تعداد کد و در عین حال با حداکثر کارایی است.
مزایای استفاده از framework
- کاهش زمان انجام پروژه: استفاده از فریمورک موجب صرفه جویی در زمان میشود.
- استفاده از توابع موجود: میتوان از توابع و متدهای موجود در فریمورکها استفاده کرد در حالی که نوشتن این توابع ممکن است روزها از ما وقت بگیرند.
- کاهش هزینههای اجرای پروژه: با توجه به دو علت قبل، میتوان دریافت که با کمک فریمورک هزینههای ساخت نرمافزار یا طراحی وبسایت کاهش مییابد.
- استاندارد شدن کدها: با استفاده از توابع و متدهای موجود در فریمورک می توان خاطرجمع بود که از کدهای استاندارد و نرمال استفاده کردهایم. زیرا فریمورکها توسط برنامهنویسهای بزرگ در سطح جهان نوشته شدهاند.
معایب استفاده از framework
- عدم درک عمق مفاهیم کدها: زمانی که از فریمورک استفاده میکنید، قطعاً جزییات کدهای توابع مورد استفاده، از دید شما دور میمانند. زمانی که شما صفر تا صد پروژه را خودتان کدنویسی کنید، با چالشهای بیشتری روبهرو خواهید بود که هرکدام برای شما درسی جدید محسوب میشود.
- تحمیل کدهای اضافی: در هر پروژه فقط بخشی از قابلیتها و کدهای فریمورک برای شما مورد استفاده قرار میگیرد. در واقع شما کدهایی که استفاده نمیکنید هم به پروژه خود اضافه کردهاید.
- احتیاج به صرف زمان جهت یادگیری: برای استفاده از هر فریمورک باید زمانی جهت یادگیری آن بگذارید تا بتوانید به بهترین نحو از آن استفاده کنید یا آن را شخصی سازی کنید.
انواع فریم ورک ها
فریم ورکها جدا از زبانی که بر اساس آن طراحی میشوند، معمولا در دو دستهی بک اِند (Backend) و فرانت اند (Frontend) قرار میگیرند. فریم ورکهای بک اند یا سمت سرور (server-side) عملیات نوشتن، نگهداری و گسترش کد را برای برنامه نویس آسان میکنند. این نوع فریم ورکها امنیت وبسایت را نیز افزایش میدهند. در سایت رسمی Mozilla، محققان درباره اهمیت فریم ورکهای بک اند این طور میگوید:
“شما مجبور به استفاده از فریم ورک سمت سرور نیستید اما بهشدت توصیه میشود که از آنها استفاده کنید، چراکه زندگی را برایتان سادهتر خواهند کرد!”
Django، Ruby On Rails، Laravel نمونههایی از فریم ورکهای بک اند هستند. از سوی دیگر ظاهر و احساسی که یک کاربر از یک وبسایت یا اپلیکیشن دریافت میکند بستگی به اجزای توسعهی فرانت اند دارد. Bootstrap، Foundation، Semantic-UI و Skeleton از فریم ورکهای فرانت اند بهشمار میآیند.
معرفی چند فریم ورک معروف
اگر بخواهیم معروف ترین فریم ورک های این روزها را بدانیم، میتوانیم به چند مورد زیر اشاره کنیم:
- فریم ورک Laravel (مخصوص PHP)
- فریم ورک Codeigniter (مخصوص PHP)
- فریم ورک Zend (مخصوص PHP)
- فریم ورک Angular (مخصوص جاوا اسکریپت)
- فریم ورک Backbone (مخصوص جاوا اسکریپت)
- فریم ورک django (مخصوص پایتون)
دیدگاهتان را بنویسید