روبی آن ریلز

**روبی آن ریلز**  یا به صورت ساده **ریلز**، یک چارچوب نرم‌افزاری تحت وب، آزاد و متن‌باز است که از زبان برنامه‌نویسی روبی استفاده می‌کند. هدف ریلز، ایجاد یک چارچوب نرم‌افزاری تحت وب، که از روش توسعه سریع برای برنامه‌نویسان وب استفاده می‌کند، است.

## پیشینه

روبی آن ریلز برگرفته از پروژهٔ بیس‌کمپ توسط دیوید هاینمیر هانسن بود که ابتدا یک ابزار مدیریت پروژه توسط شرکت 37signals (که حالا تبدیل به یک شرکت تولید نرم‌افزارهای وب شده‌است) بود. در ژوئیه سال ۲۰۰۴، هاینمیر هانسن ریلز را به عنوان یک نرم‌افزار آزاد و متن‌باز منتشر کرد اما تا فوریه سال ۲۰۰۵ حقوق انتشار آن را به اشتراک نگذاشت. در سال ۲۰۰۶، این چارچوب به مرحله‌ای رسید که شرکت اپل اعلام کرد که در سال ۲۰۰۷ روبی آن ریلز به عنوان یک چارچوب پیش‌فرض در سیستم‌عامل مک اواس نسخهٔ ۱۰٫۵ قرار خواهد گرفت.

## مرور کلی فنی
مانند دیگر چارچوب‌های وب، ریلز هم از معماری مدل-نما-کنترل‌گر برای سازمان‌دهی برنامه‌نویسی نرم‌افزار، استفاده می‌کند.

روبی آن ریلز شامل ابزاری است که کارهای تکراری و مشترک توسعهٔ نرم‌افزار را بسیار ساده می‌کند، ابزاری مانند داربست، تعدادی از مدل‌ها و نماها را به صورت خودکار که برای هر وب‌سایت نیاز است را می‌سازد. همچنین شامل یک وب سرور ساده (WEBRick) و یک ابزار ساخت سیستم (Rake) است. ریلز و این ابزار، با یکدیگر یک محیط توسعهٔ پایه‌ای را فراهم می‌کنند.

برنامه‌های روبی آن ریلز برای اجرا شدن نیاز به یک وب سرور دارند. در هنگام نوشتن این مطلب Mongrel، بر WEBRick ترجیح داده می‌شود اما شما می‌توانید از وب سرورهای دیگری مانند لایتی، Abyss, آپاچی و خیلی دیگر از وب سرورها استفاده کنید. از سال ۲۰۰۸ به بعد، وب سرور پسنجر  از لحاظ استفاده شدن جای وب سرور Mongrel را گرفت. به تازگی، وب سرور Unicorn محبوبیت خوبی برای انتشار  پیدا کرده‌است.

یکی از ویژگی‌های باارزش ریلز استفاده از کتابخانه‌های بزرگ جاوااسکریپت Prototype و script.aculo.us برای آژاکس است. در ابتدا ریلز از پروتکل دسترسی آسان به اشیاء برای دسترسی به خدمات وب استفاده می‌کرد، اما بعد آن جایگزین خدمات وب RESTful شد.

از نسخه ۲٫۰، روبی آن ریلز به صورت پیش‌فرض خروجی‌های HTML و XML را ارائه می‌دهد. دومی، ابزاری برای خدمات وب RESTful است.

### مزایا و معایب
**مزایا:** توسعه سریع و تمیز - جامعه کاربری قوی و منابع آموزشی زیاد - ساختار منسجم برای پروژه‌های بزرگ - امنیت بالا با ابزارهای داخلی

**معایب:** مصرف منابع نسبتاً زیاد برای اپ‌های بسیار بزرگ - سرعت پایین‌تر نسبت به فریم‌ورک‌هایی مثل Node.js در بعضی کاربردها - نیاز به دانش خوب از Rub

