Ruby on Rails: различия между версиями
[отпатрулированная версия] | [непроверенная версия] |
Bezik (обсуждение | вклад) Отклонены последние 3 изменения (212.98.163.34, 37.17.114.170 и Bezik) |
Метки: добавление ссылки через визуальный редактор |
||
Строка 109: | Строка 109: | ||
== Использование == |
== Использование == |
||
<!-- Примечание: пожалуйста, не используйте этот раздел для рекламы своего сайта --> |
<!-- Примечание: пожалуйста, не используйте этот раздел для рекламы своего сайта --> |
||
Ruby on Rails существенно использовался при создании таких популярных сайтов, как [[Твиттер]], [[Diaspora (социальная сеть)|Diaspora]], [[Look At Me]], [[Groupon]], [[Basecamp]], [[GitHub]], [[Hulu]], [[Scribd]], [[Shopify]], [[Yellowpages.com]], [[Имиджборд#Danbooru|Danbooru]]. |
Ruby on Rails существенно использовался при создании таких популярных сайтов, как [[Твиттер]], [[Diaspora (социальная сеть)|Diaspora]], [[Look At Me]], [[Groupon]], [[Basecamp]], [[GitHub]], [[Hulu]], [[Scribd]], [[Shopify]], [[Yellowpages.com]], [[Имиджборд#Danbooru|Danbooru]], [http://Pulscen.ru Pulscen.ru] |
||
== Примечания == |
== Примечания == |
Версия от 15:47, 7 октября 2014
Ruby on Rails | |
---|---|
| |
Тип | фреймворк для разработки веб приложений |
Автор | Давид Хейнемейер Ханссон |
Разработчик | Rails Core Team |
Написана на | Ruby |
Интерфейс | веб-интерфейс |
Операционная система | кроссплатформенное программное обеспечение |
Первый выпуск | 13 декабря 2005 |
Последняя версия | 4.1.5 (18 августа 2014) |
Репозиторий | github.com/rails/rails |
Состояние | активное |
Лицензия | Лицензия MIT |
Сайт | rubyonrails.org |
Медиафайлы на Викискладе |
Ruby on Rails — фреймворк, написанный на языке программирования Ruby. Ruby on Rails предоставляет архитектурный образец Model-View-Controller (модель-представление-контроллер) для веб-приложений, а также обеспечивает их интеграцию с веб-сервером и сервером базы данных.
Ruby on Rails является открытым программным обеспечением и распространяется под лицензией MIT.
История
Ruby on Rails был создан Давидом Хейнемейером Ханссоном на основе его работы в компании 37signals над средством управления проектами Basecamp[1] и выпущен в июле 2004 года.
23 декабря 2008 года команда проекта Merb объединилась с командой Rails с целью создания следующей версии Rails 3, которая объединит в себе лучшие черты обоих фреймворков.[2][3]
25 мая 2010 года выпущена версия 2.3.8
29 августа 2010 года вышел Rails 3.0
25 июня 2013 года выпущена версия 4.0
Принципы
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.[4] В качестве сервера базы данных поддерживаются MySQL, Firebird, PostgreSQL, DB2, Oracle и Microsoft SQL Server. Также поддерживается встраиваемая база данных SQLite.
Для Windows существует дистрибутив Instant Rails c настроенной и готовой к работе сразу после установки рабочей средой для разработки Rails-приложений, которая включает в себя сервер Apache и СУБД MySQL. Для платформ Windows, Linux, Mac OS X имеется комплексный установщик BitNami RubyStack[5], включающий в себя все необходимое для разработки в среде Rails, включая Ruby, RubyGems, Ruby on Rails, MySQL, Apache, Mongrel и Subversion.
Помимо этого сайты BitNami.org и JumpBox.com[6] бесплатно предлагают образы 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[7] (для создания социальных сетей).
Средства разработки и тестирования
Для создания приложений на Ruby on Rails используются различные текстовые редакторы и IDE, в том числе:
- Aptana Studio
- CodeGear 3rdRail
- JetBrains RubyMine
- Ruby in Steel (для Visual Studio) — версия 1.2 включает возможность визуального WYSIWYG-проектирования графического интерфейса, транслируя .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, Pulscen.ru
Примечания
- ↑ Project management software, online collaboration // Basecamp
- ↑ Riding Rails: Merb gets merged into Rails 3!
- ↑ Rails and Merb Merge " Katz Got Your Tongue?
- ↑ 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?