روبی آن ریلز
روبی آن ریلز (به انگلیسی: Ruby on Rails) یا به صورت ساده ریلز، یک چارچوب نرمافزاری تحت وب، آزاد و متنباز است که از زبان برنامهنویسی روبی استفاده میکند. هدف ریلز، ایجاد یک چارچوب نرمافزاری تحت وب، که از روش توسعه سریع برای برنامهنویسان وب استفاده میکند، است.
نویسنده(های) اصلی | دیوید هاینمیر هانسن |
---|---|
توسعهدهنده(ها) | تیم اصلی ریلز |
انتشار اولیه | ۱۳ دسامبر ۲۰۰۵[۱] |
انتشار پایدار | ۶٫۱٫۴
/ ۲۴ ژوئن ۲۰۲۱[۲] |
مخزن | |
نوشتهشده با | روبی |
سیستمعامل | چندسکویی |
حجم | ۱۰٫۲ مگابایت[۳] |
نوع | چارچوب نرمافزاری تحت وب |
مجوز | پروانه امآیتی |
وبگاه |
پیشینه
ویرایشنسخه | تاریخ انتشار | نسخهٔ روبی سازگار |
---|---|---|
[۴] | ۱٫۰۱۳ دسامبر ۲۰۰۵ | ۱٫۸٬۶ |
[۵] | ۱٫۲۱۹ ژانویه ۲۰۰۷ | ۱٫۸٬۶ |
[۶] | ۲٫۰۷ دسامبر ۲۰۰۷ | ۱٫۸٬۶ |
[۷] | ۲٫۱۱ ژوئن ۲۰۰۸ | ۱٫۸٬۶ |
[۸] | ۲٫۲۲۱ نوامبر ۲۰۰۸ | پیشنهادی: ۱٫۸٬۷؛ ممکن: ۱٫۸٬۶ |
[۹] | ۲٫۳۱۶ مارس ۲۰۰۹ | پیشنهادی: ۱٫۸٫۷؛ ممکن: ۱٫۸٬۶ و ۱٫۹٫۱ |
[۱۰] | ۳٫۰۲۹ اوت ۲۰۱۰ | پیشنهادی: ۱٫۹٫۳؛ ممکن: ۱٫۸٫۷ و ۱٫۹٫۲ |
[۱۱] | ۳٫۱۳۱ اوت ۲۰۱۱ | پیشنهادی: ۱٫۹٫۳؛ ممکن: ۱٫۸٫۷ و ۱٫۹٫۲ |
[۱۲] | ۳٫۲۲۰ ژانویه ۲۰۱۲ | پیشنهادی: ۱٫۹٫۳؛ ممکن: ۱٫۸٫۷ و ۱٫۹٫۲ |
[۱۳] | ۴٫۰۲۵ ژوئن ۲۰۱۳ | ترجیحا ۲٫۰؛ نیازمند ۱٫۹٫۳ یا جدیدتر |
[۱۴] | ۴٫۱۸ آوریل ۲۰۱۴ | ترجیحا ۲٫۰؛ نیازمند ۱٫۹٫۳ یا جدیدتر |
[۱۵] | ۴٫۲۱۹ دسامبر ۲۰۱۴ | ترجیحا ۲٫۰؛ نیازمند ۱٫۹٫۳ یا جدیدتر |
[۱۶] | ۵٫۰۳۰ ژوئن ۲۰۱۶ | ۲٫۲٫۲ یا جدیدتر |
[۱۷] | ۵٫۱۱۰ مه ۲۰۱۷ | ۲٫۲٫۲ یا جدیدتر |
[۱۸] | ۵٫۲۹ آوریل ۲۰۱۸ | ۲٫۲٫۲ یا جدیدتر |
نگارش قدیمی نگارش قدیمیتر، هنوز پشتیبانی میشود نگارش پایدار جاری آخرین نگارش پیشنمایش |
روبی آن ریلز برگرفته از پروژهٔ بیسکمپ توسط دیوید هاینمیر هانسن بود که ابتدا یک ابزار مدیریت پروژه توسط شرکت 37signals (که حالا تبدیل به یک شرکت تولید نرمافزارهای وب شدهاست) بود. در ژوئیه سال ۲۰۰۴، هاینمیر هانسن ریلز را به عنوان یک نرمافزار آزاد و متنباز منتشر کرد اما تا فوریه سال ۲۰۰۵ حقوق انتشار[۱۹] آن را به اشتراک نگذاشت. در سال ۲۰۰۶، این چارچوب به مرحلهای رسید که شرکت اپل اعلام کرد که در سال ۲۰۰۷ روبی آن ریلز به عنوان یک چارچوب پیشفرض در سیستمعامل مک اواس نسخهٔ ۱۰٫۵ قرار خواهد گرفت.
مرور کلی فنی
ویرایشمانند دیگر چارچوبهای وب، ریلز هم از معماری مدل-نما-کنترلگر[۲۰] برای سازماندهی برنامهنویسی نرمافزار، استفاده میکند.
روبی آن ریلز شامل ابزاری است که کارهای تکراری و مشترک توسعهٔ نرمافزار را بسیار ساده میکند، ابزاری مانند داربست، تعدادی از مدلها و نماها را به صورت خودکار که برای هر وبسایت نیاز است را میسازد. همچنین شامل یک وب سرور ساده (WEBRick) و یک ابزار ساخت سیستم (Rake) است. ریلز و این ابزار، با یکدیگر یک محیط توسعهٔ پایهای را فراهم میکنند.
برنامههای روبی آن ریلز برای اجرا شدن نیاز به یک وب سرور دارند. در هنگام نوشتن این مطلب Mongrel، بر WEBRick ترجیح داده میشود اما شما میتوانید از وب سرورهای دیگری مانند لایتی، Abyss, آپاچی و خیلی دیگر از وب سرورها استفاده کنید. از سال ۲۰۰۸ به بعد، وب سرور پسنجر (به انگلیسی: Passenger) از لحاظ استفاده شدن جای وب سرور Mongrel را گرفت. به تازگی، وب سرور Unicorn محبوبیت خوبی برای انتشار (به انگلیسی: Deployment) پیدا کردهاست.
یکی از ویژگیهای باارزش ریلز استفاده از کتابخانههای بزرگ جاوااسکریپت Prototype و script.aculo.us برای آژاکس است. در ابتدا ریلز از پروتکل دسترسی آسان به اشیاء برای دسترسی به خدمات وب استفاده میکرد، اما بعد آن جایگزین خدمات وب RESTful شد.
از نسخه ۲٫۰، روبی آن ریلز به صورت پیشفرض خروجیهای HTML و XML را ارائه میدهد. دومی، ابزاری برای خدمات وب RESTful است.
ساختار چهارچوب
ویرایشروبی آن ریلز در چندین بسته ارائه میشود، اکتیو رکورد[۲۱] معروف (یک ORM برای دسترسی به پایگاه داده)، اکتیو ریسورس[۲۲] (سرویسهای وب را مهیا میکند)، اکشن پَک،[۲۳] اکتیو ساپورت[۲۴] و اکشن میلر[۲۵] بستههای استاندارد در ریلز هستند. قبل از نسخهٔ ۲، ریلز دارای بستهٔ دیگری به نام اکشن وب سرویس[۲۶] بود که در حال حاضر با اکتیو ریسورس جایگزین شدهاست. جدا از بستههای استاندارد ریلز، توسعهدهندگان میتوانند پلاگینهایی برای گسترش بستههای ریلز بنویسند.
قرارگیری در سرور
ویرایشروبی آن ریلز را اغلب با مدیر بستهٔ RubyGems، که با زبان روبی ارائه میشود، میتوان نصب کرد. در اکثر توزیعهای گنو/لینوکس ریلز را به راحتی میتوان نصب کرد، همچنین به وسیلهٔ سیستم مدیریت بسته هر توزیع، میتوان وابستگیهای (به انگلیسی: Dependencies) آن را نصب کرد.
این بخش مقاله نیازمند گسترش است. |
فلسفه و طراحی
ویرایشروبی آن ریلز بر مفهوم قرارداد بهجای تنظیمات[۲۷] و اصل توسعه سریع خودت را تکرار نکن[۲۸] تأکید بسیاری دارد.
«قرارداد بهجای تنظیمات» یعنی توسعهدهندگان فقط نیاز دارند که قسمتهای نامتعارف[۲۹] برنامهٔ خود را مشخص کنند. به عنوان مثال اگر کلاسی به نام Sale در مدل داشتیم، جدول متناظر آن در پایگاهدادهها به صورت پیشفرض sales نام دارد. اما شما میتوانید از قراردادها استفاده نکنید، به عنوان مثال میتوانید جدولی به نام "products sold" داشته باشید، اما توسعهدهندگان مجبورند که کدهای برنامهٔ خود را برای این جدول بنویسند. در حالت کلی قراردادها برای کمتر کد نوشتن و مدیریت برنامه است.
«خودت را تکرار نکن» یعنی تمام اطلاعات شما در یکجای مشخص قرار دارند. به عنوان مثال، با استفاده از ماژول اکتیو رکورد در ریلز، برنامهنویس دیگر نیازی به تعریف کردن نامهای ستونهای پایگاهداده در تعریف کلاس را ندارد. اما روبی آن ریلز میتواند با استفاده از نام کلاس، اطلاعات را از پایگاهداده استخراج کند.
توسعههای اخیر
ویرایشریلز نسخهٔ ۲٫۳ در ۱۵ مارس، ۲۰۰۹ ارائه شد. تغییرات اساسی این نسخه شامل الگوها،[۳۰] موتور، Rack و فرمهای مدل تودرتو بود.
در دسامبر، ۲۰۰۸ Merb یک چارچوب نرمافزاری تحت وب دیگر و ریلز اعلام کردند که با یکدیگر کار خواهند کرد. تیم ریلز اعلام کرد، ما با پروژهٔ Merb برای ایده گرفتن از این چارچوب در ریلز ۳ و همچنین برای پاپان دادن به تکرارهای بیخود در این دو گروه، کار خواهیم کرد.
پانویس
ویرایش- ↑ David. "Rails 1.0: Party like it's one oh oh!". Ruby on Rails. Archived from the original on 17 December 2015. Retrieved 2017-03-01.
- ↑ rafaelfranca. "Rails 6.1.4 has been released!". Ruby on Rails.
{{cite web}}
:|access-date=
requires|url=
(help); Check date values in:|accessdate=
(help); Missing or empty|url=
(help); Text "https://weblog.rubyonrails.org/2021/6/24/Rails-6-1-4-has-been-released/" ignored (help) - ↑ "Release v5.2.2 · rails/rails · GitHub". Retrieved Dec 4, 2018.
- ↑ "Rails 1.0: Party like it's one oh oh!" بایگانیشده در ۱۷ دسامبر ۲۰۱۵ توسط Wayback Machine. Riding Rails. Retrieved June 9, 2010.
- ↑ "Rails 1.2: REST admiration, HTTP lovefest, and UTF-8 celebrations" بایگانیشده در ۲۰۱۲-۱۱-۰۲ توسط Wayback Machine. Riding Rails. Retrieved June 9, 2010.
- ↑ "Rails 2.0: It's done!". Riding Rails. Retrieved June 9, 2010.
- ↑ Rails 2.1: Time zones, dirty, caching, gem dependencies, caching, etc بایگانیشده در ۲۰۱۲-۱۱-۰۲ توسط Wayback Machine. Riding Rails. Retrieved June 9, 2010.
- ↑ "Rails 2.2: i18n, HTTP validators, thread safety, JRuby/1.9 compatibility, docs" بایگانیشده در ۲ دسامبر ۲۰۰۸ توسط Wayback Machine. Riding Rails. Retrieved June 9, 2010.
- ↑ "Rails 2.3: Templates, Engines, Rack, Metal, much more!" بایگانیشده در ۲۱ مارس ۲۰۰۹ توسط Wayback Machine. Riding Rails. Retrieved June 9, 2010.
- ↑ "Rails 3.0: It's ready!" بایگانیشده در ۳۱ اوت ۲۰۱۰ توسط Wayback Machine. Riding Rails. Retrieved August 30, 2010.
- ↑ "bumping to 3.1.0". Github.com.
- ↑ "Preparing for 3.2.0 release". Github.com.
- ↑ "Rails 4 in 30'". blog.wyeworks.com. Archived from the original on 4 December 2012. Retrieved 7 December 2018.
- ↑ "Rails 4.1.0: Spring, Variants, Enums, Mailer previews, secrets.yml". weblog.rubyonrails.org. Archived from the original on 8 December 2015. Retrieved 7 December 2018.
- ↑ "Rails 4.2: Active Job, Asynchronous Mails, Adequate Record, Web Console, Foreign Keys". Ruby on Rails. Archived from the original on 9 December 2015. Retrieved 5 Dec 2015.
- ↑ "Rails 5.0: Action Cable, API mode, and so much more". Ruby on Rails. Archived from the original on 30 June 2016. Retrieved 19 Nov 2016.
- ↑ "Rails 5.1: Loving JavaScript, System Tests, Encrypted Secrets, and more". Ruby on Rails. Archived from the original on 27 April 2017. Retrieved 10 May 2017.
- ↑ dhh. "Rails 5.2.0 FINAL: Active Storage, Redis Cache Store, HTTP/2 Early Hints, CSP, Credentials". Ruby on Rails. Archived from the original on 9 April 2018. Retrieved 2018-04-10.
- ↑ Commit Rights
- ↑ MVC
- ↑ ActiveRecord
- ↑ ActiveResource
- ↑ ActionPack
- ↑ ActiveSupport
- ↑ ActionMailer
- ↑ Action Web Service
- ↑ Convention over Configuration
- ↑ Don't Repeat Yourself
- ↑ unconventional
- ↑ Templates
منابع
ویرایش- مشارکتکنندگان ویکیپدیا. «Ruby on Rails». در دانشنامهٔ ویکیپدیای انگلیسی، بازبینیشده در ۲۶ مارس، ۲۰۱۰.
کتابشناسی
ویرایش- Ruby, Sam; Thomas, Dave; Hansson, David (March 28, 2009). "Agile Web Development with Rails" (Third ed.). Pragmatic Bookshelf: 850. ISBN 1-934356-16-6. Archived from the original on 9 March 2011. Retrieved 19 May 2012.
{{cite journal}}
: Cite journal requires|journal=
(help) - Laurent, Simon St.; Dumbill, Edd (November 28, 2008). "Learning Rails" (First ed.). O'Reilly Media: 442. ISBN 0-596-51877-3.
{{cite journal}}
: Cite journal requires|journal=
(help) - Lenz, Patrick (May 1, 2008). "Simply Rails 2" (Second ed.). SitePoint: 450. ISBN 0-9804552-0-0.
{{cite journal}}
: Cite journal requires|journal=
(help) - Tate, Bruce; Hibbs, Curt (August 22, 2006). "Ruby on Rails: Up and Running" (First ed.). O'Reilly Media: 182. ISBN 0-596-10132-5.
{{cite journal}}
: Cite journal requires|journal=
(help) - Holzner Ph.D., Steve (November 29, 2006). "Beginning Ruby on Rails" (First ed.). Wrox: 380. ISBN 0-470-06915-5. Archived from the original on 23 April 2012. Retrieved 19 May 2012.
{{cite journal}}
: Cite journal requires|journal=
(help) - Allan Hardy, Jeffrey; Carneiro Jr, Cloves; Catlin, Hampton (July 20, 2007). "Beginning Ruby on Rails E-Commerce: From Novice to Professional" (First ed.). Wrox: 361. ISBN 1-59059-686-2. Archived from the original on 17 September 2010. Retrieved 19 May 2012.
{{cite journal}}
: Cite journal requires|journal=
(help) - Clark, Mike (May 15, 2008). "Advanced Rails Recipes" (First ed.). Pragmatic Bookshelf: 464. ISBN 0-9787392-2-1. Archived from the original on 19 August 2010. Retrieved 19 May 2012.
{{cite journal}}
: Cite journal requires|journal=
(help)
پیوند به بیرون
ویرایش- وبسایت رسمی
- کد منبع ریلز
- آموزش ریلز – مجموعه آموزش روبی آن ریلز و سری فیلمها به شما آموزش میدهد که چگونه برنامههای روبی آن ریلز را توسعه و گسترش دهید
- راهنمای ریلز
- API ریلز