فریم ورک FrameWork در لغت به معنی “چارچوب” است و منظور از فریمورک نرم افزاری، قابلیتی است که معمولا با کمک گرفتن از مجموعه ای ازدستورالعمل ها، کتابخانه ها، رابط کاربری، کلاس ها و در کل امکانات فراهم شده از جانب یک نرم افزار یا یک زبان برنامه نویسی، ساختاری جدید ایجاد می کند تا به کارگیری آن نرم افزار یا زبان برنامه نویسی در راستای اهداف ایجاد فریم ورک، ساده تر و نتیجه با سهولت بیشتری محقق گردد.
به عبارتی هدف از ایجاد فریم ورکها معمولاً فراهم نمودن ساز و کاری است که بتوان از امکانات یک نرم افزار یا زبان برنامه نویسی به نحو سریعتر و در برخی موارد کاملتر و حرفهایتر استفاده کرد، فریم ورکها در مقایسه با کتابخانه های نرمافزای، به لحاظ مفهومی از وسعت بیشتری برخوردارند (هرچند به دلایلی مانند تجملی بودن اصطلاح فریمورک، برخی سازندگان کتابخانهها، محصول خود را با اصطلاح فریمورک نیز مینامند، به طور مثال یک کتابخانه (مانند jQuery برای JavaScript ) صرفاً یک کتابخانه است اما فریمورک (مانند Zend یا CakePHP برایPHP) خود میتواند مجموعهای از کتابخانهها و ملزومات دیگر باشد، کتابخانهها معمولاً به صورت بسته هستند و قابلیت توسعهپذیری ندارند، یک متد از کتابخانه بر اساس API آن فراخوانده شده و نتیجه برگردانده میشود، اما فریمورکها معمولاً ساختار خاص خود را تحمیل میکنند که در چارچوب آن، قابلیت توسعه پذیری فراهم میشود، وجه تمایز دیگر این دو در اصطلاحی به نام معکوس بودن کنترل (Inversion of Control) است، در کتابخانهها معمولاً مجموعهای از توابع وجود دارند که در هنگام استفاده از آن کتابخانه، صرفاً به فراخوانی متد مورد نظر خود میپردازیم (به عبارتی ما متد را صدا می زنیم) و آن بخش از متد اجرا میشود، اما فریمورک همه چیز را تحت کنترل خود در میآورد و چارچوب خاصی را مشخص میکند که صرفاً میتوانیم در همان چارچوب، تنظیمات دلخواه خود را اعمال نمائیم (فریم ورک در زمان اجرا، تنظیمات ما را میخواند یا به عبارتی صدا می زند و بر همان اساس نتیجه تولید میشود)، باید مد نظر داشت که استفاده یا عدم استفاده از فریم ورک میتواند بسته به موقعیت و نیاز، امری صحیح و ضروری یا در عین حال زائد و اشتباه تلقی شود، مخصوصاً این امر در وب نمود بارزتری دارد، چرا که سرعت پردازش و سبکی برنامه از ارکان کلیدی در موفقیت سایت های وب هستند و فریمورکها معمولاً به این مقوله آسیب میزنند، با این وجود نیاز به برخی امکانات ویژه یا تسریع در روند اجرای پروژه، می تواند از علل گرایش به استفاده از فریم ورک باشد.
انواع فریم ورک
حال که پاسخ سوال فریمورک چیست؟ را دریافت کردهاید بهتر است انواع آن را هم بشناسید.
به دلیل وابسته بودن ماهیت فریمورکها به زبانهای برنامهنویسی، میتوان گفت آنها را با توجه به زبانهای برنامهنویسی دستهبندی میکنند. میدانید که زبانهای برنامهنویسی در دو گروه front-end و back-end طبقه بندی میشوند.
به منظور طراحی سایت با زبان php فریم ورک های متفاوتی وجود دارد. فریم ورک هایی مثل Cake PHP, Zend, Symfony, Laraval از این دست فریم ورک ها هستند. این گونه فریم ورک ها به برنامه نویسان کمک میکند بسیاری از کدهای تکراری که در اکثر برنامه ها وجود دارد و مورد نیاز برنامه نویسان می باشد را بازنویسی نکنند. همچنین با قوانین موجود در فریم ورک ها، امنیت را بهبود می بخشند، سرعت توسعه را افزایش می دهند و کمک می کنند تا توسعه پذیری کد بهبود یابد.
فریمورکهای front-end برای طراحی ظاهر پروژه و سمت کاربر استفاده میشوند.
برای مثال بوتاسترپ یک فریمورک رایگان و معروف برای CSS است که کمک میکند طراحی ریسپانسیو صفحات سایت به سادگی انجام پذیرد.
فریمورکهای back-end برای کدنویسی سمت سرور به کمک توسعهدهنده میآیند. مثل فریمورک Laravel در زبان php.
برای هر زبان برنامهنویسی معروف و پرکاربرد فریمورکهایی ساخته شده است که کدنویسی را آسانتر میکنند. برای انتخاب یک فریمورک مناسب بهتر است ابتدا یک زبان برنامهنویسی مناسب انتخاب نمایید.
ساختار MVC در چارچوب یا فریم ورک ها
عبارت MVC یا Model View Controller واژه ای است که در هنگام کار کردن با فریم ورک ها مورد استفاده قرار می گیرد. این عبارت یک شکل خاص از ترکیب کدهای برنامه نویسی است. در این ساختار کدهای برنامه به سه بخش تقسیم می شوند. با تقسیم و طبقه بندی کدها، برنامه به صورت سه لایه مجزا از هم در می آید. تنها نکته ای که می توان در اینجا بیان کرد این است که در برنامه نویسی MVC بخش Model کار ذخیره و بازیابی اطلاعات را بر عهده دارد و بخش View وظیفهی نمایش اطلاعات به کاربر را بر عهده دارد و بخش Controller دریافت اطلاعات از کاربر و پردازش را بر عهده دارد.
بسیاری از فریم ورک های برنامه نویسی شامل ابزاری به نام ORM یا Object-Relational Mapping می باشد که به منظور بهبود روش ارتباط با پایگاه داده است. در یک پاسخ کلی به این سوال که آیا استفاده از فریم ورک در برنامه نویسی خوب است یا نه؟ می توان گفت بله به طور کلی خوب است. در کاهش زمان توسعه و افزایش قابلیت توسعه پذیری مزایای بزرگی در هنگام برنامه نویسی و طراحی سایت به شما می روند. همچنین می توان در مورد فریم ورک های تحت سیستم عامل مانند جاوا و دات نت، نوشتن به یکباره و اجرا روی چندین سیستم عامل از نظر اقتصادی بسیار پر اهمیت هستند.
استفاده از فریم ورک ها به جز در مواردی خاص و برای کاربردهای ویژه، برنامه نویسی و طراحی سایت با فریم ورک می تواند گزینه ای هوشمندانه است. یک نکته مهم و کاربردی در هنگام برنامه نویسی انتخاب بهترین زبان برنامه نویسی و انتخاب صحیح فریم ورک مناسب که به دانش و تجربه ی زیادی نیازمند است.
مزایا و معایب استفاده از فریم ورک چیست؟
استفاده از framework هم مانند هر تکنولوژی دیگر معایب و مزایای مخصوص به خود را دارد که در ادامه به مهمترین آنها میپردازیم.
مزایای استفاده از framework
- کاهش زمان انجام پروژه: همانطور که گفته شد استفاده از فریمورک موجب صرفه جویی در زمان میشود.
- استفاده از توابع موجود: میتوان از توابع و متدهای موجود در فریمورکها استفاده کرد در حالی که نوشتن این توابع ممکن است روزها از ما وقت بگیرند.
- کاهش هزینههای اجرای پروژه: با توجه به دو علت قبل، میتوان دریافت که با کمک فریمورک هزینههای ساخت نرمافزار یا طراحی وبسایت کاهش مییابد.
- استاندارد شدن کدها: با استفاده از توابع و متدهای موجود در فریمورک می توان خاطرجمع بود که از کدهای استاندارد و نرمال استفاده کردهایم. زیرا فریمورکها توسط برنامهنویسهای بزرگ در سطح جهان نوشته شدهاند.
معایب استفاده از framework
- عدم درک عمق مفاهیم کدها: زمانی که از فریمورک استفاده میکنید، قطعاً جزییات کدهای توابع مورد استفاده، از دید شما دور میمانند. زمانی که شما صفر تا صد پروژه را خودتان کدنویسی کنید، با چالشهای بیشتری روبهرو خواهید بود که هرکدام برای شما درسی جدید محسوب میشود.
- تحمیل کدهای اضافی: در هر پروژه فقط بخشی از قابلیتها و کدهای فریمورک برای شما مورد استفاده قرار میگیرد. در واقع شما کدهایی که استفاده نمیکنید هم به پروژه خود اضافه کردهاید.
- احتیاج به صرف زمان جهت یادگیری: برای استفاده از هر فریمورک باید زمانی جهت یادگیری آن بگذارید تا بتوانید به بهترین نحو از آن استفاده کنید یا آن را شخصی سازی کنید.
معرفی چند فریم ورک معروف
اگر بخواهیم معروف ترین فریم ورک های این روزها را بدانیم، میتوانیم به چند مورد زیر اشاره کنیم:
- فریم ورک Laravel (مخصوص PHP)
- فریم ورک Codeigniter (مخصوص PHP)
- فریم ورک Zend (مخصوص PHP)
- فریم ورک Angular (مخصوص جاوا اسکریپت)
- فریم ورک Backbone (مخصوص جاوا اسکریپت)
- فریم ورک django (مخصوص پایتون)
جمع بندی
در نهایت اگر بخواهیم دربارهی سوال فریم ورک چیست یک جمع بندی داشته باشیم، میتوانیم بگوییم که فریم ورک ها مثل فرشتگان برای برنامه نویسان هستند که کمک میکنند فرایند برنامه نویسی برای شما لذت بخشتر، سریع تر و با بازدهی بیشتر باشد و باعث شود که وقت خودتان را روی چیزهایی بگذارید که ارزش وقت گذاشتن دارند!
الان وقتشه!
جهت مشاوره و ساخت طراحی سایت حرفه ای و بهینه سازی سایت و تولید محتوا تماس بگیر
نویسنده
مدیر سایت
حمیده عابدی کارشناس کامپیوتر رشته نرم افزار هستم و مشغول کار در در زمینه طراحی سایت با وردپرس و آشنا به سئو و بهینه سازی سایت، تولید محتوا، برنامه نویسی HTML, CSS هستم.