روبی آن ریلز (به انگلیسی: Ruby on Rails) یا به صورت ساده ریلز، یک چارچوب نرم‌افزاری تحت وب، آزاد و متن‌باز است که از زبان برنامه‌نویسی روبی استفاده می‌کند. هدف ریلز، ایجاد یک چارچوب نرم‌افزاری تحت وب، که از روش توسعه سریع برای برنامه‌نویسان وب استفاده می‌کند، است.

روبی آن ریلز
نویسنده(های)
اصلی
دیوید هاینمیر هانسن
توسعه‌دهنده(ها)تیم اصلی ریلز
انتشار اولیه۱۳ دسامبر ۲۰۰۵؛ ۱۸ سال پیش (۲۰۰۵-13}})[۱]
انتشار پایدار
۶٫۱٫۴ / ۲۴ ژوئن ۲۰۲۱؛ ۳ سال پیش (۲۰۲۱-24}})[۲]
مخزن
نوشته‌شده باروبی
سیستم‌عاملچندسکویی
حجم۱۰٫۲ مگابایت[۳]
نوعچارچوب نرم‌افزاری تحت وب
مجوزپروانه ام‌آی‌تی
وبگاه

پیشینه

ویرایش
تاریخچه نسخه‌ها
نسخه تاریخ انتشار نسخهٔ روبی سازگار
نگارش قدیمی، دیگر پشتیبانی نمی‌شود: ۱٫۰[۴] ۰۲۰۰۵−۱۲−۱۳ ۱۳ دسامبر ۲۰۰۵ ۱٫۸٬۶
نگارش قدیمی، دیگر پشتیبانی نمی‌شود: ۱٫۲[۵] ۰۲۰۰۷−۰۱−۱۹ ۱۹ ژانویه ۲۰۰۷ ۱٫۸٬۶
نگارش قدیمی، دیگر پشتیبانی نمی‌شود: ۲٫۰[۶] ۰۲۰۰۷−۱۲−۰۷ ۷ دسامبر ۲۰۰۷ ۱٫۸٬۶
نگارش قدیمی، دیگر پشتیبانی نمی‌شود: ۲٫۱[۷] ۰۲۰۰۸−۰۶−۰۱ ۱ ژوئن ۲۰۰۸ ۱٫۸٬۶
نگارش قدیمی، دیگر پشتیبانی نمی‌شود: ۲٫۲[۸] ۰۲۰۰۸−۱۱−۲۱ ۲۱ نوامبر ۲۰۰۸ پیشنهادی: ۱٫۸٬۷؛ ممکن: ۱٫۸٬۶
نگارش قدیمی، دیگر پشتیبانی نمی‌شود: ۲٫۳[۹] ۰۲۰۰۹−۰۳−۱۶ ۱۶ مارس ۲۰۰۹ پیشنهادی: ۱٫۸٫۷؛ ممکن: ۱٫۸٬۶ و ۱٫۹٫۱
نگارش قدیمی، دیگر پشتیبانی نمی‌شود: ۳٫۰[۱۰] ۰۲۰۱۰−۰۸−۲۹ ۲۹ اوت ۲۰۱۰ پیشنهادی: ۱٫۹٫۳؛ ممکن: ۱٫۸٫۷ و ۱٫۹٫۲
نگارش قدیمی، دیگر پشتیبانی نمی‌شود: ۳٫۱[۱۱] ۰۲۰۱۱−۰۸−۳۱ ۳۱ اوت ۲۰۱۱ پیشنهادی: ۱٫۹٫۳؛ ممکن: ۱٫۸٫۷ و ۱٫۹٫۲
نگارش قدیمی، دیگر پشتیبانی نمی‌شود: ۳٫۲[۱۲] ۰۲۰۱۲−۰۱−۲۰ ۲۰ ژانویه ۲۰۱۲ پیشنهادی: ۱٫۹٫۳؛ ممکن: ۱٫۸٫۷ و ۱٫۹٫۲
نگارش قدیمی، دیگر پشتیبانی نمی‌شود: ۴٫۰[۱۳] ۰۲۰۱۳−۰۶−۲۵ ۲۵ ژوئن ۲۰۱۳ ترجیحا ۲٫۰؛ نیازمند ۱٫۹٫۳ یا جدیدتر
نگارش قدیمی، دیگر پشتیبانی نمی‌شود: ۴٫۱[۱۴] ۰۲۰۱۴−۰۴−۰۸ ۸ آوریل ۲۰۱۴ ترجیحا ۲٫۰؛ نیازمند ۱٫۹٫۳ یا جدیدتر
نگارش قدیمی، دیگر پشتیبانی نمی‌شود: ۴٫۲[۱۵] ۰۲۰۱۴−۱۲−۱۹ ۱۹ دسامبر ۲۰۱۴ ترجیحا ۲٫۰؛ نیازمند ۱٫۹٫۳ یا جدیدتر
نگارش قدیمی‌تر، هنوز پشتیبانی می‌شود: ۵٫۰[۱۶] ۰۲۰۱۶−۰۶−۳۰ ۳۰ ژوئن ۲۰۱۶ ۲٫۲٫۲ یا جدیدتر
نگارش قدیمی‌تر، هنوز پشتیبانی می‌شود: ۵٫۱[۱۷] ۰۲۰۱۷−۰۵−۱۰ ۱۰ مه ۲۰۱۷ ۲٫۲٫۲ یا جدیدتر
نگارش پایدار جاری: ۵٫۲[۱۸] ۰۲۰۱۸−۰۴−۰۹ ۹ آوریل ۲۰۱۸ ۲٫۲٫۲ یا جدیدتر
ایجاز:
نگارش قدیمی
نگارش قدیمی‌تر، هنوز پشتیبانی می‌شود
نگارش پایدار جاری
آخرین نگارش پیش‌نمایش
انتشار آتی