## ساختار چهارچوب
روبی آن ریلز در چندین بسته ارائه می‌شود، اکتیو رکورد معروف (یک ORM برای دسترسی به پایگاه داده)، اکتیو ریسورس (سرویس‌های وب را مهیا می‌کند)، اکشن پَک، اکتیو ساپورت و اکشن میلر بسته‌های استاندارد در ریلز هستند. قبل از نسخهٔ ۲، ریلز دارای بستهٔ دیگری به نام اکشن وب سرویس بود که در حال حاضر با اکتیو ریسورس جایگزین شده‌است. جدا از بسته‌های استاندارد ریلز، توسعه‌دهندگان می‌توانند پلاگین‌هایی برای گسترش بسته‌های ریلز بنویسند.

## قرارگیری در سرور
روبی آن ریلز را اغلب با مدیر بستهٔ RubyGems، که با زبان روبی ارائه می‌شود، می‌توان نصب کرد. در اکثر توزیع‌های گنو/لینوکس ریلز را به راحتی می‌توان نصب کرد، همچنین به وسیلهٔ سیستم مدیریت بسته هر توزیع، می‌توان وابستگی‌های  آن را نصب کرد.

## فلسفه و طراحی
روبی آن ریلز بر مفهوم قرارداد به‌جای تنظیمات و اصل توسعه سریع خودت را تکرار نکن تأکید بسیاری دارد.

«قرارداد به‌جای تنظیمات» یعنی توسعه‌دهندگان فقط نیاز دارند که قسمت‌های نامتعارف برنامهٔ خود را مشخص کنند. به عنوان مثال اگر کلاسی به نام Sale در مدل داشتیم، جدول متناظر آن در پایگاه‌داده‌ها به صورت پیش‌فرض sales نام دارد. اما شما می‌توانید از قراردادها استفاده نکنید، به عنوان مثال می‌توانید جدولی به نام "products sold" داشته باشید، اما توسعه‌دهندگان مجبورند که کدهای برنامهٔ خود را برای این جدول بنویسند. در حالت کلی قراردادها برای کمتر کد نوشتن و مدیریت برنامه است.

«خودت را تکرار نکن» یعنی تمام اطلاعات شما در یک‌جای مشخص قرار دارند. به عنوان مثال، با استفاده از ماژول اکتیو رکورد در ریلز، برنامه‌نویس دیگر نیازی به تعریف کردن نام‌های ستون‌های پایگاه‌داده در تعریف کلاس را ندارد. اما روبی آن ریلز می‌تواند با استفاده از نام کلاس، اطلاعات را از پایگاه‌داده استخراج کند.

## توسعه‌های اخیر
ریلز نسخهٔ ۲٫۳ در ۱۵ مارس، ۲۰۰۹ ارائه شد. تغییرات اساسی این نسخه شامل الگوها، موتور، Rack و فرم‌های مدل تودرتو بود.

در دسامبر، ۲۰۰۸ Merb یک چارچوب نرم‌افزاری تحت وب دیگر و ریلز اعلام کردند که با یکدیگر کار خواهند کرد. تیم ریلز اعلام کرد، ما با پروژهٔ Merb برای ایده گرفتن از این چارچوب در ریلز ۳ و همچنین برای پاپان دادن به تکرارهای بیخود در این دو گروه، کار خواهیم کرد.

## پانویس

## منابع
* 

## کتاب‌شناسی

* 
* 
* 
* 
* 
* 
* 

## پیوند به بیرون
* وب‌سایت رسمی
* کد منبع ریلز
* آموزش ریلز – مجموعه آموزش روبی آن ریلز و سری فیلم‌ها به شما آموزش می‌دهد که چگونه برنامه‌های روبی آن ریلز را توسعه و گسترش دهید
*راهنمای ریلز
* API ریلز

رده:کتابخانه‌های رایانه‌ای آزاد
رده:چارچوب‌های نرم‌افزاری تحت وب
رده:نرم‌افزارهای آزاد چندسکویی
رده:نرم‌افزارهای آزاد نوشته‌شده با روبی
رده:نرم‌افزارهای دارای اجازه‌نامه ام‌آی‌تی
رده:نرم‌افزارهای ۲۰۰۴ (میلادی)
رده:وب ۲٫۰
رده:معرفی‌شده‌های ۲۰۰۴ (میلادی)