اگر در جستجوی معنا و کاربرد فریم ورک هستید این نشان میدهد یا برنامه نویس هستید و یا به برنامه نویسی علاقه دارید. درهرصورت شناخت بهتر این اصطلاح حتما برایتان مفید خواهد بود. اصطلاحی که بهاحتمالزیاد نامش را بسیار شنیدهاید و مزایا و کاربردهایش کنجکاوتان کرده است. یک«کتابخانه» یا یک «نقشهی برنامه نویسی» شاید توصیفهای مناسبی برای فریم ورک باشند اما کامل نیستند. ما در این مقاله قصد داریم بهطور کامل به بررسی مفهوم و کاربرد frameworkها بپردازیم. ابزاری که به عقیده بسیاری از برنامه نویسان نجاتبخش راه برنامه نویسی و توسعه برنامه بوده است. پس اگر به دنبال پیدا کردن راهی برای یک کدنویسی لذتبخش هستید این مقاله را از دست ندهید. فریم ورک چیست؟ فریم ورک (Framework) همانطور که از نامش پیداست یک قالب کاری یا یک چهارچوب نرمافزاری است. همانطور که وجود چهارچوب یا اسکلت در هر ساختمان باعث ایجاد یک ساختار بهتر و منظمتر میشود، فریم ورکها نیز کمک میکنند تا عملیات کد نویسی با نظم بیشتر و به بهترین شکل انجام شود. فریم ورکها را میتوان به کتابخانه نیز تشبیه کرد. کتابخانههایی که مجموعهای از کدها در آن به اشتراک گذاشتهشدهاند. کدهایی که توسعهدهندگان (Developers) در هنگام برنامه نویسی میتوانند آنها را فراخوانی کنند و بهاینترتیب مجبور نیستند یک کد را از اول بنویسند. این بیتهای اشتراکی به توسعهدهندگان کمک میکند تا بهجای صرف زمان بسیار برای نوشتن کدهای رایجی که بارها نوشتهشدهاند، روی موارد مهمتری مثل رابط کاربری (user interface) و کد نویسی قسمتهای مخصوص به برنامهی خودشان متمرکز شوند. فریم ورکها معمولا بر اساس ساختاری به نام (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 بیشتر بخوانید: cmd چیست میکرو فریم ورک 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 فریم ورک های زبان برنامه نویسی مختلفی وجود دارد اما بهترین زبان های برنامه نویسی را می توان به این موارد اشاره کرد. بیشتر بخوانید: برعکس نوشتن در فتوشاپ کمی درباره فریم ورکهای فرانت-اند و بک-اند بدانیم فریم ورکها جدا از زبانی که بر اساس آن طراحی میشوند، معمولا در دو دستهی بک اِند (Backend) و فرانت اند (Frontend) قرار میگیرند. فریم ورکهای بک اند یا سمت سرور (server-side) عملیات نوشتن، نگهداری و گسترش کد را برای برنامه نویس آسان میکنند. این نوع فریم ورکها امنیت وبسایت را نیز افزایش میدهند. در سایت رسمی Mozilla، محققان درباره اهمیت فریم ورکهای بک اند این طور میگوید: "شما مجبور به استفاده از فریم ورک سمت سرور نیستید اما بهشدت توصیه میشود که از آنها استفاده کنید، چراکه زندگی را برایتان سادهتر خواهند کرد!" Django، Ruby On Rails، Laravel نمونههایی از فریم ورکهای بک اند هستند. از سوی دیگر ظاهر و احساسی که یک کاربر از یک وبسایت یا اپلیکیشن دریافت میکند بستگی به اجزای توسعهی فرانت اند دارد. Bootstrap، Foundation، Semantic-UI و Skeleton از فریم ورکهای فرانت اند بهشمار میآیند. از میان این تنوع، در ادامه تعدادی از محبوبترین و کاربردیترین فریم ورکها در زبانهای برنامه نویسی مختلف را بررسی خواهیم کرد. Laravel: لاراول فریم ورکی رایگان و متن باز است که در دسته فریم ورکهای بک اِند قرار میگیرد. Laravel در زبان PHP، بر اساس ساختار MVC و برای ساخت سریع و آسان وب اپلیکیشنها طراحیشده است. متن باز بودن لاراول به توسعه دهندگان این امکان را میدهد تا بسته به نیاز و هدفشان تغییرات موردنظرشان را در آن ایجاد کنند. به همین سبب لاراول برای ساخت هر نوع وب اپلیکیشنی مناسب است. ازآنجاکه لاراول یک سیستم modular packaging است امکاناتی نیز برای راهاندازی، تعمیر و نگهداری نرمافزار ارائه میکند. همچنین وبسایت کامل و سورس کد مستندسازی شدهی لاراول، درک کدها را برای برنامه نویسان بسیار ساده کرده است. CakePHP: محبوبیت CakePHP در بین برنامهنویسان به این دلیل است که با کمک این فریم ورک میتوانند با حداقل کدنویسی، قابلیتهای منحصربهفردی ایجاد کنند. CakePHP بر مبنای MVC و نقشهبرداری دادههای ارتباطی (association data mapping) طراحی و ساخته شده است. این فریم ورکِ متن باز، تحت لیسانس MIT است و به همین سبب بهراحتی میتوان از آن برای ساخت وب اپلیکیشنهای عمومی استفاده کرد. همچنین وجود راهنمای عملی و داکیومنت دقیقش، یادگیری و کار با آن را بسیار ساده کرده است. از طرف دیگر با وجود قابلیتهایی مثل تایید اطلاعات ورودی کاربران، CSRF، حملات XXS و SQL Injection در این فریم ورک، امنیت وب اپلیکیشنهای طراحیشده نیز بهراحتی فراهم میشود. Yii: نام این فریم ورک مخفف عبارت Yes It Is است. چهارچوبی متن باز، سریع و امن که بر پایهی MVC و در زبان PHP طراحی شده است. برنامه نویسان با استفاده از Yii میتوانند در هنگام برنامه نویسی، سایر فریم ورکها را نیز ادغام کنند. امنیت بالا و پشتیبانی حرفهای از AJAX از مهمترین ویژگیهای Yii محسوب میشود. Django: این فریم ورک که بر مبنای زبان Python نوشته شده، با ابزارهایی همچون Authentication ،URI Routing ، ORM و ... برای طراحی وب اپلیکیشن تجهیز شده است. جَنگو به دلیل استفادهی آسان، قابلیت توسعه سریع اپلیکیشن و کارایی بالا به فریم ورکی ایدهآل برای توسعهدهندگان تبدیلشده است. گفتنی است که سیستم راهاندازی سایتهای بزرگی مثل Pinterest، اینستاگرام و فیسبوک از ابزارهای این فریم ورک استفاده میکنند. Flask: یک میکروفریم ورک (MicroFramework) سبک و قابل توسعه است. به کمک فلسک، برنامهنویسان بهراحتی میتوانند در زبان پایتون با تعداد خطوط کد کمتری، وب اپلیکیشن طراحی کنند. از ویژگیهای اصلی این فریم ورک میتوان به سهولت استفاده از آن، مستندسازی زیاد و پشتیبانی از Unit Testing، Restful request، Secure cookies و Unicode اشاره کرد. Angular: این فریم ورک محصول شرکت گوگل است که از آخرین تکنولوژیهای توسعه وب محسوب میشود. فریمورکی متن باز که برای توسعه فرانت اِند از آن استفاده میشود. آنگولار بر اساس زبان جاوا اسکریپت و الگوی معماری MVC طراحی شده است. این چهارچوب برای برنامههای وب SPA ساخته شده و کاربردش تنها در صفحات وب است. Angular به دلیل ارتقای مداوم از بهترین فریم ورکها محسوب میشود. React: ریاَکت فریم ورک محبوب دیگری در زبان جاوا اسکریپت و محصول شرکت فیسبوک است. از این چهارچوب برای طراحی و ساخت صفحههای کاربری دینامیک در وبسایتها استفاده میشود. با کمک React، برنامه نویسان و توسعه دهندگان بهآسانی میتوانند از DOM مجازی استفاده کنند. Ruby on Rails: این فریم ورک که به طور مخفف ROR خوانده میشود، فریم ورکی متن باز و رایگان در زبان برنامه نویسی Ruby است. ROR فریم ورک محبوب بسیاری از توسعهدهندگان است. تاکنون دهها هزار وب اپلیکیشن با استفاده از این فریم ورک نوشته و یا توسعه داده شده است. Airbnb، Basecamp و Hulu که از برندهای بزرگ و شناختهشده هستند، وبسایتشان را با استفاده از ROR توسعه دادهاند. این فریم ورک جامع در سیستم عامل لینوکس اجرا میشود و نسبت به سایر تکنولوژیها در این زمینه آسانتر و قابلکنترلتر است، تاجاییکه بسیاری از توسعه دهندگان کار با آن را سرگرمکننده و لذتبخش میدانند. Lotus: این فریم ورکِ زبان روبی، اوپن سورس و دارای ساختار MVC است. مزایای فراوان لوتوس همچون سادگی، استفاده از اصول برنامه نویسی شی گرا و داشتن API باثبات، آن را برای برنامه نویسانِ تحت وب به فریمورک محبوبی تبدیل کرده است. Net framework: به احتمال زیاد در هنگام نصب برخی برنامهها بر روی سیستم عامل ویندوز با عبارت «.Net Microsoft» مواجه شدهاید. .Net framework محصول شرکت مایکروسافت است که برای توسعه نرم افزارها بهویژه ویندوز و همینطور نرم افزارهای تحت وب طراحی شده است. کتابخانهی کدهایی که در این فریم ورک به اشتراک گذاشتهشدهاند FCL (Framework Class Library) نام دارد. این کتابخانه، کلاسها، ساختارها، دادههای شمارشی و ... را شامل میشود. فریم ورک دات نت شامل دهها هزار قطعه کد است که بیتهای این کدها میتوانند عملیات مختلفی را انجام دهند. Spring: معروفترین فریم ورک زبان جاوا و اولین فریم ورک MVC در دنیای برنامه نویسی است. Spring یک استاندارد غیررسمی جاوا و یک full stack از الگوها و خدماتی مانند MVC، Dependency Injection، IOC، Security، Persistance، Security و... است. GWT: فریم ورکی که مبتنی بر زبان جاوا و محصول شرکت گوگل است. نام آن از عبارت Google Web Toolkit گرفتهشده است. اصول برنامه نویسی GWT به برنامه نویسی اندروید شباهت دارد. Webmaster tools و Open KM از نرم افزارهای معروفی هستند که با GWT نوشته شدهاند. برنامه نویسان با کمک این فریم ورک بهراحتی میتوانند برنامههایی مبتنی بر تکنولوژی AJAX بنویسند. بیشتر بخوانید: آموزش HTML در جت جمعبندی: فریم ورک Framework چیست؟ این مقاله سعی داشت شما را با مفهوم فریم ورک و انواع آنها در دنیای برنامه نویسی آشنا کند. تعداد و تنوع فریم ورکها بسیار بیش از اینهاست که هر برنامه نویسی با توجه به هدف پروژه و با بررسی و مقایسه قابلیتهای مختلف فریم ورکها، مناسبترینشان را انتخاب میکند. فریم ورکها توسط برنامه نویسان توانمندی طراحی و نوشته میشوند به همین خاطر ساخت نرم افزارهای حرفهای به کمک این چهارچوبهای نرم افزاری بسیار سادهتر شده است. نرمافزارهایی که امنتر و درعینحال کارآمدتر و قدرتمندتر هستند. با استفاده از این چهارچوبهای نظاممند شما دیگر به نوشتن بسیاری از کتابخانهها نیاز ندارید. چراکه برنامهنویسان علاوهبر تعریف قواعد یک فریم ورک، آن را به کتابخانههای قدرتمندی نیز متصل میکنند. کتابخانههایی که فرآیند ارتباط با دیتا بیس (پایگاه داده) را تسهیل میکند. به سبب این مزایا و بسیاری مزیتهای دیگر است که فریم ورکها راه برنامه نویسی را برای برنامه نویسان بسیار هموار و دلچسب کردهاند. بیشتر بخوانید: بنچمارک چیست