• English
  • Русский
  • Українська
 

Разработка на Ruby on Rails

Разработка на Ruby on Rails

Ruby on Rails (RoR) — фреймворк, написанный на языке программирования Ruby, реализует архитектурный шаблон Model-View-Controller для веб-приложений, а также обеспечивает их интеграцию с веб-сервером и сервером баз данных. Является открытым программным обеспечением и распространяется под лицензией MIT.

Создан Давидом Хейнемейером Ханссоном на основе его работы в компании 37signals над средством управления проектами Basecamp и выпущен в июле 2004 года. 23 декабря 2008 года команда проекта Merb объединилась с командой Rails с целью создания следующей версии Rails 3, которая объединит в себе лучшие черты обоих фреймворков.

Базируется на следующих принципах разработки приложений:

максимальное использование механизмов повторного использования, позволяющих минимизировать дублирование кода в приложениях (принцип 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 для классических приложений и ActionController::API для API[4]. Открытые методы контроллера являются так называемыми действиями (англ. actions). Действия часто соответствует отдельному представлению. Например, по запросу пользователя admin/index будет вызван метод index класса AdminController и затем использовано представление index.html.erb из каталога views/admin.

Этапы сотрудничества

У вас есть идея
У вас есть идея
Если у вас есть идея по созданию бизнеса в интернете, приходите к нам. Наши менеджеры внимательно выслушают и поймут, что и как нужно делать для достижения цели
Предлагаем варианты реализации
Предлагаем варианты реализации
На основании вашей идеи и нашего опыта, мы предлагаем вам возможные варианты реализации вашего проекта
Подбираем разработчиков
Подбираем разработчиков
После утверждения варианта проекта, мы подбираем всех необходимых разработчиков для его реализации
Создаем поэтапный проект реализации
Создаем поэтапный проект реализации
Создаём поэтапный план реализации вашего проекта. Планируем время, распределяем роли участников проекта. Чаще всего используется система управления проектами Redmine
Разрабатываем
Разрабатываем
После утверждения плана реализации проекта, наши разработчики приступают к его реализации
Управляем процессом разработки
Управляем процессом разработки
Ваш проектный менеджер руководит реализацией вашего проекта на каждом его этапе. Контролирует время выполнения задач, качество, управляет рисками, отчитывается вам
Тестируем
Тестируем
На каждом этапе реализации тестируем ваш проект на работоспособность со стороны пользователей и администраторов
Отдаём на проверку
Отдаём на проверку
После того как наши тестеры выполнили финального тестирование вашего проекта, мы передаём проект вам
Поддерживаем
Поддерживаем
После завершения проекта мы остаемся на связи, всегда поможем улучшить ваш проект, доработать и поддержать его