
فریم ورک Framework چیست؟
فریم ورک Framework به زبان فارسی یعنی«چارچوب»چارچوب خلاصه ومعرب شدهی عبارت«چهارچوب» است. بدون تحقیق هم میتوان فهمید که این عبارت از دنیای معماری به نرمافزار و بعضا مدیریت راه یافته است.با شنیدن عبارت«چارچوب»بسته به این که گوینده یا نویسنده آن را به چه موضوعی سنجاق کرده،میتوانید به هرچیز کلی فکر کنید: مثل چارچوب قرارداد، چارچوب مدیریت یا چارچوب در منزل!
وقتی توسعه دهندگان نرمافزارمجموعهای از کلاسها، توابع، ماژولها و روشهای اجرایی خود رادرقالب ساختاری منسجم به شکلی گردآوری کردند که سرعت کارهای پرتکرار را چندبرابر کرد و در عین حال به آسانی قابل انتقال به دیگران شد ، اولین فریم ورک های نرم افزای شکل گرفت و به تدریج توسعه پیدا کرد ، به شکلی که امروزعدم استفاده از آن به شدت بر سرعت و هزینه پروژهها تاثیر میگذارد.
معمولا فریم ورک ها توسط شرکتهای بزرگ و باسابقه ایجاد و توسعه داده میشوند اما امروزه فریم ورک های زیادی وجود دارد که بواسطه ارتباط آنلاین با خرد جمعی و مشارکت گروهیِ داوطلبانه یعنی جمع سپاری ایجاد و توسعه یافتهاند.
فریم ورک های نرمافزاری و برنامهنویسی انواع مختلفی دارند، یکی از مشهورترین آنها فرم ورک « دات نت .Net » متعلق به شرکت مایکروسافت است که حاوی هزاران کتابخانهی کوچک و بزرگ به همراه روشها و ابزارهایی آن برای توسعهی برنامههای نرمافزاری به زبانهای رایج است.

ساختارفریم ورک
فریم ورکها معمولا بر اساس ساختاری به نام (MVC (Model View Controller ساخته میشوند. MVC یک ساختار برنامه نویسی شی گرا و شکل خاصی از ترکیب کدهای برنامه نویسی است.در این ساختار، کدها به سه لایه مجزا طبقه بندی میشوند. در MVC هر بخشی وظیفه منحصربه فردی دارد:
- Model : ذخیره و بازیابی اطلاعات
- View : نمایش اطلاعات به کاربر
- Controller : دریافت اطلاعات از کاربر و پردازش آنها
زمانی که یک کاربر از سایتتان بازدید میکند درواقع در حال بهکارگیری بخش کنترلر است. بدین ترتیب کنترلر، ویو را را بررسی میکند و آنچه را که باید نمایش میدهد . وقتی بازدید کنندگان یکی از دستورات CRUD و یا ( Creat – Read – Update – Delete) را انجام میدهند درواقع در حال انجام چنین کارهایی هستند:
- Create : ایجاد یک حساب کاربری
- Read : انجام عمل جستجوی سایت
- Update : ایجاد تغییرات در تنظیمات حساب کاربری
- Delete : حذف حساب کاربری
این بدین معنا نیست که همه فریم ورکها بر اساس شی گرایی ساخته میشوند

هدف از فریم ورک
معمولا پرتالها و سیستمهای مدیریت محتوا مانند جوملا، نیوک، مامبو، وردپرس و … درنهایت به یک کتابخانه یا فریم ورک تبدیل میشوند. به طورکلی فریم ورکها هر ساختاری که داشته باشند، هدف اصلیشان انجام عملیات برنامه نویسی در کمترین زمان ممکن و با حداقل تعداد کد و در عین حال با حداکثر کارایی است.
انواع فریم ورکها
همانطور که گفتیم Framework، فایلی حاوی مجموعهای از هزاران هزار کد و اسکریپت در زبانهای مختلف برنامه نویسی مثل PHP، JS (جاوا اسکریپت)، Python و … است. هر زبانی فریم ورکهای مخصوص به خود را دارد.

فریم ورکهای زبان برنامه نویسی PHP
- Laravel
- Phalcon
- Symphony
- Yii
- Codelgniter
- CakePHP
- Zend
- Kohana
- FuelPHP
میکرو فریم ورک PHP
- Flight
- Sliex
- Limonade
- Slim
فریم ورکهای زبان جاوا
- Spring
- Hibernate
- Java EE
- Struts
- GWT
فریم ورکهای زبان جاوااسکریپت
- Angular
- React
- Ember
- Backbone
- Vue
- Aurelia
- Polymer
فریم ورکهای زبان برنامه نویسی Ruby
- Ruby on Rails
- Lotus
- Rack
- Sinatra
- Padrino
- Cuba
- Scorched
- Grape
فریم ورکهای زبان برنامه نویسی Python
- Django
- Flask
- TurboGears
- Web2py
- Pyramid
- Bottle
فریم ورک زبان مایکروسافتی
- Net
فریم ورکهای زبان برنامه نویسی Perl
- Catalyst
- Mojolicious
مزایا و معایب استفاده از فریمورک چیست؟
مزایای استفاده از framework
کاهش زمان انجام پروژه : همانطور که گفته شد استفاده از فریمورک موجب صرفه جویی در زمان میشود.
استفاده از توابع موجود : میتوان از توابع و متدهای موجود در فریمورکها استفاده کرد در حالی که نوشتن این توابع ممکن است روزها از ما وقت بگیرند.
کاهش هزینههای اجرای پروژه : با توجه به دو علت قبل، میتوان دریافت که با کمک فریمورک هزینههای ساخت نرمافزار یا طراحی وبسایت کاهش مییابد.
استاندارد شدن کدها: با استفاده از توابع و متدهای موجود در فریم ورک می توان خاطرجمع بود که از کدهای استاندارد و نرمال استفاده کردهایم . زیرا فریم ورکها توسط برنامهنویسهای بزرگ در سطح جهان نوشته شدهاند.
معایب استفاده از framework
عدم درک عمق مفاهیم کدها: زمانی که از فریم ورک استفاده میکنید، قطعاً جزییات کدهای توابع مورد استفاده ، از دید شما دور میمانند. زمانی که شما صفر تا صد پروژه را خودتان کدنویسی کنید ، با چالشهای بیشتری رو به رو خواهید بود که هرکدام برای شما درسی جدید محسوب میشود.
تحمیل کدهای اضافی: در هر پروژه فقط بخشی از قابلیتها و کدهای فریم ورک برای شما مورد استفاده قرار میگیرد . در واقع شما کدهایی که استفاده نمیکنید هم به پروژه خود اضافه کردهاید.
احتیاج به صرف زمان جهت یادگیری: برای استفاده از هر فریم ورک باید زمانی جهت یادگیری آن بگذارید تا بتوانید به بهترین نحو از آن استفاده کنید یا آن را شخصی سازی کنید.
خدمات IT را با هوشمندنت تجربه کنیدوبا خیال راحت صفرتا صد سیستم کاری خودرابا ارزانترین قیمت راه اندازی کنیدجهت اطلاعاتی کامل تر از خدمات و مشاوره رایگان برای خریدی مطمن با هوشمندنت در تماس باشید