آشنایی با فریم ورک و انواع آن

فریم ورک

آشنایی با فریم ورک و انواع آن

فریم ورک چیست؟

فریم ورک (Framework) همان‌طور که از نامش پیداست یک قالب کاری یا یک چهارچوب نرم‌افزاری است. یک اسکلت ساختمان را در نظر بگیرید. اسکلت‌بندی کمک می‌کند که ساختمان در یک نظم مشخص و چهارچوب تعیین شده ساخته شود. فریم‌ورک‌ها هم دقیقاً همین نقش را دارند. آنها باعث می‌شوند که برنامه‌نویس در یک چهارچوب مشخص به‌صورت منظم کدنویسی کند.

فریم ورک

فریم ورک‌ها را می‌توان به کتابخانه نیز تشبیه کرد. کتابخانه‌هایی که مجموعه‌ای از کدها در آن به اشتراک گذاشته‌شده‌اند. کدهایی که توسعه‌دهندگان (Developers) در هنگام برنامه نویسی می‌توانند آن‌ها را فراخوانی کنند و به‌ این‌ترتیب مجبور نیستند یک کد را از اول بنویسند.

این بیت‌های اشتراکی به توسعه‌دهندگان کمک می‌کند تا به‌جای صرف زمان بسیار برای نوشتن کدهای رایجی که بارها نوشته‌‌شده‌اند، روی موارد مهم‌تری مثل رابط کاربری (user interface) و کد نویسی قسمت‌های مخصوص به برنامه‌ی خودشان متمرکز شوند.

همچنین با فراخوانی این چهارچوب دیگر نیازی نیست هربار تمام کدهای موردنیاز و رایج را بنویسید. فقط کافی است روی کارکرد خود پروژه تمرکز کنید. در واقع فریم‌ورک‌ها، کدهای رایجی هستند که در هر پروژه مورد نیاز است. زمانی که به پروژه اضافه می‌شوند از چندباره نویسی بخشی از کدها هم جلوگیری می‌شود.

فریم ورک