روبی آن ریلز برگرفته از پروژهٔ بیس‌کمپ توسط دیوید هاینمیر هانسن بود که ابتدا یک ابزار مدیریت پروژه توسط شرکت 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 برای ایده گرفتن از این چارچوب در ریلز ۳ و همچنین برای پاپان دادن به تکرارهای بیخود در این دو گروه، کار خواهیم کرد.

پانویس

ویرایش
  1. 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.
  2. 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)
  3. "Release v5.2.2 · rails/rails · GitHub". Retrieved Dec 4, 2018.
  4. "Rails 1.0: Party like it's one oh oh!" بایگانی‌شده در ۱۷ دسامبر ۲۰۱۵ توسط Wayback Machine. Riding Rails. Retrieved June 9, 2010.
  5. "Rails 1.2: REST admiration, HTTP lovefest, and UTF-8 celebrations" بایگانی‌شده در ۲۰۱۲-۱۱-۰۲ توسط Wayback Machine. Riding Rails. Retrieved June 9, 2010.
  6. "Rails 2.0: It's done!". Riding Rails. Retrieved June 9, 2010.
  7. Rails 2.1: Time zones, dirty, caching, gem dependencies, caching, etc بایگانی‌شده در ۲۰۱۲-۱۱-۰۲ توسط Wayback Machine. Riding Rails. Retrieved June 9, 2010.
  8. "Rails 2.2: i18n, HTTP validators, thread safety, JRuby/1.9 compatibility, docs" بایگانی‌شده در ۲ دسامبر ۲۰۰۸ توسط Wayback Machine. Riding Rails. Retrieved June 9, 2010.
  9. "Rails 2.3: Templates, Engines, Rack, Metal, much more!" بایگانی‌شده در ۲۱ مارس ۲۰۰۹ توسط Wayback Machine. Riding Rails. Retrieved June 9, 2010.
  10. "Rails 3.0: It's ready!" بایگانی‌شده در ۳۱ اوت ۲۰۱۰ توسط Wayback Machine. Riding Rails. Retrieved August 30, 2010.
  11. "bumping to 3.1.0". Github.com.
  12. "Preparing for 3.2.0 release". Github.com.
  13. "Rails 4 in 30'". blog.wyeworks.com. Archived from the original on 4 December 2012. Retrieved 7 December 2018.
  14. "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.
  15. "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.
  16. "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.
  17. "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.
  18. 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.
  19. Commit Rights
  20. MVC
  21. ActiveRecord
  22. ActiveResource
  23. ActionPack
  24. ActiveSupport
  25. ActionMailer
  26. Action Web Service
  27. Convention over Configuration
  28. Don't Repeat Yourself
  29. unconventional
  30. Templates

منابع

ویرایش

کتاب‌شناسی

ویرایش

پیوند به بیرون

ویرایش