Ruby on Rails
страница по умолчанию |
|
| Тип |
фреймворк для разработки веб приложений |
|---|---|
| Разработчик | |
| Написана на | |
| Интерфейс | |
| Операционная система | |
| Последняя версия |
3.2.13 (18 марта 2013) |
| Кандидат в релизы |
4.0.0.rc1 (29 апреля 2013) |
| Бета-версия |
4.1.0.beta (в активной разработке) |
| Состояние |
активное |
| Лицензия | |
| Сайт | |
Ruby on Rails — фреймворк, написанный на языке программирования Ruby. Ruby on Rails предоставляет архитектурный образец Model-View-Controller (модель-представление-контроллер) для веб-приложений, а также обеспечивает их интеграцию с веб-сервером и сервером базы данных.
Ruby on Rails является открытым программным обеспечением и распространяется под лицензией MIT.
Содержание |
История [править]
Ruby on Rails был создан Давидом Хейнемейером Ханссоном на основе его работы в компании 37signals над средством управления проектами Basecamp[1] и выпущен в июле 2004 года.
25 мая 2010 года выпущена версия 2.3.8.
23 декабря 2008 года команда проекта Merb объединилась с командой Rails с целью создания следующей версии Rails 3, которая объединит в себе лучшие черты обоих фреймворков.[2][3]
29 августа 2010 года вышел Rails 3.0.[4]
31 августа 2011 года вышел Rails 3.1.[5]
20 января 2012 года вышел Rails 3.2.[6]
Принципы [править]
Ruby on Rails определяет следующие принципы разработки приложений:
- Предоставляет механизмы повторного использования, позволяющие минимизировать дублирование кода в приложениях (принцип Don’t repeat yourself).
- По умолчанию используются соглашения по конфигурации, типичные для большинства приложений (принцип Convention over configuration). Явная спецификация конфигурации требуется только в нестандартных случаях.
Архитектура [править]
Основными компонентами приложений Ruby on Rails являются модель (model), представление (view) и контроллер (controller). Ruby on Rails использует REST-стиль построения веб-приложений.
Модель [править]
Модель предоставляет остальным компонентам приложения объектно-ориентированное отображение данных (таких как каталог продуктов или список заказов). Объекты модели могут осуществлять загрузку и сохранение данных в реляционной базе данных, а также реализуют бизнес-логику.
Для хранения объектов модели в реляционной СУБД по умолчанию в Rails 3 использована библиотека ActiveRecord. Конкурирующий аналог — DataMapper. Существуют плагины для работы с нереляционными базами данных, например Mongoid для работы с MongoDB.
Представление [править]
Представление создает пользовательский интерфейс с использованием полученных от контроллера данных. Представление также передает запросы пользователя на манипуляцию данными в контроллер (как правило, представление не изменяет непосредственно модель).
В Ruby on Rails представление описывается при помощи шаблонов ERB. Они представляют собой файлы HTML с дополнительными включениями фрагментов кода Ruby (Embedded Ruby или ERb). Вывод, сгенерированный встроенным кодом Ruby, включается в текст шаблона, после чего получившаяся страница HTML возвращается пользователю. Кроме ERB возможно использовать ещё около 20 шаблонизаторов, в том числе Haml.
Контроллер [править]
Контроллер в Rails — это набор логики, запускаемой после получения HTTP-запроса сервером. Контроллер отвечает за вызов методов модели и запускает формирование представления.
Соответствие интернет-адреса с контроллером задается в файле config/routes.rb
Контроллером в Ruby on Rails является класс, наследованный от ActionController::Base. Открытые методы контроллера являются так называемыми действиями (actions). Action часто соответствует отдельному представлению. Например, по запросу пользователя admin/list будет вызван метод list класса AdminController и затем использовано представление list.html.erb.
Интеграция [править]
Предпочтительным методом интеграции с веб-серверами является проксирование — использование веб-сервера в качестве прокси-сервера перед сервером приложения. Особняком стоят модули Phusion Passenger для интеграции с серверами Apache и nginx.
Ruby on Rails использует интерфейс RACK, что позволяет использовать менее распространённые механизмы (FCGI, CGI, SCGI). Ruby on Rails может работать с Apache, Lighttpd или любым другим веб-сервером, поддерживающим FastCGI. Для разработки и отладки часто используется веб-сервер WEBrick, встроенный в Ruby, или Mongrel.[7] В качестве сервера базы данных поддерживаются MySQL, Firebird, PostgreSQL, DB2, Oracle и Microsoft SQL Server. Также поддерживается встраиваемая база данных SQLite.
Для Windows существует дистрибутив Instant Rails c настроенной и готовой к работе сразу после установки рабочей средой для разработки Rails-приложений, которая включает в себя сервер Apache и СУБД MySQL. Для платформ Windows, Linux, Mac OS X имеется комплексный установщик BitNami RubyStack[8], включающий в себя все необходимое для разработки в среде Rails, включая Ruby, RubyGems, Ruby on Rails, MySQL, Apache, Mongrel и Subversion.
Помимо этого сайты BitNami.org и JumpBox.com[9] бесплатно предлагают образы VMware с готовой Linux-средой для развертывания RoR-приложений. Эти образы можно подключить к своему серверу виртуальных машин или развернуть в предлагаемой облачной среде.
Для разработки AJAX-приложений в RoR по умолчанию используется javascript-фреймворк jQuery, однако вместо него можно использовать и другие библиотеки. В ранних версиях Ruby on Rails (до 3.1), js-фреймворком по умолчанию был Prototype.
Гемы [править]
Вокруг Rails сложилась большая экосистема плагинов — подключаемых «гемов» (англ. gem), некоторые из них со временем были включены в базовую поставку Rails, например Sass и CoffeeScript, другие же, хотя и не были включены в базовую поставку, являются фактическим стандартом для большинства разработчиков, например, средство модульного тестирования Rspec.
Начиная с 3-й версии Rails наблюдается тенденция вынесения части функционала в отдельные «гемы», отчасти из-за их более быстрого развития, чем сам Rails, отчасти для облегчения фреймворка.
Количество разработчиков, сделавших хотя бы одну модификацию в код Rails на начало 2013 года составило 2782 человека.
Некоторые гемы: Devise (для аутентификации), CanCan (для авторизации), Kaminari (для нумерации страниц), Inherited Resources (для упрощения создания контроллеров с стандартным CRUD-кодом), FFaker (для случайной генерации тестовых наборов данных в веб-приложениях), friendly_id (позволяет создавать человеко-понятные веб-адреса), Active Admin (для создания панелей администрирования), CommunityEngine[10] (для создания социальных сетей).
Средства разработки и тестирования [править]
Для создания приложений на Ruby on Rails используются различные текстовые редакторы и IDE, в том числе:
- Aptana Studio
- CodeGear 3rdRail
- JetBrains RubyMine
- Ruby in Steel (для Visual Studio) — версия 1.2 включает возможность визуального drag-and-drop-проектирования графического интерфейса, транслируя .erb-код в HTML и обратно.
- Flux 1.2 для пользователей Mac OS имеет поддержку Rails.
- Textmate
- NetBeans
- Emacs
- Vim
- Sublime Text
Среди инструментов тестирования приложений, поддерживающих Ruby on Rails:
- RSpec — DSL для написания юнит- и интеграционных тестов;
- Cucumber — инструмент для разработки с помощью BDD, позволяет писать тесты на обычном языке.
Использование [править]
Ruby on Rails существенно использовался при создании таких популярных сайтов, как Твиттер, Diaspora, Look At Me, Groupon, Basecamp, GitHub, Hulu, Scribd, Shopify, Yellowpages.com, Danbooru.
Примечания [править]
- ↑ Project management software, online collaboration: Basecamp
- ↑ Riding Rails: Merb gets merged into Rails 3!
- ↑ Rails and Merb Merge « Katz Got Your Tongue?
- ↑ Rails 3.0: It’s ready!
- ↑ Rails 3.1.0 has been released!
- ↑ Rails 3.2.0 has been released!
- ↑ fauna’s mongrel at master — GitHub
- ↑ BitNami :: RubyStack
- ↑ JumpBox for Ruby on Rails Deployment | JumpBox Virtual Appliances and Applications for Cloud Computing
- ↑ Community Engine // A Social Networking Plugin for Ruby on Rails
Литература [править]
- Тейт Б., Хиббс К. Ruby on Rails. Быстрая веб-разработка. — СПб.: BHV-Петербург, 2008. — 224 с.
- Хэнссон Д. Х., Томас Д. Гибкая разработка веб-приложений в среде Rails. — СПб.: Питер, 2008. — 720 с.
- Фоулер Ч. Rails. Сборник рецептов. — СПб.: Питер, 2007. — 256 с.
- Фернандес О. Путь Rails. Подробное руководство по созданию приложений в среде Ruby on Rails. — Символ-Плюс, 2008. — 768 с.
- Руби С., Томас Д., Хэнссон Д. Х. Гибкая разработка веб-приложений в среде Rails. — 4-е изд. — Питер, 2012. — 464 с.
Ссылки [править]
- Официальный сайт (англ.)
- Перевод официальной документации // rusrails.ru
- github.com — rails — Официальный репозиторий
- Руководства (англ.)
- Пересекая границы: В чём секрет Ruby on Rails?
| Ruby (категория) | |
|---|---|
| IDE |
ActiveState Komodo • Eric • RubyForge • RadRails • RubyMine |
| Реализации | |
| Приложения | |
| Библиотеки и фреймворки | |
| Серверное ПО | |
| Прочее | |