روبی آن ریلز
از ویکیپدیا، دانشنامهٔ آزاد
| روبی آن ریلز | |
| شرکت سازنده | تیم هسته ریلز |
| آخرین نسخه پایدار | ۲.۳.۵ (۲۷ نوامبر ۲۰۰۹) |
| آخرین نسخه آزمایشی | ۳.۰.۰ (۰۴ فوریه ۲۰۱۰) |
| زبانهای برنامهنویسی | روبی |
| سیستم عامل | چندسکویی |
| وضعیت توسعه | فعال |
| گونه | چارچوب نرمافزارهای کاربردی تحت وب |
| پروانه | مجوز امآیتی |
| وبگاه | rubyonrails.org |
روبی آن ریلز که گاهی اوقات به آن ریلز یا RoR نیز میگویند، یک چارچوب نرمافزاری تحت وب، آزاد و متنباز است که از زبان برنامهنویسی روبی استفاده میکند. هدف ریلز، ایجاد یک چارچوب نرمافزاری تحت وب، که از روش توسعه سریع برای برنامهنویسان وب استفاده میکند، است.
فهرست مندرجات |
[ویرایش] تاریخچه
روبی آن ریلز برگرفته از پروژهٔ بیسکمپ توسط دیوید هاینمیر هانسن بود که ابتدا یک ابزار مدیریت پروژه توسط شرکت 37signals (که حالا تبدیل به یک شرکت تولید نرمافزارهای وب شده است) بود. در جولای سال ۲۰۰۴، هاینمیر هانسن ریلز را به عنوان یک نرمافزار آزاد و متنباز منتشر کرد اما تا فوریه سال ۲۰۰۵ حقوق انتشار (به انگلیسی: Commit Rights) آن را به اشتراک نگذاشت. در سال ۲۰۰۶، این چارچوب به مرحلهای رسید که شرکت اپل اعلام کرد که در سال ۲۰۰۷ روبی آن ریلز به عنوان یک چارچوب پیشفرض در سیستمعامل مک اواس نسخهٔ ۱۰.۵ قرار خواهد گرفت.
[ویرایش] مرور کلی فنی
مانند دیگر چارچوبهای وب، ریلز هم از معماری مدل-نما-کنترلگر (MVC) برای سازماندهی برنامهنویسی نرمافزار، استفاده میکند.
روبی آن ریلز شامل ابزاری است که کارهای تکراری و مشترک توسعهٔ نرمافزار را بسیار ساده میکند، ابزاری مانند scaffolding، تعدادی از مدلها و نماها را به صورت خودکار که برای هر وبسایت نیاز است را میسازد. همچنین شامل یک وب سرور ساده (WEBRick) و یک ابزار ساخت سیستم (Rake) است. ریلز و این ابزار، با یکدیگر یک محیط توسعهٔ پایهای را فراهم میکنند.
برنامههای روبی آن ریلز برای اجرا شدن نیاز به یک وب سرور دارند. در هنگام نوشتن این مطلب Mongrel، بر WEBRick ترجیح داده میشود اما شما میتوانید از وب سرورهای دیگری مانند Lighttpd, Abyss, آپاچی و خیلی دیگر از وب سرورها استفاده کنید. از سال ۲۰۰۸ به بعد، وب سرور پسنجر (به انگلیسی: Passenger) از لحاظ استفاده شدن جای وب سرور Mongrel را گرفت. به تازگی، وب سرور Unicorn محبوبیت خوبی برای انتشار (به انگلیسی: Deployment) پیدا کرده است.
یکی از ویژگیهای باارزش ریلز استفاده از کتابخانههای بزرگ جاوااسکریپت Prototype و script.aculo.us برای آژاکس (برنامهنویسی) است. در ابتدا ریلز از پروتکل دسترسی آسان به اشیاء برای دسترسی به خدمات وب استفاده میکرد، اما بعد آن جایگزین خدمات وب RESTful شد.
از نسخه ۲.۰، روبی آن ریلز به صورت پیشفرض خروجیهای HTML و XML را ارائه میدهد. دومی ابزاری برای خدمات وب RESTful است.
[ویرایش] ساختار چارچوب
روبی آن ریلز در چندین بسته ارائه میشود، اکتیو رکورد (به انگلیسی: ActiveRecord) معروف ( یک ORM برای دسترسی به پایگاه داده)، اکتیو ریسورس (به انگلیسی: ActiveResource) (سرویسهای وب را مهیا میکند)، اکشن پَک (به انگلیسی: ActionPack)، اکتیو ساپورت (به انگلیسی: ActiveSupport) و اکشن میلر (به انگلیسی: ActionMailer) بستههای استاندارد در ریلز هستند. قبل از نسخهٔ ۲، ریلز دارای بستهٔ دیگری به نام اکشن وب سرویس (به انگلیسی: Action Web Service) بود که در حال حاضر با اکتیو ریسورس جایگزین شده است. جدا از بستههای استاندارد ریلز، توسعهدهندگان میتوانند پلاگینهایی برای گسترش بستههای ریلز بنویسند.
[ویرایش] فلسفه و طراحی
روبی آن ریلز بر مفهوم قرارداد بهجای تنظیمات (به انگلیسی: Convention over Configuration) و اصل توسعه سریع خودت را تکرار نکن (به انگلیسی: Don't Repeat Yourself) تاکید بسیاری دارد.
"قرارداد بهجای تنظیمات" یعنی توسعهدهندگان فقط نیاز دارند که قسمتهای نامتعارف (به انگلیسی: unconventional) برنامهٔ خود را مشخص کنند. به عنوان مثال اگر کلاسی به نام Sale در مدل داشتیم، جدول متناظر آن در پایگاهدادهها به صورت پیشفرض sales نام دارد. اما شما میتوانید از قراردادها استفاده نکنید، به عنوان مثال میتوانید جدولی به نام "products sold" داشته باشید، اما توسعهدهندگان مجبورند که کدهای برنامهٔ خود را برای این جدول بنویسند. در حالت کلی قراردادها برای کمتر کد نوشتن و مدیریت برنامه است.
"خودت را تکرار نکن" یعنی تمام اطلاعات شما در یکجای مشخص قرار دارند. به عنوان مثال، با استفاده از ماژول اکتیو رکورد در ریلز، برنامهنویس دیگر نیازی به تعریف کردن نامهای ستونهای پایگاهداده در تعریف کلاس را ندارد. اما روبی آن ریلز میتواند با استفاده از نام کلاس، اطلاعات را از پایگاهداده استخراج کند.
[ویرایش] نصب
روبی آن ریلز را اغلب با مدیر بستهٔ RubyGems، که با زبان روبی ارائه میشود، میتوان نصب کرد. در اکثر توزیعهای گنو/لینوکس ریلز را به راحتی میتوان نصب کرد، همچنین به وسیلهٔ سیستم مدیریت بسته هر توزیع، میتوان وابستگیهای (به انگلیسی: Dependencies) آن را نصب کرد.
[ویرایش] توسعههای اخیر
ریلز نسخهٔ ۲.۳ در ۱۵ مارس، ۲۰۰۹ ارائه شد. تغییرات اساسی این نسخه شامل الگوها (به انگلیسی: Templates)، موتور، Rack و فرمهای مدل تودرتو بود.
در دسامبر، ۲۰۰۸ Merb یک چارچوب نرمافزاری تحت وب دیگر و ریلز اعلام کردند که با یکدیگر کار خواهند کرد. تیم ریلز اعلام کرد، ما با پروژهٔ Merb برای ایده گرفتن از این چارچوب در ریلز ۳ و همچنین برای پاپان دادن به تکرارهای بیخود در این دو گروه، کار خواهیم کرد.
[ویرایش] محصولات ریلز
وبسایت های معروفی از چارچوب ریلز استفاده کردهاند، از جمله:
- بیسکمپ
- CrunchBase
- Github
- Assembla
- Hulu
- Penny Arcade
- Scribd
- Spiceworks
- توییتر
- Urban Dictionary
- Whitepages.com
- Yellowpages.com