Разработка на Ruby on Rails в Екатеринбурге

Ruby on Rails ценят за темп: соглашения фреймворка снимают десятки мелких решений, и первая рабочая версия продукта появляется рано. Берём новые проекты и действующие приложения на Rails, а если вашей задаче лучше подойдёт другой стек, скажем об этом до сметы.

  • Прототип на ваших данных — на раннем этапе
  • Соглашения фреймворка вместо самодеятельности
  • Выкладка на ваш сервер без посредников
  • Тесты на ключевые сценарии

Рассчитать стоимость

Изучим задачу и пришлём план работ с ценой.

Когда Rails к месту, а когда нет

Фреймворк хорош там, где продукт меняется каждую неделю и идеи нужно проверять быстро. Но это заказная разработка: она дороже готовой CMS, а сопровождать её должен человек, который знает Ruby.

Rails уместен

  • Стартап или новый продукт, который часто меняется
  • Внутренний сервис: учёт, заявки, согласования
  • Уже есть приложение на Ruby, его нужно развивать
  • В команде есть Ruby-разработчики

Выгоднее другое

  • Визитка, лендинг, сайт компании — CMS или конструктор
  • Типовой магазин с обменом с 1С — Битрикс
  • Сопровождать будут PHP- или Python-разработчики
  • Много аналитики и моделей ИИ — стек на Python

Кейсы

Добыча наших клиентов

  • Архитектурное бюро — реставрация, проектирование, обследование

    Создание и SEO-продвижение сайта архитектурного бюро

    Создание и SEO-продвижение сайта архитектурного бюро, которое занимается реставрацией, проектированием и обследованием. На макете — версии сайта для компьютера и для телефона.

    Смотреть кейс
  • Завод железобетонных изделий

    Создание сайта завода железобетонных изделий

    Сайт завода железобетонных изделий, который комплексно снабжает ЖБИ строительные объекты: каталог продукции, доставка, блок лучших предложений и новинок.

    Смотреть кейс
  • Компания по установке вентиляции и кондиционирования в бассейнах

    Создание сайта компании по установке вентиляции и кондиционирования в бассейнах

    Сайт компании, которая комплексно устанавливает системы вентиляции и кондиционирования в бассейнах. На первом экране — квиз: посетитель отвечает на несколько вопросов и узнаёт предварительную стоимость проекта.

    Смотреть кейс
  • Услуги мастера на час по ремонту · Москва и Московская область

    Создание сайта сервиса «Мастер на час»

    Сайт сервиса «Мастер на час» с услугами по ремонту в Москве и Московской области: услуги, цены, фото работ, частые вопросы и вызов мастера. На макете — версии для компьютера и телефона.

    Смотреть кейс

Rails, Django или Laravel

Три зрелых фреймворка с открытым кодом решают похожие задачи. Отличаются язык, набор встроенных средств и то, кого вы найдёте на сопровождение.

Что сравниваемLaravelDjangoRuby on Rails
Язык и лицензияPHP, MITPython, BSDRuby, MIT
АдминкаОтдельно: Filament или платная NovaВстроена, собирается по моделямОтдельным гемом, например Active Admin
Интерфейс без SPAШаблоны Blade или LivewireШаблоны DjangoHotwire: Turbo и Stimulus по умолчанию с Rails 7
Вакансии на hh.ruСопоставимо с DjangoСопоставимо с LaravelЗаметно меньше, чем с Django и Laravel
Когда выбиратьPHP-инфраструктура, много интеграцийДанные, аналитика, нейросетиБыстрые итерации продукта, действующее приложение на Rails

Источник: Вакансии — поиск hh.ru по всей России

Что Rails решает за команду

Всё, что нужно веб-приложению, внутри фреймворка уже договорено. Мы пользуемся этими договорённостями, а не спорим с ними.

  • Прототип на генераторах

    Одна команда scaffold создаёт для сущности модель, миграцию, контроллер, страницы, маршруты и тесты. На таком каркасе быстро показываем рабочие экраны, а потом переделываем их под ваш интерфейс.

  • Интерфейс на Hotwire

    Turbo и Stimulus обновляют части страницы без перезагрузки, поэтому кабинету часто не нужен отдельный фронтенд на React. Меньше кода — меньше людей на сопровождении.

  • Очереди и кэш без Redis

    С Rails 8 фоновые задачи, кэш и веб-сокеты по умолчанию работают на базе данных: Solid Queue, Solid Cache, Solid Cable. Для небольшого сервиса это на один компонент инфраструктуры меньше.

  • Выкладка на свой сервер

    Kamal 2 разворачивает приложение на любом Linux-сервере, в том числе у российского облачного провайдера. Платформа-посредник не нужна, сервер оформляем на вас.

  • Панель для сотрудников

    Встроенной админки, как в Django, в Rails нет. Ставим Active Admin с открытым кодом или собираем свои экраны на Hotwire — зависит от того, сколько в панели логики.

  • Секреты и вход

    Пароли и ключи сервисов хранятся в зашифрованном файле credentials. Вход пользователей строим на генераторе аутентификации, который появился в Rails 8.