فریم ورک‌ها معمولا بر اساس ساختاری به نام (MVC (Model View Controller ساخته می‌شوند. MVC یک ساختار برنامه نویسی شی گرا و شکل خاصی از ترکیب کدهای برنامه نویسی است. در این ساختار، کدها به سه لایه مجزا طبقه‌بندی می‌شوند. در MVC هر بخشی وظیفه منحصربه‌فردی دارد:

  • Model: ذخیره و بازیابی اطلاعات

  • View: نمایش اطلاعات به کاربر

  • Controller: دریافت اطلاعات از کاربر و پردازش آن‌ها

زمانی که یک کاربر از سایتتان بازدید می‌کند درواقع در حال به‌کارگیری بخش کنترلر است. بدین ترتیب کنترلر، ویو را بررسی می‌کند و آنچه را که باید نمایش می‌دهد. وقتی بازدیدکنندگان یکی از دستورات CRUD و یا ( Creat – Read – Update – Delete) را انجام می‌دهند درواقع در حال انجام چنین کارهایی هستند:

?Create: ایجاد یک حساب کاربری
? Read: انجام عمل جستجوی سایت
? Update: ایجاد تغییرات در تنظیمات حساب کاربری
? Delete: حذف حساب کاربری

البته این بدین معنا نیست که همه فریم ورک‌ها بر اساس شی گرایی ساخته می‌شوند. معمولا پرتال‌ها و سیستم‌های مدیریت محتوا مانند جوملا، نیوک، مامبو، وردپرس و … درنهایت به یک کتابخانه یا فریم ورک تبدیل می‌شوند.

به‌طورکلی فریم ورک‌ها هر ساختاری که داشته باشند، هدف اصلی‌شان انجام عملیات برنامه نویسی در کمترین زمان ممکن و با حداقل تعداد کد و در عین حال با حداکثر کارایی است.

مزایا و معایب استفاده از فریم‌ورک چیست؟

استفاده از framework هم مانند هر تکنولوژی دیگر معایب و مزایای مخصوص به خود را دارد که در ادامه به مهم‌ترین آنها می‌پردازیم.

مزایای استفاده از framework

✅ کاهش زمان انجام پروژه: همانطور که گفته شد استفاده از فریم‌ورک موجب صرفه جویی در زمان می‌شود.

✅ استفاده از توابع موجود: می‌توان از توابع و متدهای موجود در فریم‌ورک‌ها استفاده کرد در حالی که نوشتن این توابع ممکن است روز‌ها از ما وقت بگیرند.

✅ کاهش هزینه‌های اجرای پروژه: با توجه به دو علت قبل، می‌توان دریافت که با کمک فریم‌ورک هزینه‌های ساخت نرم‌افزار یا طراحی وب‌سایت کاهش می‌یابد.

✅ استاندارد شدن کدها: با استفاده از توابع و متدهای موجود در فریم‌ورک می توان خاطرجمع بود که از کدهای استاندارد و نرمال استفاده کرده‌ایم. زیرا فریم ورک‌ها توسط برنامه‌نویس‌های بزرگ در سطح جهان نوشته شده‌اند.

معایب استفاده از framework

❌ عدم درک عمق مفاهیم کدها: زمانی که از فریم ورک استفاده می‌کنید، قطعاً جزییات کدهای توابع مورد استفاده، از دید شما دور می‌مانند. زمانی که شما صفر تا صد پروژه را خودتان کدنویسی کنید، با چالش‌های بیشتری روبه‌رو خواهید بود که هرکدام برای شما درسی جدید محسوب می‌شود.

❌ تحمیل کدهای اضافی: در هر پروژه فقط بخشی از قابلیت‌ها و کدهای فریم‌ورک برای شما مورد استفاده قرار می‌گیرد. در واقع شما کدهایی که استفاده نمی‌کنید هم به پروژه خود اضافه کرده‌اید.

❌ احتیاج به صرف زمان جهت یادگیری: برای استفاده از هر فریم ورک باید زمانی جهت یادگیری آن بگذارید تا بتوانید به بهترین نحو از آن استفاده کنید یا آن را شخصی سازی کنید.

فریم ورک

انواع فریم ورک‌ها

همان‌طور که گفتیم 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

فریم ورک‌های فرانت-اند و بک-اند را بشناسیم

فریم ورک‌ها جدا از زبانی که بر اساس آن طراحی می‌شوند، معمولا در دو دسته‌ی بک اِند (Backend) و فرانت اند (Frontend) قرار می‌گیرند. فریم ورک‌های بک اند یا سمت سرور (server-side) عملیات نوشتن، نگهداری و گسترش کد را برای برنامه نویس آسان می‌کنند. این نوع فریم ورک‌ها امنیت وبسایت را نیز افزایش می‌دهند. در سایت رسمی Mozilla، محققان درباره اهمیت فریم ورک‌های بک اند این طور می‌گوید:

“شما مجبور به استفاده از فریم ورک سمت سرور نیستید اما به‌شدت توصیه می‌شود که از آن‌ها استفاده کنید، چراکه زندگی را برایتان ساده‌تر خواهند کرد!”

فریم ورک

Django، Ruby On Rails، Laravel نمونه‌هایی از فریم ورک‌های بک اند هستند. از سوی دیگر ظاهر و احساسی که یک کاربر از یک وبسایت یا اپلیکیشن دریافت می‌کند بستگی به اجزای توسعه‌ی فرانت اند دارد. Bootstrap، Foundation، Semantic-UI و Skeleton از فریم ورک‌های فرانت اند به‌شمار می‌آیند. از میان این تنوع، در ادامه تعدادی از محبوب‌ترین و کاربردی‌ترین فریم ورک‌ها در زبان‌های برنامه نویسی مختلف را بررسی خواهیم کرد.

1️⃣ Laravel

فریم ورک

لاراول فریم ورکی رایگان و متن باز است که در دسته فریم ورک‌های بک اِند قرار می‌گیرد. Laravel در زبان PHP، بر اساس ساختار MVC و برای ساخت سریع و آسان وب اپلیکیشن‌ها طراحی‌شده است. متن باز بودن لاراول به توسعه دهندگان این امکان را می‌دهد تا بسته به نیاز و هدفشان تغییرات موردنظرشان را در آن ایجاد کنند. به همین سبب لاراول برای ساخت هر نوع وب اپلیکیشنی مناسب است. از آنجا که لاراول یک سیستم modular packaging است امکاناتی نیز برای راه‌اندازی، تعمیر و نگهداری نرم‌افزار ارائه می‌کند. همچنین وبسایت کامل و سورس کد مستندسازی شده‌ی لاراول، درک کدها را برای برنامه نویسان بسیار ساده کرده است.

2️⃣ CakePHP

فریم ورک

محبوبیت CakePHP در بین برنامه‌نویسان به این دلیل است که با کمک این فریم ورک می‌توانند با حداقل کدنویسی، قابلیت‌های منحصربه‌فردی ایجاد کنند. CakePHP بر مبنای MVC و نقشه‌برداری داده‌های ارتباطی (association data mapping) طراحی و ساخته شده است. این فریم ورکِ متن باز، تحت لیسانس MIT است و به‌ همین‌ سبب به‌راحتی می‌توان از آن برای ساخت وب اپلیکیشن‌های عمومی استفاده کرد. همچنین وجود راهنمای عملی و داکیومنت دقیقش، یادگیری و کار با آن را بسیار ساده کرده است. از طرف دیگر با وجود قابلیت‌هایی مثل تایید اطلاعات ورودی کاربران، CSRF، حملات XXS و SQL Injection در این فریم ورک، امنیت وب اپلیکیشن‌های طراحی‌شده نیز به‌راحتی فراهم می‌شود.

فریم ورک

3️⃣ Yii

نام این فریم ورک مخفف عبارت Yes It Is است. چهارچوبی متن‌ باز، سریع و امن که بر پایه‌ی MVC و در زبان PHP طراحی‌ شده است. برنامه نویسان با استفاده از Yii می‌توانند در هنگام برنامه نویسی، سایر فریم ورک‌ها را نیز ادغام کنند. امنیت بالا و پشتیبانی حرفه‌ای از AJAX از مهم‌ترین ویژگی‌های Yii محسوب می‌شود.

فریم ورک

4️⃣ Django

این فریم ورک که بر مبنای زبان Python نوشته شده، با ابزارهایی همچون Authentication ،URI Routing ، ORM و … برای طراحی وب اپلیکیشن تجهیز شده است. جَنگو به دلیل استفاده‌ی آسان، قابلیت توسعه سریع اپلیکیشن و کارایی بالا به فریم ورکی ایده‌آل برای توسعه‌دهندگان تبدیل‌شده است. گفتنی است که سیستم راه‌اندازی سایت‌های بزرگی مثل Pinterest، اینستاگرام و فیسبوک از ابزارهای این فریم ورک استفاده می‌کنند.

5️⃣ Flask

یک میکروفریم ورک (MicroFramework) سبک و قابل توسعه است. به کمک فلسک، برنامه‌نویسان به‌راحتی می‌توانند در زبان پایتون با تعداد خطوط کد کمتری، وب اپلیکیشن طراحی کنند. از ویژگی‌های اصلی این فریم ورک می‌توان به سهولت استفاده از آن، مستندسازی زیاد و پشتیبانی از Unit Testing، Restful request، Secure cookies و Unicode اشاره کرد.

6️⃣ Angular

این فریم ورک محصول شرکت گوگل است که از آخرین تکنولوژی‌های توسعه وب محسوب می‌شود. فریم‌ورکی متن باز که برای توسعه فرانت اِند از آن استفاده می‌شود. آنگولار بر اساس زبان جاوا اسکریپت و الگوی معماری MVC طراحی شده است. این چهارچوب برای برنامه‌های وب SPA ساخته شده و کاربردش تنها در صفحات وب است. Angular به دلیل ارتقای مداوم از بهترین فریم ورک‌ها محسوب می‌شود.

7️⃣ React

React فریم ورک محبوب دیگری در زبان جاوا اسکریپت و محصول شرکت فیسبوک است. از این چهارچوب برای طراحی و ساخت صفحه‌های کاربری دینامیک در وبسایت‌ها استفاده می‌شود. با کمک React، برنامه نویسان و توسعه دهندگان به‌آسانی می‌توانند از DOM مجازی استفاده کنند.

فریم ورک

8️⃣ Ruby on Rails

فریم ورک

این فریم ورک که به طور مخفف ROR خوانده می‌شود، فریم ورکی متن باز و رایگان در زبان برنامه نویسی Ruby است. ROR فریم ورک محبوب بسیاری از توسعه‌دهندگان است. تاکنون ده‌ها هزار وب اپلیکیشن با استفاده از این فریم ورک نوشته و یا توسعه داده شده است. Airbnb، Basecamp و Hulu که از برندهای بزرگ و شناخته‌شده هستند، وبسایتشان را با استفاده از ROR توسعه داده‌اند. این فریم ورک جامع در سیستم عامل لینوکس اجرا می‌شود و نسبت به سایر تکنولوژی‌ها در این زمینه آسان‌تر و قابل‌کنترل‌تر است، تاجایی‌که بسیاری از توسعه دهندگان کار با آن را سرگرم‌کننده و لذت‌بخش می‌دانند.

9️⃣ 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 بنویسند.

Share this post

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.