Как украсть лучшие практики в Rails и как избавить Rails от ruby-based фронтенда (Часть 3)
Сегодня в новых Rails проектах мы имеем смешение стилей и подходов.
Самое плохое, что строгой позиции Rails team нет.
Мы вообще-то тут в Rails толкаем No Build,- говорит DHH.
Однако, закрыть глаза на популярность Tailwind не получается. Давайте придумаем как его внедрить в Rails без использования привычных FE сборщиков.
И вообще у нас тут import maps встроенные в браузер.
Правда без обвязки ruby кодом c этой штукой пользоваться невыносимо. Но это DHH-way! Надо толкать в массы!
Правда рельсовый import maps тянет за собой новый способ установки зависимостей, о котором обычный фронтендщик со стороны ничего не знает.
А профессиональных рельсовых фронтендщиков, которые могут развивать системы длительно, в экосистеме процентов 5.
А еще надо понять и принять существование Propshaft.
Ой вей!
Что за зоопарк? А оно точно надо?
Сегодня в новых Rails проектах мы имеем смешение стилей и подходов.
Самое плохое, что строгой позиции Rails team нет.
Мы вообще-то тут в Rails толкаем No Build,- говорит DHH.
Однако, закрыть глаза на популярность Tailwind не получается. Давайте придумаем как его внедрить в Rails без использования привычных FE сборщиков.
И вообще у нас тут import maps встроенные в браузер.
Правда без обвязки ruby кодом c этой штукой пользоваться невыносимо. Но это DHH-way! Надо толкать в массы!
Правда рельсовый import maps тянет за собой новый способ установки зависимостей, о котором обычный фронтендщик со стороны ничего не знает.
А профессиональных рельсовых фронтендщиков, которые могут развивать системы длительно, в экосистеме процентов 5.
А еще надо понять и принять существование Propshaft.
Ой вей!
Что за зоопарк? А оно точно надо?
👍4
Как украсть лучшие практики в Rails и как избавить Rails от ruby-based фронтенда (Часть 4)
А можем ли мы иметь полностью идентичную систему, которую реализует Rails, но с использованием только 1 инструмента?
Чтобы фронтендщики были полностью погружены в свои привычные инструменты, могли легко ставить и использовать все что им нужно, иметь эффективную сборку и хеши для ассетов любых типов?
То, что это можно — это бесспорно. Vite или Webpack может это организовать.
Нужно понять сложность. А она не такая большая.
Допустим, у нас есть файл assets/images/logo.jpg который лежит в каталоге app/assets/images/logo.jpg
1️⃣ Чтобы он был доступен в среде разработки нам нужно всего лишь одну rails или vite миддлвару (я бы предпочел vite), которая будет перехватывать имя файла и отдавать его из фактического каталога нашего проекта.
2️⃣ в production среде ассеты компилируются (в том числе добавляется hash) и их оригинальное имя assets/images/logo.jpg сохраняется в manifest, и в нем разрешается в условное assets/images/logo-akdh86d.jpg
На стороне ruby/rails делается простой хелпер, который читает манифест и находит фактический файл.
Что одно, что другое — дело 3-4 javascript или ruby функции. Понимая идею — это может сделать любой новичок.
И эти 3-4 функции адаптируются к любому сборщику, любой версии в любой момент.
Если бы DHH не цеплялся за ruby код — он бы мог не тратить силы на написание своего сборщика, а сделать все тоже самое на JS примерно за 1 рабочий день.
А можем ли мы иметь полностью идентичную систему, которую реализует Rails, но с использованием только 1 инструмента?
Чтобы фронтендщики были полностью погружены в свои привычные инструменты, могли легко ставить и использовать все что им нужно, иметь эффективную сборку и хеши для ассетов любых типов?
То, что это можно — это бесспорно. Vite или Webpack может это организовать.
Нужно понять сложность. А она не такая большая.
Допустим, у нас есть файл assets/images/logo.jpg который лежит в каталоге app/assets/images/logo.jpg
1️⃣ Чтобы он был доступен в среде разработки нам нужно всего лишь одну rails или vite миддлвару (я бы предпочел vite), которая будет перехватывать имя файла и отдавать его из фактического каталога нашего проекта.
2️⃣ в production среде ассеты компилируются (в том числе добавляется hash) и их оригинальное имя assets/images/logo.jpg сохраняется в manifest, и в нем разрешается в условное assets/images/logo-akdh86d.jpg
На стороне ruby/rails делается простой хелпер, который читает манифест и находит фактический файл.
Что одно, что другое — дело 3-4 javascript или ruby функции. Понимая идею — это может сделать любой новичок.
И эти 3-4 функции адаптируются к любому сборщику, любой версии в любой момент.
Если бы DHH не цеплялся за ruby код — он бы мог не тратить силы на написание своего сборщика, а сделать все тоже самое на JS примерно за 1 рабочий день.
👍2
Как украсть лучшие практики в Rails и как избавить Rails от ruby-based фронтенда (Часть 5)
К чему этот выпад в сторону Rails фронтенда? Что, самый умный?
Ну, во-первых — то, что делает DHH и команда, это не божественное решение высеченое в граните.
В нем, как и во всем есть свои компромиссы и личные установки, которые далеко не всегда идеальны в современных реалиях. И часто идут вразрез текущему положению дел, в угоду личным соображениям.
Я даю вам пищу для размышлений. Инструменты нужно выбирать под себя и свой проект.
А если вы достаточно информированы и понимаете основную идею, то часто можно решить задачу таким способом, который будет супер удобен и эффективен именно вам;
Что ж ты сам не сделал идеальный Rails фронтенд?
А кто сказал, что не сделал? Другое дело, что заменить разношерстный набор инструментов одним — это дело требующее некоторых усилий, и как правило хорошо оплачивается заказчиками, тк это сильно сокращает время на поддержку и развитие. И далеко не всегда коммерческие решения следует выкладывать в опен сорс.
Как минимум вы теперь знаете, что кто-то это делает и это отлично работает.
У меня все.
Ваша критика и соображения приветствуются.
К чему этот выпад в сторону Rails фронтенда? Что, самый умный?
Ну, во-первых — то, что делает DHH и команда, это не божественное решение высеченое в граните.
В нем, как и во всем есть свои компромиссы и личные установки, которые далеко не всегда идеальны в современных реалиях. И часто идут вразрез текущему положению дел, в угоду личным соображениям.
Я даю вам пищу для размышлений. Инструменты нужно выбирать под себя и свой проект.
А если вы достаточно информированы и понимаете основную идею, то часто можно решить задачу таким способом, который будет супер удобен и эффективен именно вам;
Что ж ты сам не сделал идеальный Rails фронтенд?
А кто сказал, что не сделал? Другое дело, что заменить разношерстный набор инструментов одним — это дело требующее некоторых усилий, и как правило хорошо оплачивается заказчиками, тк это сильно сокращает время на поддержку и развитие. И далеко не всегда коммерческие решения следует выкладывать в опен сорс.
Как минимум вы теперь знаете, что кто-то это делает и это отлично работает.
У меня все.
Ваша критика и соображения приветствуются.
🔥3
Золотой век уже AI инструментов прошел?
Я уже писал, что создание более менее рабочего и поддерживаемого кода — это движение малыми шагами и держа все под контролем.
Было очень круто работать в таком стиле 3-4 месяца назад.
Быстрый запрос — мгновенный ответ. Получаешь нужные улучшения и переключаешься на что-то другое.
Как птичка собираешь пушинки и соломинки и строишь свое гнездо.
Теперь по умолчанию в Клоде включен режим думающего агента.
Ты ему даешь запрос — он что-то там думает. Как истинный коуч выдает тебе изнанку размышлений и план реализации (чтобы провалидировать понимание и согласовать действия с клиентом) — потом зависает — потом не торопясь делает правки — потом зависает и ждет одобрения на выполнение действий — а потом еще и сам себя корректирует.
Цикл обратной связи увеличился с 3 секунд до минуты.
Ручной режим и возврат к старой версии ситуацию не решает. Кажется модель стала специально работать дольше. Может хотят новый более дорогой тариф ввести?
Все это, как минимум, раздражает.
Я уже писал, что создание более менее рабочего и поддерживаемого кода — это движение малыми шагами и держа все под контролем.
Было очень круто работать в таком стиле 3-4 месяца назад.
Быстрый запрос — мгновенный ответ. Получаешь нужные улучшения и переключаешься на что-то другое.
Как птичка собираешь пушинки и соломинки и строишь свое гнездо.
Теперь по умолчанию в Клоде включен режим думающего агента.
Ты ему даешь запрос — он что-то там думает. Как истинный коуч выдает тебе изнанку размышлений и план реализации (чтобы провалидировать понимание и согласовать действия с клиентом) — потом зависает — потом не торопясь делает правки — потом зависает и ждет одобрения на выполнение действий — а потом еще и сам себя корректирует.
Цикл обратной связи увеличился с 3 секунд до минуты.
Ручной режим и возврат к старой версии ситуацию не решает. Кажется модель стала специально работать дольше. Может хотят новый более дорогой тариф ввести?
Все это, как минимум, раздражает.
👍3
Ruby on Rails. Chapter 1. (Сентябрь 2025)
По итогам недавней серии видео по Rails на моем канале, назрела необходимость сделать закрытый коммерческий блок лекций, чтобы это поддерживало мои open source и открытые инициативы.
Иначе без финансовой поддержки любая инициатива просто умирает.
Я не хочу, не могу и не планирую делать курсы.
Я 100% времени работаю с клиентам и решаю реальные технические и организационные задачи бизнеса.
При этом собрать реальную боевую практику, подготовить материалы и сделать закрытый лекторий по технологиям и процессу реальной работы я могу.
Никакого инфобиза — только реальная работа.
Никаких обещаний быстрого успеха — только боевые знания и навыки и только монотонный упорный труд.
Это будет за деньги, но первым партнерам будет особое предложение.
Первую часть лектория буду готовить к концу сентября. Пройти простой опросник и присоединиться можно тут:
👉 https://forms.gle/pfSiiM9HfpuArVk1A
По итогам недавней серии видео по Rails на моем канале, назрела необходимость сделать закрытый коммерческий блок лекций, чтобы это поддерживало мои open source и открытые инициативы.
Иначе без финансовой поддержки любая инициатива просто умирает.
Я не хочу, не могу и не планирую делать курсы.
Я 100% времени работаю с клиентам и решаю реальные технические и организационные задачи бизнеса.
При этом собрать реальную боевую практику, подготовить материалы и сделать закрытый лекторий по технологиям и процессу реальной работы я могу.
Никакого инфобиза — только реальная работа.
Никаких обещаний быстрого успеха — только боевые знания и навыки и только монотонный упорный труд.
Это будет за деньги, но первым партнерам будет особое предложение.
Первую часть лектория буду готовить к концу сентября. Пройти простой опросник и присоединиться можно тут:
👉 https://forms.gle/pfSiiM9HfpuArVk1A
👍5🔥5
Лекциям по rails быть!
1️⃣ Я удивлен количеством откликов, которые поступили за первые сутки. Спасибо!
Ваши ответы и идеи лягут в основу.
2️⃣ Я не скрываю, что я часто критикую и ставлю под сомнение некоторые подходы Rails.
Я вижу в этом особую ценность для слушателей. Я не буду вам вешать лапшу о том, что Rails way это единственно правильный выбор и только DHH знает как надо. Я буду показывать Rails c разных сторон.
Но что если я не прав? Что если меня заносит не туда? ....
3️⃣ Я обратился к самому злому Rails разработчику из тех, кого я знаю и попросил быть ревьюером моих лекций по Rails. И я получил согласие.
Все что я буду готовить для слушателей будет проходить жестокое ревью. Для меня это вызов.
Лекции Rails 2025. Chapter 1. Я планирую подготовить ко второй половине сентября.
Оставить мнение о том, что в него должно войти можно по ссылке.
Вас это ни к чему не обязывает, можно просто поделиться своими мыслями:
👉 https://forms.gle/pfSiiM9HfpuArVk1A
1️⃣ Я удивлен количеством откликов, которые поступили за первые сутки. Спасибо!
Ваши ответы и идеи лягут в основу.
2️⃣ Я не скрываю, что я часто критикую и ставлю под сомнение некоторые подходы Rails.
Я вижу в этом особую ценность для слушателей. Я не буду вам вешать лапшу о том, что Rails way это единственно правильный выбор и только DHH знает как надо. Я буду показывать Rails c разных сторон.
Но что если я не прав? Что если меня заносит не туда? ....
3️⃣ Я обратился к самому злому Rails разработчику из тех, кого я знаю и попросил быть ревьюером моих лекций по Rails. И я получил согласие.
Все что я буду готовить для слушателей будет проходить жестокое ревью. Для меня это вызов.
Лекции Rails 2025. Chapter 1. Я планирую подготовить ко второй половине сентября.
Оставить мнение о том, что в него должно войти можно по ссылке.
Вас это ни к чему не обязывает, можно просто поделиться своими мыслями:
👉 https://forms.gle/pfSiiM9HfpuArVk1A
🔥7👍1
Уже 3-4 года в отпуск не беру ноутбук. Это было не просто заставить себя и успокоить мозг.
Всегда приходилось много работать и это стало образом жизни.
В какой-то момент пришлось учиться отдыхать, а не только работать.
До первого в этом году отпуска дополз с трудом. Но ничего. Посадка уже через час. 🍸🍹😎🏖️⛱️🤿
Всегда приходилось много работать и это стало образом жизни.
В какой-то момент пришлось учиться отдыхать, а не только работать.
До первого в этом году отпуска дополз с трудом. Но ничего. Посадка уже через час. 🍸🍹😎🏖️⛱️🤿
🔥8👍1
Великая миграция с вебпакера на vite (или аналоги)
В Апреле я делал презентацию для моих зарубежных коллег о том, какие инструменты пора бы использовать на замену вебпаку и вебпакеру.
Крупные компании довольно неповоротливы и они только только выбили у бизнеса время на миграцию. Но компетенций сделать это быстро и эффективно и безопасно для проекта, как правило, нет.
Надо совместить в голове кучу ограничений и деталей, прежде чем ты сможешь точно спланировать этот процесс и ничего не поломать.
Поскольку я этот путь уже прошел и предлагаю коллегам из rails экосистемы решение с нулевым количеством зависимостей - это им очень нравится.
Они больше не завязаны на внешние гемы и держат под своим контролем все те 3 файла для интеграции, которые нужны. А это значит, что миграция на любой другой инструмент становится делом банальным.
Вообще, ZERO-dependency решения вижу как будущий тренд.
Если его еще нет, то я его объявляю прямо сейчас 😂
В Апреле я делал презентацию для моих зарубежных коллег о том, какие инструменты пора бы использовать на замену вебпаку и вебпакеру.
Крупные компании довольно неповоротливы и они только только выбили у бизнеса время на миграцию. Но компетенций сделать это быстро и эффективно и безопасно для проекта, как правило, нет.
Надо совместить в голове кучу ограничений и деталей, прежде чем ты сможешь точно спланировать этот процесс и ничего не поломать.
Поскольку я этот путь уже прошел и предлагаю коллегам из rails экосистемы решение с нулевым количеством зависимостей - это им очень нравится.
Они больше не завязаны на внешние гемы и держат под своим контролем все те 3 файла для интеграции, которые нужны. А это значит, что миграция на любой другой инструмент становится делом банальным.
Вообще, ZERO-dependency решения вижу как будущий тренд.
Если его еще нет, то я его объявляю прямо сейчас 😂
👍3
Мне стыдно показывать свой код
Мой хороший знакомый, сеньор-помидор, много лет назад, выступая на конференции сказал: «мне стыдно показывать свой код. Он состоит из простых, коротких методов, которые может написать любой новичок»
Другой знакомый, еще в 2012 году сказал в личной беседе - «главная задача ИТ инженера - сокращать сложность и управлять ею»
Как и куда я не посмотрю, большие и устойчивые системы строятся чаще на принципах упрощения и сокращения сложности, часто в противовес трудной в понимании и уникальной оптимизации.
Условно, многим проектам лучше сделать 20 отдельных и простых и не оптимальных запросов к базе, чем один супер sql join который никто и никогда не сможет быстро модифицировать.
В успешных проектах чаще присутствует код, который стыдно показывать. Не потому что он плохой, а потому что он возмутительно простой и не соответствует высоким ожиданиям новичков, которых воспитывают на ютуб роликах о супер оптимизациях.
Но, может быть, это лишь мой информационный пузырь и мой частный опыт.
Мой хороший знакомый, сеньор-помидор, много лет назад, выступая на конференции сказал: «мне стыдно показывать свой код. Он состоит из простых, коротких методов, которые может написать любой новичок»
Другой знакомый, еще в 2012 году сказал в личной беседе - «главная задача ИТ инженера - сокращать сложность и управлять ею»
Как и куда я не посмотрю, большие и устойчивые системы строятся чаще на принципах упрощения и сокращения сложности, часто в противовес трудной в понимании и уникальной оптимизации.
Условно, многим проектам лучше сделать 20 отдельных и простых и не оптимальных запросов к базе, чем один супер sql join который никто и никогда не сможет быстро модифицировать.
В успешных проектах чаще присутствует код, который стыдно показывать. Не потому что он плохой, а потому что он возмутительно простой и не соответствует высоким ожиданиям новичков, которых воспитывают на ютуб роликах о супер оптимизациях.
Но, может быть, это лишь мой информационный пузырь и мой частный опыт.
👍10🔥1
Божечки, сколько ж тебе лет 🙈
Кажется, один из первых моих гемов для рельса. 2011 год.
Благодаря этому опенсорс проекту меня несколько раз брали на хорошую работу.
Почему-то в то время мало кто в РФ делал свои опенсорс проекты. Да еще и относительно успешные.
Найти бы время и силы однажды обновить его с учетом современных реалий. Ведь базовая идея настолько простая, что актуальности своей не потеряла и сегодня.
Кажется, один из первых моих гемов для рельса. 2011 год.
Благодаря этому опенсорс проекту меня несколько раз брали на хорошую работу.
Почему-то в то время мало кто в РФ делал свои опенсорс проекты. Да еще и относительно успешные.
Найти бы время и силы однажды обновить его с учетом современных реалий. Ведь базовая идея настолько простая, что актуальности своей не потеряла и сегодня.
👍3🔥3
Layered Design for Ruby on Rails Applications
Постом выше я вспомнил свой старый гем. Все потому что читал книгу Владимира Дементьева и его решение в той же группе, что и мой старый гем, потому и вспомнил о нем.
О книге (отзыв)
Там кстати распродажа по 9.99
👉 Страница книги
Если вы по каким-то причинам хотите устроиться к Марсианам — то в книге можно получить информацию по подходам и гемам, которые они наверняка использую в ежедневной практике. Ну и получить плюс в карму при прохождении интервью.
Пару идей я для себя отметил, но вау эффекта в целом не испытал.
Все здраво, все логично, понятно почему и зачем.
Как мне показалось, книга для уровня выше среднего. Для чтения книги нужен определенный опыт.
Мне бы хотелось большей догматичности изложения — в стиле — делай так (вот шаги 1,2, 3) и не делай вот так — мы пробовали, это не работает.
Искренне рад за Владимира, что он осилил такой проект, как книга. Это очень много труда и усилий.
Постом выше я вспомнил свой старый гем. Все потому что читал книгу Владимира Дементьева и его решение в той же группе, что и мой старый гем, потому и вспомнил о нем.
О книге (отзыв)
Там кстати распродажа по 9.99
👉 Страница книги
Если вы по каким-то причинам хотите устроиться к Марсианам — то в книге можно получить информацию по подходам и гемам, которые они наверняка использую в ежедневной практике. Ну и получить плюс в карму при прохождении интервью.
Пару идей я для себя отметил, но вау эффекта в целом не испытал.
Все здраво, все логично, понятно почему и зачем.
Как мне показалось, книга для уровня выше среднего. Для чтения книги нужен определенный опыт.
Мне бы хотелось большей догматичности изложения — в стиле — делай так (вот шаги 1,2, 3) и не делай вот так — мы пробовали, это не работает.
Искренне рад за Владимира, что он осилил такой проект, как книга. Это очень много труда и усилий.
👍9
https://youtu.be/QGQ9quiAgXM
Видео блог:
Ruby / Rails. Учить самому? Учить других?
Работал, работал, решил записать видео.
Рассуждаю на несколько тем:
- Почему там мало актуальных и адекватных курсов по IT?
- Почему разработчики не занимаются обучением?
- Нужно ли программирование в эпоху ИИ?
- Зачем учить Ruby и Rails? Это же не популярные инструменты.
Видео блог:
Ruby / Rails. Учить самому? Учить других?
Работал, работал, решил записать видео.
Рассуждаю на несколько тем:
- Почему там мало актуальных и адекватных курсов по IT?
- Почему разработчики не занимаются обучением?
- Нужно ли программирование в эпоху ИИ?
- Зачем учить Ruby и Rails? Это же не популярные инструменты.
YouTube
Нужно ли изучать Ruby и Rails? Почему так мало актуальных курсов? #ruby #rails #rubyonrails #pro
Видео блог: Нужно ли изучать Ruby и Rails в 2025 и почему так мало актуальных курсов? #rails #ruby #git #docker #rubyonrails #devconainer
ЗАПИСЬ НА КУРС ПО RAILS (Сентябрь 2025): https://forms.gle/pfSiiM9HfpuArVk1A
ТЕЛЕГА: https://t.me/prostocoding
ГИТХАБ:…
ЗАПИСЬ НА КУРС ПО RAILS (Сентябрь 2025): https://forms.gle/pfSiiM9HfpuArVk1A
ТЕЛЕГА: https://t.me/prostocoding
ГИТХАБ:…
👍5🔥3🤯1
Forwarded from Ruby on Rails | rubyhub
На YouTube-канале Ruby on Rails вышли новые видео из плейлиста Rails in Focus. Три коротких скринкаста:
- Ruby LSP, Concerns, Rails Error Reporter
Rails продолжает развиваться — тихо, стабильно, без шума.
В это время DHH выкатывает Omarchy — ещё один небольшой инструмент, сделанный «для себя, но open source». До этого были Kamal, MRSK, Solid Queue, Propshaft, Turbo, Stimulus, и ещё с десяток инструментов «для себя». Всё, вроде бы, для Rails, но не совсем про него.
Кажется, что иногда вместо очередного проекта в духе «в Basecamp это работает» — лучше было бы просто сделать сам Rails сильнее. Например, в плане DX, документации или работы с фронтендом.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Кажется, что иногда вместо очередного проекта в духе «в Basecamp это работает» — лучше было бы просто сделать сам Rails сильнее. Например, в плане DX, документации или работы с фронтендом.
😂🤭🤝
👍6
Пятничное приключение
Сегодня свободный день. Отправились с семьей на прогулку по Босфору. Я впервые увидел танкер так близко. Я был Оооооочень удивлен. Ого, какой он огромный!
Да и вообще красиво вокруг. Стамбул. Лето. Босфор. Чай. ❤️
Сегодня свободный день. Отправились с семьей на прогулку по Босфору. Я впервые увидел танкер так близко. Я был Оооооочень удивлен. Ого, какой он огромный!
Да и вообще красиво вокруг. Стамбул. Лето. Босфор. Чай. ❤️
👍7🔥6