На чём спотыкаются Rails-проекты

Фреймворк позволяет двигаться быстро, и так же быстро копится то, что потом мешает развитию.

  • 01

    Скаффолд ушёл в работу как есть

    Сгенерированные страницы выводят все поля подряд и не проверяют права. Для прототипа это нормально, для рабочей версии — неудобный интерфейс и дыра в доступе.

  • 02

    Спор с соглашениями

    Код разложен «по-своему», вопреки принятой структуре. Новый человек в команде неделями ищет, где что лежит, и главное преимущество фреймворка теряется.

  • 03

    Стек выбран по привычке одного человека

    Проект начали на Rails, потому что так удобно первому разработчику. Он ушёл, а замену ищут долго: рынок Rails в России заметно меньше, чем у Django и Laravel.

  • 04

    Логика спрятана в колбэках моделей

    Письма, пересчёты и обмен с внешними системами запускаются из before_save и after_commit. Сохранили запись импортом — и клиентам неожиданно ушли письма. Такие действия выносим в отдельные объекты и фоновые задачи.

  • 05

    Ключ от секретов в репозитории

    master.key закоммитили вместе с кодом. Любой, у кого есть доступ к репозиторию, читает пароли от базы и платёжных сервисов. Ключ передаём владельцу отдельно.

Путь от прототипа до выкладки

На Rails рабочий каркас можно показать рано, поэтому первый показ стоит в начале плана, а не в конце. Сроки — ориентиры, итерации фиксируем в договоре.

  1. 1–2 недели

    Продукт и главный сценарий

    Определяем сущности, роли и главный путь пользователя — то, без чего продукт не имеет смысла. Остальное откладываем в список следующих итераций.

    Итог этапаМодель данных и список экранов

  2. 1–2 недели

    Каркас и API

    Собираем главный сценарий генераторами на реальной базе и, если нужно, API для мобильного приложения. Показываем на тестовом сервере и собираем замечания.

    Итог этапаРаботающий каркас продукта

  3. от 1 месяца

    Итерации с тестами

    Переписываем экраны каркаса под ваш интерфейс на Hotwire, добавляем роли, интеграции и тесты. Выпуск — после каждой итерации.

    Итог этапаФункции в рабочей версии

  4. 2–4 дня

    Выкладка через Kamal

    Разворачиваем приложение на вашем сервере, настраиваем резервные копии базы, журнал ошибок и оповещения о сбоях.

    Итог этапаПриложение в работе

  5. 2–3 дня

    Передача продукта

    Разбираем с вашим разработчиком структуру приложения и порядок выкладки, передаём доступы.

    Итог этапаДокументация и доступы

Стоимость разработки на Ruby on Rails в Екатеринбурге

Цену определяют число экранов и ролей, интеграции и то, начинаем ли с нуля или принимаем готовое приложение: чужой код сначала смотрим и оцениваем. Сервер и сопровождение — отдельной строкой.

  • Сайт с кабинетом и интеграциями

    Публичные страницы и кабинет клиента на фреймворке, обмен с вашими системами. Ориентир — 2–4 месяца

    от 350 000 ₽

    • Модель данных и роли пользователей
    • Личный кабинет клиента или партнёра
    • Интеграции с 1С, CRM или оплатой
    • Панель управления для сотрудников
  • Веб-сервис под ваш процесс

    Система со своей логикой, расчётами и API, которую развивают итерациями. Ориентир — от 4 месяцев

    от 600 000 ₽

    • Разбор процессов и техзадание
    • API для приложений и партнёров
    • Фоновые задачи и мониторинг
    • Автотесты и документация для передачи
  • Сервер или облако — на ваш аккаунт
  • Разбор действующего кода — до сметы
  • Базовая SEO-настройка — в каждом пакете

Не подошёл тариф — предложите свою цену

Назовите бюджет — предложим состав работ или запуск по этапам.

Что получаете вместе с Rails-приложением

Чтобы продукт пережил смену команды, передаём не только код, но и то, что обычно держат в голове.

  • РепозиторийКод, миграции и история изменений на вашем аккаунте
  • Gemfile.lockТочные версии Ruby, фреймворка и гемов для одинаковой сборки
  • Ключ от секретовmaster.key — отдельно от репозитория, только владельцу
  • Конфигурация выкладкиDockerfile и настройки Kamal: как поднять приложение на новом сервере
  • ТестыПроверки моделей и ключевых сценариев, запуск одной командой
  • Список отступлений от соглашенийГде и почему приложение устроено не так, как принято во фреймворке

FAQ

