روبی آن ریلز

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به: ناوبری، جستجو
روبی آن ریلز
Ruby On Rails Logo.svg
توسعه‌دهنده نرم‌افزار دیوید هاینمیر هانسن
توسعه‌دهنده نرم‌افزار تیم اصلی ریلز
انتشار ابتدایی ۱۳ دسامبر ۲۰۰۵؛ ۱۱ سال پیش (۲۰۰۵-۱۲-13)[۱]
نسخهٔ پایدار
۵٫۱٫۱ / ۱۲ مه، ۲۰۱۷؛ ۵ ماه پیش (۲۰۱۷-۰۵-12)[۲]
نسخهٔ نمایشی
۵٫۱٫۰ آزمایشی۱ / ۲۳ فوریه، ۲۰۱۷؛ ۸ ماه پیش (۲۰۱۷-۰۲-23)[۳]
مخزن نسخه‌ها github.com/rails/rails
وضعیت توسعه فعال
نوشته ‌شده توسط روبی
سیستم‌عامل چندسکویی
گونه چارچوب نرم‌افزاری تحت وب
پروانه پروانه ام‌آی‌تی
وب‌گاه rubyonrails.org

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

پانویس[ویرایش]

  1. David. "Rails 1.0: Party like it's one oh oh!". Ruby on Rails. Retrieved 2017-03-01. 
  2. tenderlove. "Rails 5.0.3 and 5.1.1 have been released!". Ruby on Rails. Retrieved 2017-05-13. 
  3. dhh. "Rails 5.1.0.beta1: Loving JavaScript, System Tests, Encrypted Secrets, and more". Ruby on Rails. Retrieved 2017-03-01. 
  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". 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. 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. github.com
  12. github.com
  13. Commit Rights
  14. MVC
  15. ActiveRecord
  16. ActiveResource
  17. ActionPack
  18. ActiveSupport
  19. ActionMailer
  20. Action Web Service
  21. Convention over Configuration
  22. Don't Repeat Yourself
  23. unconventional
  24. Templates

منابع[ویرایش]

کتاب‌شناسی[ویرایش]

پیوند به بیرون[ویرایش]