Добавить в корзинуПозвонить
Найти в Дзене
Цифровая Переплавка

🌟 Brut — свежий взгляд на веб-разработку на Ruby без привычных абстракций

Если вы когда-либо создавали веб-приложения на Ruby, то знаете, как быстро простота Rails или Sinatra может перерасти в сложную архитектуру, избыточные слои абстракции и бесконечные дебаты о том, куда именно положить бизнес-логику или как назвать очередной контроллер. Встречайте Brut — новый веб-фреймворк для Ruby, который полностью переосмысливает привычные подходы, делая процесс разработки проще, приятнее и современнее. Привычные нам Ruby-фреймворки обычно строятся вокруг контроллеров, маршрутов, REST-ресурсов и множества абстракций, которые не всегда оправданы. В Brut всё иначе: Пример страницы, показывающей текущее время: class TimePage < AppPage
def initialize(clock:)
@clock = clock
end
def page_template
header do
h1 { "Добро пожаловать на страницу времени!" }
TimeTag(timestamp: @clock.now)
end
end
end Это кратко, понятно и не требует дополнительного объяснения. Несмотря на минималистичный подход, Brut предоставляет готовые решения «из коробки», ко
Оглавление
В центре браузерного окна сияет красный рубин, а к нему сходятся линии-ссылки на иконки базы данных, тестов, телеметрии и Docker — визуальная метафора Brut – нового минималистичного веб-фреймворка на Ruby, объединяющего всё нужное без лишних слоёв.
В центре браузерного окна сияет красный рубин, а к нему сходятся линии-ссылки на иконки базы данных, тестов, телеметрии и Docker — визуальная метафора Brut – нового минималистичного веб-фреймворка на Ruby, объединяющего всё нужное без лишних слоёв.

Если вы когда-либо создавали веб-приложения на Ruby, то знаете, как быстро простота Rails или Sinatra может перерасти в сложную архитектуру, избыточные слои абстракции и бесконечные дебаты о том, куда именно положить бизнес-логику или как назвать очередной контроллер. Встречайте Brut — новый веб-фреймворк для Ruby, который полностью переосмысливает привычные подходы, делая процесс разработки проще, приятнее и современнее.

🔥 Чем Brut отличается от привычных Rails или Sinatra?

Привычные нам Ruby-фреймворки обычно строятся вокруг контроллеров, маршрутов, REST-ресурсов и множества абстракций, которые не всегда оправданы. В Brut всё иначе:

  • 🚫 Нет контроллеров и REST: вместо этого вы пишете страницы (Page), формы (Form) и отдельные обработчики действий.
  • 🎨 Серверная генерация HTML: вместо шаблонов ERB или HAML используется удобная и быстрая генерация HTML-кода через Ruby-классы с помощью библиотеки Phlex.
  • ⚙️ Современный JS и CSS: вы можете использовать любой JavaScript и CSS без ограничений, Brut предоставляет встроенный инструмент esbuild для минимизации и сборки.

Пример страницы, показывающей текущее время:

class TimePage < AppPage
def initialize(clock:)
@clock = clock
end

def page_template
header do
h1 { "Добро пожаловать на страницу времени!" }
TimeTag(timestamp: @clock.now)
end
end
end

Это кратко, понятно и не требует дополнительного объяснения.

🚀 Чем ещё удобен Brut?

Несмотря на минималистичный подход, Brut предоставляет готовые решения «из коробки», которые существенно ускоряют и упрощают разработку:

  • 📊 Мониторинг через OpenTelemetry — получите встроенный мониторинг производительности приложения.
  • 🗃️ Работа с БД через Sequel — быстрый, понятный и производительный доступ к базам данных.
  • Автоматизированное тестирование с RSpec — тестируйте легко, используя уже знакомые инструменты.
  • 🌐 BrutJS — библиотека для работы с веб-компонентами, что позволяет легко расширять функционал страницы.
  • 🌎 Поддержка локализации и работы с часовыми поясами — меньше ошибок и головной боли при работе с международными пользователями.

Кроме того, Brut заботится о безопасности по умолчанию:

  • 🔐 Автоматическая установка политики безопасности контента (CSP).
  • 📌 Строгие правила работы с БД: поля не могут быть null по умолчанию, внешние ключи обязательно проиндексированы и корректны.
  • 🕒 Время всегда timezone-aware, избегая типичных проблем с часовыми поясами.

🛠️ Простота настройки и запуска

Brut максимально упрощает начало работы, предлагая запуск приложения через Docker-контейнер, без необходимости предварительной установки Ruby:

docker run \
-v "$PWD":"$PWD" \
-w "$PWD" \
-it \
thirdtank/mkbrut \
mkbrut my-new-app

cd my-new-app
dx/build && dx/start
dx/exec bin/setup
dx/exec bin/dev

Через минуту приложение будет доступно на локальном порту — легко и удобно.

🌟 Философия минимализма

Создатель Brut, Дэвид Брайант Коупленд, подчеркивает важность минимализма и отказ от ненужных абстракций:

  • Без YAML-конфигов: все конфигурации и локализация описываются в Ruby-коде, исключая YAML.
  • 📦 Четкая структура классов: никаких «магических» методов и динамических конструкций — всё прозрачно и понятно.
  • 🎯 Фокус на Ruby и браузерах: Brut максимально использует возможности современных браузеров и Ruby 3.4, избегая устаревших практик и технологий.
💬 «Я хочу получать удовольствие от веб-разработки. Хочу просто писать Ruby, HTML и использовать мощь современных браузеров. Мне не нужна бесконечная гибкость и споры о мелочах. Я просто хочу делать классные веб-приложения» — говорит Дэвид Брайант Коупленд.

🎩 Мнение автора статьи: почему Brut — это именно то, что нужно Ruby-сообществу?

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

Что особенно радует лично меня:

  • 🚀 Простота старта без установки и настройки Ruby-окружения.
  • 🎨 Возможность писать чистый Ruby-код и легко генерировать HTML через Phlex.
  • 🧩 Отсутствие бесконечных дебатов о том, где именно должна находиться бизнес-логика или как правильно назвать контроллер.

На мой взгляд, Brut действительно возвращает радость разработки веб-приложений и подходит как опытным, так и начинающим Ruby-разработчикам, которые устали от усложнения простых задач.

📝 Попробуйте сами!

Хотите попробовать Brut в действии? Полная документация и пример готового приложения доступны на официальном сайте и GitHub:

Если вы хотите писать Ruby-приложения быстро, эффективно и с удовольствием — Brut станет отличным выбором. Пора попробовать что-то новое и освежить подход к веб-разработке! 💎✨