Вопросы о приложениях на Rails

Не нашли ответ?

Почему Rails, а не Django или Laravel?

Если у вас уже есть приложение на Rails или Ruby-команда, ответ очевиден. Для нового продукта он выигрывает темпом первых версий. Сравниваем варианты до сметы и записываем выбор в техзадание.

Легко ли найти Rails-разработчика?

Сложнее, чем Python- или PHP-разработчика: вакансий с Ruby on Rails на hh.ru заметно меньше, чем с Django или Laravel, а значит, и людей с опытом на этом стеке, как правило, тоже. Поэтому код, тесты и документацию готовим так, чтобы приложение мог принять новый человек.

Возьмёте приложение на Rails, которое писали другие?

Да, после просмотра кода: смотрим версии фреймворка и Ruby, тесты, гемы без поддержки и то, как устроена выкладка. По итогам предлагаем план — от точечных правок до обновления версий.

Можно ли разместить приложение в российском облаке?

Да. Rails 8 выкладывается через Kamal на любой Linux-сервер, поэтому подойдёт VPS или облако любого провайдера. Сервер оформляем на вас.

Как часто нужно обновлять Rails?

Каждая серия получает исправления ошибок год, а исправления безопасности — два года с первого выпуска. На практике это обновление примерно раз в год, и его стоит заложить в сопровождение.

Подойдёт ли Rails для сайта компании?

Технически да, экономически обычно нет. Сайт с услугами и новостями дешевле сделать на CMS, и обслуживать его сможет любой подрядчик. Фреймворк оправдан, когда за страницами стоит продукт со своей логикой.

Содержание
  1. Откуда берётся скорость
  2. Где Rails выбирают
  3. Rails без лишней инфраструктуры
  4. Как не остаться без разработчика

Rails выбирают ради одного — скорости, с которой меняется продукт. На нём работают GitHub, Shopify, Airbnb, Zendesk и другие сервисы — их перечисляет официальный сайт фреймворка. Код открыт под лицензией MIT, но разработка на Ruby on Rails всё равно заказная: дороже старта на готовой CMS, а после запуска нужен Ruby-разработчик.

Откуда берётся скорость

Один из ключевых принципов Rails — соглашения вместо настройки. Где лежат модели, как называются таблицы, как устроены маршруты и тесты, решено заранее, и команда не тратит на это обсуждения. Генераторы создают каркас сущности одной командой, а в самом фреймворке уже есть почта, фоновые задачи, веб-сокеты, хранение файлов и защита от типовых атак. Первые экраны можно показать на ранних этапах и собрать отзывы пользователей, пока менять ещё дёшево.

У скорости есть условие: соглашения нужно соблюдать. Приложение, где каждый раскладывал код по-своему, теряет это преимущество и становится обычным заказным проектом, только на более редком языке.

Где Rails выбирают

Чаще всего — в продуктовых командах: стартапы, внутренние сервисы, платформы с подпиской, маркетплейсы. Там важнее быстро выпускать новые функции, чем экономить на каждом сервере. Rails в России используют заметно реже: вакансий с ним на hh.ru меньше, чем с Django или Laravel. Если приложения ещё нет и Ruby-разработчиков в штате тоже, компании в Екатеринбурге стоит сравнить варианты до старта.

Rails без лишней инфраструктуры

Восьмая версия сделала выкладку проще. Kamal 2 разворачивает приложение на обычном Linux-сервере, а очереди, кэш и веб-сокеты по умолчанию работают на той же базе данных. Для небольшой команды это один сервер у выбранного провайдера вместо связки из приложения, Redis и отдельной платформы для выкладки. Когда нагрузка вырастет, очереди и кэш можно перенести на отдельную базу или сервер.

Как не остаться без разработчика

Главный риск здесь не в технологии, а в людях. Поэтому с первого дня держим приложение в рамках соглашений, пишем тесты на ключевые сценарии и ведём список мест, где пришлось от соглашений отступить. Обновляем фреймворк раз в год, пока разрыв между версиями небольшой. Тогда новому разработчику будет проще войти в проект, кто бы им ни стал.

Проверить, подходит ли Rails вашему продукту, проще всего на небольшом каркасе с реальными данными: он покажет и темп работы, и то, как фреймворк ложится на вашу предметную область.

Первый шаг

Обсудим приложение на Rails

Расскажите о продукте и о том, что уже написано, — оценим, продолжать ли на том же стеке, и предложим план первой версии или развития.

Что написать в заявке, чтобы план был точнее:

  • Новый продукт или действующее приложение
  • Версии Ruby и Rails, если код уже есть
  • Кто будет сопровождать проект после запуска

Офис в Екатеринбурге: адрес уточняется · контакты

Перезвоним в рабочее время и ответим на вопросы.

Расскажем, как сделали этот проект, и прикинем план для вашего бизнеса.