روبی آن ریلز

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

روبی آن ریلز
نویسنده(های) اصلیدیوید هاینمیر هانسن
توسعه‌دهنده(ها)تیم اصلی ریلز
انتشار ابتدایی۱۳ دسامبر ۲۰۰۵ (۲۰۰۵-۱۲-13)[1]
انتشار پایدار
۵٫۲٫۲
۴ دسامبر ۲۰۱۸ (۲۰۱۸-۱۲-04)[2]
مخزن
نوشته‌شده باروبی
سیستم‌عاملچندسکویی
حجم۱۰٫۲ مگابایت[3]
گونهچارچوب نرم‌افزاری تحت وب
پروانهپروانه ام‌آی‌تی
وبگاه

پیشینه

تاریخچه نسخه‌ها
نسخهتاریخ انتشاریادداشت‌ها
نگارش قدیمی، دیگر پشتیبانی نمی‌شود: ۱٫۰[4]۰۲۰۰۵−۱۲−۱۳ ۱۳ دسامبر ۲۰۰۵
نگارش قدیمی، دیگر پشتیبانی نمی‌شود: ۱٫۲[5]۰۲۰۰۷−۰۱−۱۹ ۱۹ ژانویه ۲۰۰۷
نگارش قدیمی، دیگر پشتیبانی نمی‌شود: ۲٫۰[6]۰۲۰۰۷−۱۲−۰۷ ۷ دسامبر ۲۰۰۷
نگارش قدیمی، دیگر پشتیبانی نمی‌شود: ۲٫۱[7]۰۲۰۰۸−۰۶−۰۱ ۱ ژوئن ۲۰۰۸
نگارش قدیمی، دیگر پشتیبانی نمی‌شود: ۲٫۲[8]۰۲۰۰۸−۱۱−۲۱ ۲۱ نوامبر ۲۰۰۸
نگارش قدیمی، دیگر پشتیبانی نمی‌شود: ۲٫۳[9]۰۲۰۰۹−۰۳−۱۶ ۱۶ مارس ۲۰۰۹
نگارش قدیمی، دیگر پشتیبانی نمی‌شود: ۳٫۰[10]۰۲۰۱۰−۰۸−۲۹ ۲۹ اوت ۲۰۱۰
نگارش قدیمی، دیگر پشتیبانی نمی‌شود: ۳٫۱[11]۰۲۰۱۱−۰۸−۳۱ ۳۱ اوت ۲۰۱۱
نگارش قدیمی، دیگر پشتیبانی نمی‌شود: ۳٫۲[12]۰۲۰۱۲−۰۱−۲۰ ۲۰ ژانویه ۲۰۱۲
نگارش قدیمی، دیگر پشتیبانی نمی‌شود: ۴٫۰[13]۰۲۰۱۳−۰۶−۲۵ ۲۵ ژوئن ۲۰۱۳
نگارش قدیمی، دیگر پشتیبانی نمی‌شود: ۴٫۱[14]۰۲۰۱۴−۰۴−۰۸ ۸ آوریل ۲۰۱۴
نگارش قدیمی، دیگر پشتیبانی نمی‌شود: ۴٫۲[15]۰۲۰۱۴−۱۲−۱۹ ۱۹ دسامبر ۲۰۱۴
نگارش قدیمی‌تر، هنوز پشتیبانی می‌شود: ۵٫۰[16]۰۲۰۱۶−۰۶−۳۰ ۳۰ ژوئن ۲۰۱۶
نگارش قدیمی‌تر، هنوز پشتیبانی می‌شود: ۵٫۱[17]۰۲۰۱۷−۰۵−۱۰ ۱۰ مه ۲۰۱۷
نگارش پایدار جاری: ۵٫۲[18]۰۲۰۱۸−۰۴−۰۹ ۹ آوریل ۲۰۱۸
ایجاز:
نگارش قدیمی
نگارش قدیمی‌تر، هنوز پشتیبانی می‌شود
نگارش پایدار جاری
آخرین نگارش پیش‌نمایش
انتشار آتی

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

مرور کلی فنی

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

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

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

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

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

ساختار چهارچوب

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

قرارگیری در سرور

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

فلسفه و طراحی

روبی آن ریلز بر مفهوم قرارداد به‌جای تنظیمات[27] و اصل توسعه سریع خودت را تکرار نکن[28] تأکید بسیاری دارد.

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

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

توسعه‌های اخیر

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

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

پانویس

  1. David. "Rails 1.0: Party like it's one oh oh!". Ruby on Rails. Retrieved 2017-03-01.
  2. rafaelfranca. "Rails 5.2.2 has been released!". Ruby on Rails. Text "https://weblog.rubyonrails.org/2018/12/4/Rails-5-2-2-has-been-released/" ignored (help); Check date values in: |accessdate= (help); Missing or empty |url= (help); |access-date= requires |url= (help)
  3. "Release v5.2.2 · rails/rails · GitHub". Retrieved Dec 4, 2018.
  4. "Rails 1.0: Party like it's one oh oh!". 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". Riding Rails. Retrieved June 9, 2010.
  9. "Rails 2.3: Templates, Engines, Rack, Metal, much more!". Riding Rails. Retrieved June 9, 2010.
  10. "Rails 3.0: It's ready!". 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.
  15. "Rails 4.2: Active Job, Asynchronous Mails, Adequate Record, Web Console, Foreign Keys". Ruby on Rails. Retrieved 5 Dec 2015.
  16. "Rails 5.0: Action Cable, API mode, and so much more". Ruby on Rails. Retrieved 19 Nov 2016.
  17. "Rails 5.1: Loving JavaScript, System Tests, Encrypted Secrets, and more". Ruby on Rails. 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. 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

منابع

کتاب‌شناسی

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

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.