Илья Зыкин. Pro Жизнь
137 subscribers
1.1K photos
45 videos
4 files
95 links
Download Telegram
Как украсть лучшие практики в 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.

Ой вей!
Что за зоопарк? А оно точно надо?
👍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 рабочий день.
👍2
Как украсть лучшие практики в Rails и как избавить Rails от ruby-based фронтенда (Часть 5)

К чему этот выпад в сторону Rails фронтенда? Что, самый умный?

Ну, во-первых — то, что делает DHH и команда, это не божественное решение высеченое в граните.

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

Я даю вам пищу для размышлений. Инструменты нужно выбирать под себя и свой проект.

А если вы достаточно информированы и понимаете основную идею, то часто можно решить задачу таким способом, который будет супер удобен и эффективен именно вам;

Что ж ты сам не сделал идеальный Rails фронтенд?

А кто сказал, что не сделал? Другое дело, что заменить разношерстный набор инструментов одним — это дело требующее некоторых усилий, и как правило хорошо оплачивается заказчиками, тк это сильно сокращает время на поддержку и развитие. И далеко не всегда коммерческие решения следует выкладывать в опен сорс.

Как минимум вы теперь знаете, что кто-то это делает и это отлично работает.

У меня все.

Ваша критика и соображения приветствуются.
🔥3
Золотой век уже AI инструментов прошел?

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

Было очень круто работать в таком стиле 3-4 месяца назад.

Быстрый запрос — мгновенный ответ. Получаешь нужные улучшения и переключаешься на что-то другое.

Как птичка собираешь пушинки и соломинки и строишь свое гнездо.

Теперь по умолчанию в Клоде включен режим думающего агента.

Ты ему даешь запрос — он что-то там думает. Как истинный коуч выдает тебе изнанку размышлений и план реализации (чтобы провалидировать понимание и согласовать действия с клиентом) — потом зависает — потом не торопясь делает правки — потом зависает и ждет одобрения на выполнение действий — а потом еще и сам себя корректирует.

Цикл обратной связи увеличился с 3 секунд до минуты.

Ручной режим и возврат к старой версии ситуацию не решает. Кажется модель стала специально работать дольше. Может хотят новый более дорогой тариф ввести?

Все это, как минимум, раздражает.
👍3
Ruby on Rails. Chapter 1. (Сентябрь 2025)

По итогам недавней серии видео по 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
🔥7👍1
В свете новостей от глобальном сливе паролей я пошел посмотреть как там дела с моими аккаунтами. Сегодня я узнал, что у меня когда то был аккаунт на Пикабу.

Ломай меня полностью!
🔥1
Спасибо.
(Адресат поймет)
👍6🔥3
Уже 3-4 года в отпуск не беру ноутбук. Это было не просто заставить себя и успокоить мозг.

Всегда приходилось много работать и это стало образом жизни.

В какой-то момент пришлось учиться отдыхать, а не только работать.

До первого в этом году отпуска дополз с трудом. Но ничего. Посадка уже через час. 🍸🍹😎🏖️⛱️🤿
🔥8👍1
Великая миграция с вебпакера на vite (или аналоги)

В Апреле я делал презентацию для моих зарубежных коллег о том, какие инструменты пора бы использовать на замену вебпаку и вебпакеру.

Крупные компании довольно неповоротливы и они только только выбили у бизнеса время на миграцию. Но компетенций сделать это быстро и эффективно и безопасно для проекта, как правило, нет.

Надо совместить в голове кучу ограничений и деталей, прежде чем ты сможешь точно спланировать этот процесс и ничего не поломать.

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

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

Вообще, ZERO-dependency решения вижу как будущий тренд.

Если его еще нет, то я его объявляю прямо сейчас 😂
👍3
Мне стыдно показывать свой код

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

Другой знакомый, еще в 2012 году сказал в личной беседе - «главная задача ИТ инженера - сокращать сложность и управлять ею»

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

Условно, многим проектам лучше сделать 20 отдельных и простых и не оптимальных запросов к базе, чем один супер sql join который никто и никогда не сможет быстро модифицировать.

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

Но, может быть, это лишь мой информационный пузырь и мой частный опыт.
👍10🔥1
Божечки, сколько ж тебе лет 🙈

Кажется, один из первых моих гемов для рельса. 2011 год.

Благодаря этому опенсорс проекту меня несколько раз брали на хорошую работу.

Почему-то в то время мало кто в РФ делал свои опенсорс проекты. Да еще и относительно успешные.

Найти бы время и силы однажды обновить его с учетом современных реалий. Ведь базовая идея настолько простая, что актуальности своей не потеряла и сегодня.
👍3🔥3
Layered Design for Ruby on Rails Applications

Постом выше я вспомнил свой старый гем. Все потому что читал книгу Владимира Дементьева и его решение в той же группе, что и мой старый гем, потому и вспомнил о нем.

О книге (отзыв)

Там кстати распродажа по 9.99
👉 Страница книги

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

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

Все здраво, все логично, понятно почему и зачем.

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

Мне бы хотелось большей догматичности изложения — в стиле — делай так (вот шаги 1,2, 3) и не делай вот так — мы пробовали, это не работает.

Искренне рад за Владимира, что он осилил такой проект, как книга. Это очень много труда и усилий.
👍9
Layered Design for Ruby on Rails Applications

Новости с пылу с жару.

По неофициальной информации (но напрямую от автора) — скоро второе переиздание 😁
👍5
https://youtu.be/QGQ9quiAgXM

Видео блог:
Ruby / Rails. Учить самому? Учить других?
Работал, работал, решил записать видео.

Рассуждаю на несколько тем:
- Почему там мало актуальных и адекватных курсов по IT?
- Почему разработчики не занимаются обучением?
- Нужно ли программирование в эпоху ИИ?
- Зачем учить Ruby и Rails? Это же не популярные инструменты.
👍5🔥3🤯1
Forwarded from Ruby on Rails | rubyhub
💻 Rails in Focus

На 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
Programmer’s DREAM Desk Setup

Простой стул, глубокий стол (кухонный), карандаш, бумага, степлер, кружка крепкого чая, macbook.

Больше ничего не надо. Вообще.

Ну хорошо. Наклейка Губки Боба на крышке нужна. Без нее код не пишется (спасибо ребенку) ❤️
🔥6
Пятничное приключение

Сегодня свободный день. Отправились с семьей на прогулку по Босфору. Я впервые увидел танкер так близко. Я был Оооооочень удивлен. Ого, какой он огромный!

Да и вообще красиво вокруг. Стамбул. Лето. Босфор. Чай. ❤️
👍7🔥6