..

Flutter + Ruby / Rails

Читать в Telegram

Немного дополнительной информации про мой стек.

О том, что использую для разработки приложений (теперь уже и не только мобильных) рассказывал тут и тут.

Но в работе (и личных проектах тоже) часто требуется бэкенд и дополнительная инфраструктура (скрипты, например). Тут на сцену и выходит Ruby / Ruby on Rails.

Ruby

Начал писать на нем в 2018-2019 году на первой работе. Требовалось написать небольшую CLI-программу для проверки структуры проекта, версионирования нативных плагинов да и кучи мелких нюансов по нашим внутренним проектам.

Изначально думали делать это все на Дарте, чтобы не менять язык программирования, но оказалось, что парсить .podspec-файлы на iOS и работать с Gradle просто так нельзя. Для первого можно было использовать Руби (подсы написаны на нем), а вот для второго ничего нормального не нашлось (мы не мигрировали с Groovy так как Kotlin DSL тогда вроде только начали завозить в Грейдл, и насколько нам это было нужно (даже не на нативе), было не понятно).

В итоге взяли Руби, так как возиться с iOS не хотелось, а для Грейдла все равно пришлось бы что-то городить, и обошлись небольшим плагином, который отдает информацию в JSON’е, и Руби его потом парсит и обрабатывает как нам нужно.

Сам язык довольно специфичный, и синтаксис после Java/Kotlin/Dart заставляет пройти хотя бы базис по разработке на нем, но это в итоге того стоит. Как минимум, нам удалось сделать решение, которое уже пару лет концептуально не меняется и работает для внутренних проектов на моей первой работе.

Ruby on Rails

Руби известен большенству благодаря Рельсам. Это чуть ли не самый популярный Full-Stack-фреймворк для разработки вэб-приложений. Позволяет писать как бэкенд, так и фронтенд.

Я пишу на Rails только бэкенд, без фронтовой части (так тоже можно). Это просто API для личных и немного коммерческих проектов, связь приложений и сервера с базой данных.

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

Писать бэкенд становится проще, когда ты знаешь, что ожидает от него приложение. Изначально казалось, что я буду плавать не только в Рельсах, но и в написании бэка впринципе. Но оказалось, что это гораздо проще, чем кажется на первых взгляд - простенький CRUD получается за несколько часов, и это с учетом всех возможных состояний и ошибок.

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