Hotwire и Rails #1 | Stimulus: скромный фреймворк для front-end

  Рет қаралды 7,621

Ilya Krukowski

Ilya Krukowski

Күн бұрын

Пікірлер: 79
@ВалерийПогребняк-ц1у
@ВалерийПогребняк-ц1у Ай бұрын
Спасибо огромное, Илья! Я как-то тоже долго откладывал с Хотвайром и Стимулосом и очень рад, что есть такой годный контент. 2 года назад об этом было поменьше инфы. Кстати, район города, в котором я живу Крюков называется. Вроде и не значительно, а приятно, поэтому всегда с особым удовольствием смотрю ваши уроки.
@ВалерийПогребняк-ц1у
@ВалерийПогребняк-ц1у Ай бұрын
Кстати первая статья вашего авторства, которую я читал была про создания гема на руби. Много воды с тех пор утекло, но тогда она здорово помогла, и в принципе актуальна до сих пор.
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski Ай бұрын
@@ВалерийПогребняк-ц1у Спасибо за отзыв, рад, что вам понравились уроки Да, это наверное на сайте Lokalise статья - надо бы её, кстати обновить немного, хотя там многое остаётся по-прежнему
@Obrezkasada
@Obrezkasada 2 жыл бұрын
как всегда, в течение просмотра видео, поставить лайк хочется несколько раз!
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 2 жыл бұрын
@igorshkuryn2384
@igorshkuryn2384 11 ай бұрын
Спасибо Илья за Ваш талант! на бесплатных видео все достпунее чем практически у всех за деньги
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 11 ай бұрын
На здоровье
@Александр-е9ь8ь
@Александр-е9ь8ь 2 ай бұрын
Краш курс просто супер!
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 2 ай бұрын
@rickbacker1
@rickbacker1 7 ай бұрын
Спасибо огромное за Ваш труд! Действительно, Stimulus очень оживляет приложения на монолитной Рельсе без применения всяких реактов и относительно легко и контроллируемо. Единственное, как мне показалось, про увеличении кодовой базы приложения, количество стимулус-контроллеров тоже возрастает и не всегда их можно перезаюзать. Также количество навешанных контроллеров и контроллер-экшнов на одной вьюхе может быть уже не нормальной. Мне, честно говоря, стимулус сразу не понравился по выше-описанным причинам, но потом, легкость его использования все-таки берет верх над минусами. Каждой технологии есть свое место. Как мне видится, для маленьких и средних приложений, стимулус-контроллеры - находка и классный инструмент.
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 7 ай бұрын
Думаю, так и есть. Это нишевая штука, но с rails отлично идёт
@Aluston1783
@Aluston1783 9 ай бұрын
Спасибо Илья за ваш труд! не перестаю пересматривать ваши видосы.
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 9 ай бұрын
Благодарю вас
@ledockol
@ledockol 2 жыл бұрын
Как всегда мощный, концентрированный урок от Ильи! Очень много полезного материала. Браво Илья! Благодарю. Вставлю некоторые "непутёвые" заметки, может быть пригодятся.... 1) Для тех кто будет играться с кодом не на платформе windows: 1.1 В файлах bin/setup, bin/rails, bin/rake сменить #!/usr/bin/env ruby.exe на #!/usr/bin/env ruby 1.2 Возможно придется сделать исполняемыми, командой типа: chmod a+x bin/rails 2) Быструю установку из репо сделать можно так: bin/setup bin/rails db:seed 3) Для генерации стимулус контроллера есть более простой способ: bin/rails g stimulus имя_контроллера 4) Не совсем ясно, зачем для каждого изображения создается отдельный контроллер images? Контроллера в этом случае достаточно одного, назначив его родителю списка. При подключении он будет проходить forEach по списку потомков, присваивая им необходимые теги и обрабатывая события. 5) Для работы с бэкендом настоятельно рекомендую использовать встроенную в rails библиотеку '@rails/request.js'. Великолепно интегрируется, существенно сокращает код запросов. 6) Кроме указанных в видео способов взаимодействия между контроллерами, а это иногда очень необходимо, есть еще один (из внутреннего АПИ стиумулус-контроллера): connect() { this.element[this.identifier] = this) } После того как в целевом контроллере прописали эту конструкцию, мы можем вызвать любую функцию из этого контроллера, указав DOM элемент, затем через точку имя стимулус контроллера, а затем - также через точку - имя функции из этого контроллера. Звучит сложно, но на самом деле, все очень даже просто. PS Для контроллеров у которых название составное (мой_супер_controller.js) этот код будет выглядеть немного по-другому. Кстати, есть и еще один способ организации взаимодействия - испольвание глобального windows.
@ledockol
@ledockol 2 жыл бұрын
Допустил ошибку. Правильно так: connect() { this.element[this.identifier] = this } Для сложный имен контроллера: connect() { this.element[ (str => { return str .split('--') .slice(-1)[0] .split(/[-_]/) .map(w => w.replace(/./, m => m.toUpperCase())) .join('') .replace(/^\w/, c => c.toLowerCase()) } )(this.identifier) ] = this } Вызов функции из контроллера будет выглядеть так: document.querySelector("#filters-price-section").priceSelect.fullPriceRangeReset() priceSelect - price_select_controller.js ('price-select'), а "fullPriceRangeReset()" - функция из него.
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 2 жыл бұрын
Спасибо, очень подробно и интересно :) Да, можно было сделать один контроллер, но хотелось показать, что можно один привязывать ко многим и они вроде как будут независимы. Но вообще всё по делу
@ledockol
@ledockol 2 жыл бұрын
@@IlyaBodrovKrukowski Контроллер для каждого image действительно упрощает работу с target для каждого из них, но какой ценой? Мы плодим для каждого пользователя кучу одинаковых объектов: контроллеров и таргетов, да еще и с одинаковыми именами. В тоже время для решения задачи адресации таргетов можно использовать стандартный event.target или динамическую адресацию.
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 2 жыл бұрын
@@ledockol Это правда, я имею ввиду просто в целях демонстрации
@vinogradova82
@vinogradova82 2 жыл бұрын
Илья, ОГРОМНОЕ СПАСИБО за ваш труд! Отличные уроки всегда и этот в том числе! Очень подробно и понятно все как всегда. Здоровья вам!
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 2 жыл бұрын
благодарю!
@anparow4068
@anparow4068 2 жыл бұрын
Супер! Спасибо за твоё творчество и помощь в обучении)
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 2 жыл бұрын
@null6216
@null6216 2 жыл бұрын
Вот это спасибо! От всех рубистов!
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 2 жыл бұрын
@prdrsd6303
@prdrsd6303 2 жыл бұрын
Насичений та цікавий урок, дякую!
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 2 жыл бұрын
@MajorPain
@MajorPain 2 жыл бұрын
Спасибо за ваш труд!
@galievrus
@galievrus 2 жыл бұрын
Спасибо очень классный курс, продолжайте нам очень нравится!
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 2 жыл бұрын
@muradgadjiev3556
@muradgadjiev3556 2 жыл бұрын
Илья спасибо большое!
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 2 жыл бұрын
@gkhdscjud
@gkhdscjud 2 жыл бұрын
Отличное видео, спасибо!
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 2 жыл бұрын
На здоровье
@dagrish4980
@dagrish4980 9 ай бұрын
Илья, очень вам признателен за ваш труд и выражаю большое уважение! Я всё откладывал освоение hotwire, и вот с вашей помощью получилось, наконец, окунуться в тему! Нет ли у вас в планах сделать цикл видео по strada и вообще тематику разработки для мобил на рельсе подсветить?
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 9 ай бұрын
Честно говоря, пока не особо, но посмотрим
@xaogao
@xaogao 2 жыл бұрын
Большое спасибо за видео
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 2 жыл бұрын
@promax866
@promax866 2 жыл бұрын
Спасибо за уроки!
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 2 жыл бұрын
@stipeydikey6599
@stipeydikey6599 2 жыл бұрын
Спасибо большое за урок! Хотелось бы еще увидеть как создавать фильтры и сортировки в rails. Вещь часто распространенная, однако какого-то однозначного хорошего варианта написания кода для данных функций не видел. Кто-то пишет, что нужно все делать на фронтенде, а это значит js. Но если подумать, пичкать каждую запись кучей id для каждого поля - не лучшая идея. Кто-то говорит, что сразу запросы с бд, но это ведь, очевидно, нагрузка на бд, а значит так себе идея. К тому же фильтры и сортировки бывают по связанным полям, что сильно усложняет все эти процессы. Вот хотелось бы узнать как писать хороший код для данных функций веб-приложений на rails.
@SlazZy1989
@SlazZy1989 Жыл бұрын
Спасибо за ролик, очень полезно )
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski Жыл бұрын
@leeeroy_jenkins
@leeeroy_jenkins 2 жыл бұрын
похоже неплохая альтернатива vue 👍
@knowledgedose1956
@knowledgedose1956 2 жыл бұрын
круто, спасибо. чем-то похоже на htmx, по крайней мере принцип
@observerone
@observerone 2 жыл бұрын
Очень круто
@vladimirgritskevich2997
@vladimirgritskevich2997 2 жыл бұрын
Спасибо, вам огромное
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 2 жыл бұрын
@alexeybelozerov4297
@alexeybelozerov4297 2 жыл бұрын
Спасибо!
@ВладиславДмитров-т5т
@ВладиславДмитров-т5т 2 жыл бұрын
Лучший контент
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 2 жыл бұрын
Благодарю!
@ОлексійГнідко-ь2у
@ОлексійГнідко-ь2у 2 жыл бұрын
Спасибо за учебный материал! Но стоило бы упомянуть, что содержимое файла "package.json" надо дополнить из выхлопа консоли (причем в двух местах)... это не очевидно -- чуть мозгом не тронулся... ))
@ОлексійГнідко-ь2у
@ОлексійГнідко-ь2у 2 жыл бұрын
И "@hotwired/turbo-rails" тоже автоматом в этот файл не прописывается (( Обратите внимание кто будет идти по видео! )
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 2 жыл бұрын
@@ОлексійГнідко-ь2у На здоровье! Вообще, это странно. Если просто создать новое приложение rails 7, он должен дописать туда и turbo тоже, если только вы явно не указали, что turbo не нужен. Если это не так, то звучит, как баг
@remotronic
@remotronic 2 жыл бұрын
👍
@yaroshchenko_creative
@yaroshchenko_creative 2 жыл бұрын
здравствуйте, сделайте пожалуйста ролик с работой и редактированием pdf, через json или какой либо другой способ. Может ли Ruby работать с таким сложным форматом как pdf или нужна библиотtка или Gem написанный на С и С++? Есть ли способ работать на чистом РУБИ или только Rails? Спасибо за контент и ответ.
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 2 жыл бұрын
Редактировать никогда не пробовал. Генерировать pdf - ради бога, это реально
@VladimirLozitskiy
@VladimirLozitskiy Жыл бұрын
Урок для опытных разработчиков, новички отдыхают
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski Жыл бұрын
Да, это правда, тут есть относительно сложные вещи. Для новичков есть плейлист просто о rails, без stimulus kzbin.info/www/bejne/qqK2nHWjhKl7eM0
@ddd2283
@ddd2283 2 жыл бұрын
ДАВАЙ ЕЩО!
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 2 жыл бұрын
Стараюсь :)
@Тёмочка-ь7о
@Тёмочка-ь7о 4 ай бұрын
Илья, добрый день! Подскажите как часто вообще видели Stiimulus Hotwire на бизнес проектах? Мне кажется сейчас везде RoR back + React Front
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 4 ай бұрын
Не особенно часто, скажем так
@404alex_eu
@404alex_eu Жыл бұрын
Видео шикарное, возможно кто то сталкивался с такой проблемой что stimulus controller обновляеться только после команды rake assets:precompile? Или это стандартное поведение, в браузерной консоли ошибок нету, логи тоже не выдают никакие ошибки, спасибо!
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski Жыл бұрын
В development такого быть не должно. В production - дело другое
@404alex_eu
@404alex_eu Жыл бұрын
@@IlyaBodrovKrukowski нашел проблему, неправильно сервак стартовал, делал через привычное rails s, а надо было bin/dev или как у Вас, а ларчик просто открывался))))))
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski Жыл бұрын
@@404alex_eu А, да, это важно, иначе не подрубится hot reload
@ВалерийПогребняк-ц1у
@ВалерийПогребняк-ц1у Ай бұрын
@@404alex_eu Если я правильно понимаю, когда стартуешь через rails s, то чтобы в дев режиме на лету компайлилось, то нужно в отдельной вкладке терминала запускать yarn build --watch и yarn build:css --watch Поправьте, если ошибаюсь
@ddd2283
@ddd2283 2 жыл бұрын
Один вопрос , а чего не importmap ((( ну как так то
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 2 жыл бұрын
Мне он кажется сыроватым ещё, если честно
@ddd2283
@ddd2283 2 жыл бұрын
@@IlyaBodrovKrukowski , а я вот третий час плачу! Давай прейскурант публикуй на частные уроки!
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 2 жыл бұрын
@@ddd2283 Сейчас не провожу уроки, увы. Но потом будет и про importmap, просто через какое-то время
@ddd2283
@ddd2283 2 жыл бұрын
@@IlyaBodrovKrukowski Ну, я конечно поплачу и разберусь в итоге, но если частная практика будет возможна или даже в составе групп , я бы поддержал это!
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 2 жыл бұрын
@@ddd2283
@anatolyvatson2542
@anatolyvatson2542 2 жыл бұрын
По итальянки страда это дорога
@IlyaBodrovKrukowski
@IlyaBodrovKrukowski 2 жыл бұрын
а вот у нас как-то иначе. Помните, были ещё стихи такие: "В полном разгаре страда деревенская?". Вот оно отсюда
@anatolyvatson2542
@anatolyvatson2542 2 жыл бұрын
@@IlyaBodrovKrukowski очень много слов транзитировали с латыни в русский, я после того как изучил итальянский очень удивился
@nsynecs
@nsynecs 2 жыл бұрын
Спасибо!
Introduction to Stimulus Reflex
10:11
GoRails
Рет қаралды 17 М.
Chain Game Strong ⛓️
00:21
Anwar Jibawi
Рет қаралды 40 МЛН
Мен атып көрмегенмін ! | Qalam | 5 серия
25:41
Une nouvelle voiture pour Noël 🥹
00:28
Nicocapone
Рет қаралды 8 МЛН
How to treat Acne💉
00:31
ISSEI / いっせい
Рет қаралды 100 МЛН
Turbo Frame Pages in Ruby on Rails 7
15:47
Deanin
Рет қаралды 9 М.
Принципы SOLID | На примере Ruby
22:12
Ilya Krukowski
Рет қаралды 8 М.
Секреты блоков, процедур и лямбд в Ruby
32:18
What is Hotwire?
6:55
The Pragmatic Studio
Рет қаралды 12 М.
Ruby on Rails Hotwire + Turbo for Beginners
17:11
Malachi Rails
Рет қаралды 4,9 М.
Chain Game Strong ⛓️
00:21
Anwar Jibawi
Рет қаралды 40 МЛН