زمانی که پای طراحی وب سایتهای دینامیک -وب سایتهایی که در آنها کاربران میتوانند به تعامل با سایت بپردازند و بر خلاف سایتهای استاتیک صرفاً یکسری اطلاعات در اختیار کاربر قرار نمی گیرد- به میان می آید، ما بر سر چند راهی قرار خواهیم گرفت که کدام زبان برنامه نویسی را انتخاب کنیم: آیا زبانهای مایکروسافتی مثل سی شارپ و خانواده دات نت را برگزینیم و یا به دنبال سالوشن های دیگری مثل پی اچ پی، روبی، پرل، پایتون و … برویم.
پس از انتخاب یکی از این زبانهای برنامه نویسی، باز هم دو راه پیش رو خواهیم داشت: یا این که به صورت Pure شروع به طراحی وب اپلیکیشن خود نماییم و یا این که از فریم ورک های مطرح این زبان های برنامه نویسی استفاده کنیم (در اینجا منظور از Pure این است که بدون کمک گرفتن از هیچ فریم ورکی، با همان کلاس ها، متدها و قابلیتهای پیشفرض یک زبان برنامه نویسی شروع به کدنویسی کنیم.) در این آموزش قصد داریم برخی از معروف ترین فریم ورک های زبانهای برنامه نویسی که برای طراحی وب اپلیکیشن ها از آنها استفاده میشود را معرفی کنیم.
فریم ورک های زبان برنامه نویسی PHP
Laravel: لاراول که توسط تیلور اوتول طراحی شده، جزو یکی از فریم ورک هایی است که مدت زمان زیادی از انتشار آن نمیگذرد اما با استقبال خوبی در میان برنامه نویسان پی اچ پی سرتاسر دنیا مواجه شده است و جالب است بدانیم که در سال 2015 این فریم ورک به عنوان محبوبترین فریم ورک زبان برنامه نویسی پی اچ پی انتخاب شد.
طراحان این فریم ورک که بر پایه ی الگوی معماری ام وی سی است، از ابتدا همواره این شعار را داشته اند که ساخت وب اپلیکیشن ها با این فریم ورک بسیار سریع و آسان است. این فریم ورک نه تنها رایگان است بلکه متن باز نیز می باشد. به عبارت دیگر، توسعه دهندگان بسته به نیاز خود میتوانند در این فریم ورک تغییراتی ایجاد کنند و آن را برای مقاصد خود بهینهتر سازند.
از این فریم ورک برای ساخت وب اپلیکیشن های تجاری بزرگ و یا سایتهای شخصی کوچک میتوان استفاده کرد لذا این فریم ورک مناسب هر نوع وب اپلیکیشنی می باشد. در طراحی این فریم ورک، از تعدادی از کامپوننت های فریم ورک Symphony نیز استفاده شده است که در ادامه با فریم ورک سیمفونی بیشتر آشنا خواهیم شد.
یکی دیگر از خصیصه های فریم ورک لاراول، وب سایت کامل و جامع و همچنین سورس کد مستندسازی شده ی آن است که این امکان را به برنامه نویسان میدهد تا به راحتی از کلیه کدها سر در بیاورند (اگر علاقمند به این فریم ورک می باشید، تعدادی از برنامه نویسان لاراول گروهی تشکیل داده اند تحت عنوان لاراتاکس که در جلسات هفتگی شان، به آموزش و بحث آزاد در مورد این فریم ورک می پردازند.)
Phalcon: در میان کلیه فریم ورک های پی اچ پی، فریم ورک فالکون لقب سریعترین فریم ورک را به خود اختصاص داده است. لذا اگر در صدد طراحی وب اپلیکیشنی هستید که سرعت اجرای آن برای شما حائز اهمیت است، گزینه پیش روی شما فریم ورک Phalcon خواهد بود. پایه و اساس این فریم ورک با زبان برنامه نویسی C نوشته شده است اما شما برای استفاده از این فریم ورک نمی بایست نحوه کدزنی با زبان C را فرا بگیرید چرا که شما با استفاده از کلاسهای پی اچ پی، به کلیه قابلیتهای نوشته شده توسط زبان C دسترسی خواهید داشت.
با توجه به این که این فریم ورک با زبان بسیار قدرتمند C نوشته شده است، نه تنها سرعت آن بسیار بالا است، بلکه منابع سخت افزاری اندکی نیز استفاده می کند. از آنجا که موتور جستجوی گوگل امروزه سرعت لود شدن سایتها را به عنوان یکی از عناصر دخیل در نتایج جستجوی کاربران محاسبه می کند، لذا استفاده از فریم ورک هایی که سرعت لود شدن وب اپلیکیشن شما را بهبود بخشند یک امر الزامی است.
این فریم ورک اصطلاحاً Loosely Coupled است. به عبارت دیگر، کامپوننت های مختلف این فریم ورک به گونهای نوشته شدهاند که دارای حداقل وابستگی به سایر کامپوننت ها هستند تا اجرا شوند و همین مسأله منجر میشود که دست برنامه نویسان در استفاده از کلیه کامپوننت ها و یا بخشی از آنها بازتر گردد. این فریم ورک از لحاظ مستندات و جامعه توسعه دهندگان نسبت به بسیاری از فریم ورک ها که از قدمت بیشتری نیز برخوردارند سر بوده و حرفهایی برای گفتن دارد.
Symphony: فریم ورک سیمفونی هم جزو فریم ورک هایی است که به خوبی مستندسازی شده است و تحت لیسانس MIT به صورت رایگان عرضه شده است. سیستم مدیریت محتوای دروپال و همچنین phpBB که یکی از سیستمهای تالار گفتگو است از فریم ورک سیمفونی استفاده می کنند. اگرچه در ابتدا ممکن است ساختار این فریم ورک برای برنامه نویسان -به خصوص برنامه نویسان تازه کار- گیجکننده باشد اما این در حالی است که اگر کسی مبانی زبانهای پی اچ پی و اچ تی ام ال را بلد بوده و با مفاهیمی همچون MVC آشنایی داشته و نحوه کار با دیتابیس را نیز بلد باشد، گفته میشود که یادگیری نحوه کار با این فریم ورک خیلی سریع اتفاق می افتد.
Yii: نام این فریم ورک مخفف واژگان Yes It Is است که جزو یکی از فریم ورک های سریع، ایمن و حرفهای و در عین حال MVC زبان برنامه نویسی پی اچ پی محسوب می گردد. برنامه نویسانی که قصد استفاده از فریم ورک Yii را دارند می بایست بدانند که این فریم ورک به گونهای طراحی شده است که میتوان آن را با سایر فریم ورک ها نیز ادغام نمود. یکی از برگ برنده های این فریم ورک، پشتبانی حرفهای از AJAX و امنیت بالای آن است.
CodeIgniter: مستندات این فریم ورک نسبت به برخی از فریم ورک های دیگر خوب به نظر می رسد. این فریم ورک تقریباً نیاز به تنظیمات خاصی نداشته و خیلی سریع میتوانید با آن شروع به کدنویسی کنید. یکی دیگر از مزایای فریم ورک CI این است که برنامه نویس را ملزم به تبعیت از قوانین محدود کننده کدنویسی نمی کند.
این فریم ورک جزو فریم ورک های سریع محسوب میشود زیرا برای اجرای هسته این فریم ورک فقط تعداد محدودی کامپوننت اجرا میشود و سایر کامپوننت ها بسته به درخواست های ارسالی اجرا شده لذا بار اضافی به سرور تحمیل نمی شود. معماری استفاده شده در این فریم ورک، معماری سه لایه MVC است لذا وب اپلیکیشن های نوشته شده با این فریم ورک دارای ظاهری مجزا از الگوریتم های اجرایی می باشند.
CakePHP: گفته میشود که با استفاده از کیک پی اچ پی، با حداقل کدنویسی میتوان به قابلیتهای منحصر به فردی دست یافت. برای شروع کار با این فریم ورک، برنامه نویسان نیاز به تنظیمات خاصی نداشته و صرفاً نیاز دارند تا دیتابیس خود را آماده ساخته و سپس شروع به کدنویسی کنند. این فریم ورک تحت لیسانس MIT است، لذا به سهولت میتوان از این فریم ورک برای وب اپلیکیشن های عمومی استفاده نمود. قابلیتهایی همچون تصدیق اطلاعات ورودی کاربران، CSRF، SQL Injection و حملات XSS که در دل این فریم ورک گنجانده شده ضامن امنیت وب اپلیکیشن های نوشته شده با این فریم ورک خواهد بود.
Zend: این فریم ورک توسط شرکت Zend Technologies توسعه داده شده است که این شرکت به عنوان توسعهدهنده اصلی خود زبان برنامه نویسی پی اچ پی نیز می باشد. زند یک فریم ورک متن باز، سه لایه و بسیار قدرتمند است. شما در طراحی وب اپلیکیشن ها با استفاده از زند میتوانید صرفاً آن کامپوننت هایی که نیاز دارید را فراخوانی کنید لذا سرعت وب اپلیکیشن شما تاحدودی ارتقاء خواهد یافت.
کسانی که از این فریم ورک استفاده میکنند یا عاشق آن میشوند و یا این که از آن متنفر میشوند و دلیل این مسأله هم آن است ساختار این فریم ورک تا حدودی پیچیده است! یکی از برگ برنده های این فریم ورک ماژولار بودن آن است. به عبارت دیگر، شما میتوانید وب اپلیکیشن خود را به ماژول های مختلف تقسیمبندی کرده و از آن ماژول ها در سایر پروژه های خود نیز استفاده کنید (لازم به ذکر است که سایت سکان آکادمی با استفاده از این فریم ورک طراحی شده است.)
Kohana: کوهانا یک فریم ورک پی اچ پی شیئ گرا است که بر اساس قابلیتهای زبان PHP نسخه ۵ نوشته شده است که قابلیتهای نسبتاً خوبی در اختیار برنامه نویسی قرار میدهد که از آن جمله میتوان به ابزارهای ترجمه، دسترسی به دیتابیس، رمزنگاری داده ها، تصدیق فرم و … اشاره کرد. در عین حال، سرعت وب اپلیکیشن های نوشته شده با این فریم ورک نسبت به سایر فریم ورک های این لیست هم قابل قبول است. لذا اگر سرعت برای شما مهم است، این فریم ورک را به شما توصیه می کنیم اما نکته ای که در ارتباط با این فریم ورک وجود دارد این است که ظاهرا از مستندات کامل و جامعی برخوردار نبوده و نسبت به سایر رقبا در سطح پایین تری برخوردار است.
Slim: این فریم ورک جزو فریم ورک های بسیار کم حجم است که لقب Micro-framework به آن داده شده است. اگر به دنبال یک فریم ورک کوچک، جمع و جور اما در عین حال قدرتمند می گردید، Slim را به شما توصیه می کنیم. نصب و تنظیمات این فریم ورک بسیار آسان و سریع است. از جمله سایر میکرو فریم ورک هایی که رقیبی برای اسلیم محسوب میشوند میتوان به Silex, Limonade و Flight اشاره کرد. جالب است بدانیم که این فریم ورک از لحاظ عملکرد، در تست های انجام شده پس از فریم ورک فالکون قرار گرفته است یعنی فریم ورکی بسیار سریع است.
FuelPHP: فیول پی اچ پی یک فریم ورک سه لایه MVC است که از معماری HMVC (نسخه ی پیشرفته ای از MVC) نیز پشتیبانی میکند که برای استفاده از آن نیاز به پی اچ پی نسخه 5.3 به بالا خواهید داشت. همچون فریم ورک زند، از این فریم ورک نیز میتوان به صورت ماژولار استفاده نمود و کدهایی که می نویسیم را در سایر پروژه ها مورد استفاده قرار داد. نکات امنیتی هم در این فریم ورک به خوبی رعایت شدهاند به این شکل که حملات XSS، CSRF و همچنین SQL Injection به خوبی مهار می شوند.
فریم ورک های زبان برنامه نویسی Ruby
Ruby on Rails: روبی آن ریلز یک فریم ورک اپن سورس کامل و جامع است که توسعه دهندگان میتوانند به زیبایی هرچه تمام تر اقدام به کدنویسی با این فریم ورک کنند. دهها هزار وب اپلیکیشن نوشته شده با زبان روبی بر بستر فریم ورک روبی آن ریلز هستند که این اپلیکیشن ها هم شامل پروژه های بزرگی با چندین هزار خط کد میشوند و هم پروژه های کوچک شخصی. جالب است بدانیم که بخش از کدنویسی سمت سرور شبکه ی اجتماعی معروف توییتر با استفاده از این فریم ورک طراحی شده است. این فریم ورک در سال 2003 توسط David Heinemeier Hansson آغاز گردید و از آن زمان تاکنون توسعه دهندگان بسیاری -نزدیک به 4000 نفر- در توسعه ی آن سهیم بوده اند.
Lotus: لوتوس یک فریم ورک کامل به معنای واقعی کلمه برای زبان برنامه نویسی روبی است. با به کارگیری از اصول برنامه نویسی شیء گرایی از یک سو و همچنین API باثبات این فریم ورک از سوی دیگر، طراحان فریم ورک لوتوس توانسته اند چارچوبی قابل اعتماد برای برنامه نویسان تحت وب ایجاد کنند. لوتوس یک فریم ورک اپن سورس است که سادگی جزو مزیتهای آن است. اگرچه ساختار این فریم ورک MVC است اما این در حالی است که دست توسعه دهنده کاملاً باز است تا بسته به نیاز خود، تغییراتی در ساختار این فریم ورک ایجاد کند.
Rack: این فریم ورک سبک، کوچک، ماژولار و کاملاً سازگار با هر نوع پروژه ای است که کلیه ی درخواست های اچ تی تی پی را به سادهترین شکل ممکن هندل می کند. علاوه بر این، فریم ورک رک از API های مختلفی برای ادغام سرویس ها و فریم ورک های دیگر برخوردار است که کار با این فریم ورک را لذت بخش تر می سازد.
Sinatra: سیناترا یک Domain Specific Language که به اختصار DSL خوانده میشود است. به طور کلی منظور از دی اس ال، زبانی است که کاربرد خاصی دارد و فریم ورک سیناترا هم از این جهت یک دی اس ال خوانده میشود که برای ساخت وب اپلیکیشن ها با استفاده از زبان برنامه نویسی روبی در کمترین زمان ممکن مورد استفاده قرار می گیرد.
Padrino: پادرینو فریم ورکی است که بر پایه ی فریم ورک سیناترا نوشته شده است اما سعی توسعه دهندگانش بر این بوده تا لذت کدنویسی با زبان برنامه نویسی روبی در این فریم را دوچندان کنند. با طراحی یکسری ابزارها، هلپرها و کتابخانه ها، فریم ورک پادرینو طراحی وب اپلیکیشن های پیچیده با استفاده از زبان روبی را راحتتر می سازد.
Cuba: کوبا یک میکرو فریم ورک -فریم ورک سبک و کوچک- اپن سورس است که توسط Michel Martens نوشته شده است. این فریم ورک در عین مینیمالیستی بودن، توسعه دهندگان را قادر میسازد تا اپلیکیشن های پیچیده را با استفاده از کتابخانه ی قدرتمندش مدیریت کنند.
Scorched: اسکورچد یک فریم ورک سبک، ساده و کارآمد برای زبان برنامه نویسی روبی است که با استفاده از آن میتوان وب اپلیکیشن هایی در هر مقیاسی طراحی کرد. این فریم ورک تا حدودی شبیه به فریم ورک سیناترا است که پیچیدگی هایش به مراتب کمتر از سیناترا بوده اما در عین حال قدرتمندتر است.
Grape: اگر شما جزو توسعه دهندگانی باشید که تمایل به استفاده از فریم ورک گسترده ای همچون روبی آن ریلز نداشته باشد اما در عین حال بخواهید اپلیکیشن هایی اثربخش و سریع بسازید، میکرو فریم ورک گریپ مناسب کار شما خواهد بود.
فریم ورک های زبان برنامه نویسی Python
Django: جنگو (حرف D تلفظ نمی شود!) یک فریم ورک تجهیز شده به ابزارهای مورد نیاز برای طراحی وب اپلیکیشن با استفاده از زبان برنامه نویسی پایتون است که از جمله ی این ابزارها میتوان به Authentication, URI Routing, ORM و … اشاره کرد. این فریم ورک با قابلیتهایی همچون توسعه ی سریع اپلیکیشن، استفاده ی آسان و عملکرد بالا توانسته توسعه دهندگان ایدهآل گرا را به خود جذب کند. وجود منابع آموزشی و کتابهای تخصصی آموزش جنگو، باعث محبوبیت بیشتر این فریم ورک گشته است.
Flask: فلسک میکرو فریم ورکی سبک اما در عین حال قابل توسعه است که برای زبان برنامه نویسی پایتون نوشته شده است. گفته میشود که وب اپلیکیشن های طراحی شده با فلسک نسبت به جنگو بیشتر بوی زبان پایتون میدهند چرا که با تعداد خطوط کد کمتری میتوان یک اپلیکیشن به زبان پایتون نوشت.
TurboGears: توربوگیرز یک فریم ورکی است با کسب تجربه از فریم ورک های جنگو، روبی آن ریلز و … طراحی گشته که با استفاده از آن در کوتاه ترین زمان ممکن میتوان یک وب اپلیکیشن طراحی کرد. توربوگیرز پاسخی به تمام توسعه دهندگانی است که از محدودیتهای فریم ورک های زبانهای برنامه نویسی مختلف خسته شده و به دنبال راهکاری اثربخش و در عین حال ساده می گردند.
Web2py: این فریم ورک اپن سورس، همه منظوره، سریع، توسعه پذیر و ایمن است که برای علاقمندان به زبان برنامه نویسی پایتون طراحی گشته است. از جمله قابلیتهای منحصر به فرد این فریم ورک زبان برنامه نویسی پایتون میتوان به قابلیت ایجاد، ویرایش و مدیریت وب اپلیکیشن از هر زمان و مکانی صرفاً از طریق یک مرورگر همچون فایرفاکس یا گوگل کروم و ... اشاره کرد.
Pyramid: جامعه ی توسعه دهندگان فریم ورک پیرمید به سرعت در حال رشد است و علاوه بر جامعه ی گسترده ی توسعه دهندگان، مستندات این فریم ورک نیز قابل توجه است و این امکان را در اختیار توسعه دهندگان قرار میدهد تا به سادگی شروع به کار با این فریم ورک نمایند. فریم ورک پیرمید مینیمالیستی، سریع و قابل اعتماد است و برای کسانی که تمایل دارند پروژه های API بنویسند، یک ایده را از بالقوه به بالفعل درآورند و پروژه های بزرگی همچو سی ام اس طراحی کنند مناسب است.
Bottle: باتل یک میکرو فریم ورک است که بر پایه ی پایتون نسخه ی 3 اجرا می شود. این فریم ورک دارای حداقل ابزارهای مورد نیاز برای طراحی یک اپلیکیشن است لذا توسعهدهنده به هیچ وجه نیاز به کتابخانههای اضافی نخواهد داشت. انعطاف پذیری، امکان توسعه ی API های تحت وب و طراحی پروژه های سبک و ساده این فریم ورک را به کاندیدای خوبی برای بسیاری از توسعه دهندگان مبدل ساخته است.
فریم ورک زبانهای مایکروسافتی
NET.: دات نت فریم ورک طراحی شده توسط شرکت مایکروسافت است که شامل مجموعهای از زبانهای برنامه نویسی است که سی شارپ و ویژوال بیسیک جزو مهمترین آنها هستند. کتابخانههای گسترده ای در این فریم ورک تعبیه شدهاند که کار توسعه ی نرمافزار از طراحی وب سرویس گرفته تا توسعه ی وب اپلیکیشن، نرم افزارهای تحت ویندوز و … را امکانپذیر ساخته است.
فریم ورک های زبان برنامه نویسی Perl
Catalyst: کاتالیست یک فریم ورک MVC اپن سورس برای زبان برنامه نویسی پرل است که امکان توسعه ی سریع وب اپلیکیشن را برای توسعه دهندگان فراهم می سازد. این فریم ورک دارای یکسری پلاگین از پیش نوشته شده است که از آن جمله میتوان به Session Management, User Authentication, Caching و بسیاری پلاگین کاربردی دیگر اشاره کرد.
Mojolicious: بسیاری از توسعه دهندگانی که به زبان برنامه نویسی پرل روی آورند، این کار را به خاطر لایبرری بسیار قدرتمند این زبان تحت عنوان CGI کردند. این کتابخانه بسیار ساده اما در عین حال قدرتمند بود و توسعه دهندگان در حین کار با آن، نحوه ی کارکردش را نیز فرا می گرفتند. فریم ورک Mojolicious نیز از ایده ی پشت CGI الهام گرفته و این امکان را به توسعه دهندگان میدهد تا از سایتهای ساده ی تک صفحهای تا وب اپلیکیشن های بزرگ را با استفاده از این فریم ورک طراحی کنند. Session Management, RESTful Routes, Form Validation و Unicode Support تنها بخشی از قابلیتهای این فریم ورک اند.
آنچه مسلم است، موارد فوق الذکر تنها بخشی از زبان های برنامه نویسی و فریم ورک های اختصاصی آن ها است که بر پایه ی الگوی معماری MVC کار می کنند و با گوگل کردن -امروزه از نام گوگل به عنوان فعل نیز استفاده می شود- مسلما به لیست جامع تری از فریم ورک های زبان های برنامه نویسی تحت وب می توان دسترسی پیدا نمود.