🧙♀️ Экзерзизм 🧙♀️
Недавно уже писала про него. Думала, решу hello world на го и на этом всё закончится, но что-то затянуло.
Прошла все учебные упражнения и немного дальше, в этот раз решила идти по порядку.
Удобно, что видно прогресс, и как будто можно быстро сделать что-то полезное. Пусть будет для кругозора.
Что хорошо на экзерцизме:
- удобный консольный клиент
- учебный режим: есть теория и дерево концепций, учебные упражнения специально для их усвоения
- есть не во всех языках: для go и ruby есть, для ts нет
- геймификация, отслеживание прогресса
Новое с тех пор, как я туда заглядывала:
- теперь не предлагает менторский режим по умолчанию, но можно запросить код-ревью у волонтёров
- есть слоты на менторинг, по-моему это и есть код-ревью на решения
- слоты дают за репутацию, а репутацию за публикацию решений
В курсоре лучше не решать, слишком сильно подсказывает ) А вот идеи рефакторинга после решения получить полезно.
Мой старый обзор экзерцизма
(как обычно, не планировался для ютуба, поэтому есть особенности)
Как у вас? Что изучаете? 😏
Недавно уже писала про него. Думала, решу hello world на го и на этом всё закончится, но что-то затянуло.
Прошла все учебные упражнения и немного дальше, в этот раз решила идти по порядку.
Удобно, что видно прогресс, и как будто можно быстро сделать что-то полезное. Пусть будет для кругозора.
Что хорошо на экзерцизме:
- удобный консольный клиент
- учебный режим: есть теория и дерево концепций, учебные упражнения специально для их усвоения
- есть не во всех языках: для go и ruby есть, для ts нет
- геймификация, отслеживание прогресса
Новое с тех пор, как я туда заглядывала:
- теперь не предлагает менторский режим по умолчанию, но можно запросить код-ревью у волонтёров
- есть слоты на менторинг, по-моему это и есть код-ревью на решения
- слоты дают за репутацию, а репутацию за публикацию решений
В курсоре лучше не решать, слишком сильно подсказывает ) А вот идеи рефакторинга после решения получить полезно.
Мой старый обзор экзерцизма
(как обычно, не планировался для ютуба, поэтому есть особенности)
Как у вас? Что изучаете? 😏
👍18👾3❤2
Сходила к Насте на интервью 🥰
https://news.1rj.ru/str/web_and_more/952
https://news.1rj.ru/str/web_and_more/952
Telegram
Веб (и не только) заметки
1. Расскажи пожалуйста, какие ощущения от учёбы в уже взрослом возрасте? Много ли отличий от обучения в 20 летнем?
Учёба в магистратуре отличалась от специалитета всем: и форматом, и специальностью, и вузом, и моими жизненными обстоятельствами.
Первый раз…
Учёба в магистратуре отличалась от специалитета всем: и форматом, и специальностью, и вузом, и моими жизненными обстоятельствами.
Первый раз…
❤11👍2
Ну как, посмотрели 6 часов dhh ?
Традиционно попросила perplexity, показалось, что темы скучные.
Включила начало - эмоционально, интересно. Харизматичный чел, конечно.
crud monkeys, непонимание базовых концепций программирования, торговля пиратским по 👍
Надо слушать 😁
Как вам?
Традиционно попросила perplexity, показалось, что темы скучные.
Включила начало - эмоционально, интересно. Харизматичный чел, конечно.
crud monkeys, непонимание базовых концепций программирования, торговля пиратским по 👍
Надо слушать 😁
Как вам?
👍6😁3😱2👀2
В общем я досмотрела!
Много интересных тем, пропустила только про racing, зато Дима отметил
Кроме начала, где он получил права в 25 лет (да, я тоже, в 28)
Первая часть интереснее, понравились темы:
Будущее программирования, ИИ в обучении и работе [1:26]
Говорит, возможно, станет рекреационной активностью, как стала езда на лошади
Поживём - увидим. Если, что скажем, что "хорошая была профессия" 😏
Ценность монолита: микросервисы в нетфликсе vs микросервисы в команде на 20 человек (ни на что не намекаю 😁)
[2:06]
Как его бесят 1-1 и созвоны в целом :D [2:23]
В 37signals пробовали работать с engineering manager'ами , но им не зашло.
Почему-то эти менеджеры у них не технические, хотя у меня сложилось впечатление, что EM - это обычно человек с нормальным таким техническим бэкграундом.
Как у вас?
В девту у меня было 100500 менеджеров с разным бэкграундом, часто менялись, были и не очень технические. Сама люблю 1-1 (ну, наверное, не каждую неделю, как у них было) и встречи мне норм (в меру). Но это с точки зрения разработчицы, с точки зрения бизнеса может по-другому бы смотрела.
В конце про oss [5:32]
Пока слушала, в очередной раз вспомнила, насколько мне близка философия руби, "every programmer knows better". И практический подход rails ❤️
Много интересных тем, пропустила только про racing, зато Дима отметил
Кроме начала, где он получил права в 25 лет (да, я тоже, в 28)
Первая часть интереснее, понравились темы:
Будущее программирования, ИИ в обучении и работе [1:26]
Говорит, возможно, станет рекреационной активностью, как стала езда на лошади
Поживём - увидим. Если, что скажем, что "хорошая была профессия" 😏
Ценность монолита: микросервисы в нетфликсе vs микросервисы в команде на 20 человек (ни на что не намекаю 😁)
[2:06]
Как его бесят 1-1 и созвоны в целом :D [2:23]
В 37signals пробовали работать с engineering manager'ами , но им не зашло.
Почему-то эти менеджеры у них не технические, хотя у меня сложилось впечатление, что EM - это обычно человек с нормальным таким техническим бэкграундом.
Как у вас?
В девту у меня было 100500 менеджеров с разным бэкграундом, часто менялись, были и не очень технические. Сама люблю 1-1 (ну, наверное, не каждую неделю, как у них было) и встречи мне норм (в меру). Но это с точки зрения разработчицы, с точки зрения бизнеса может по-другому бы смотрела.
В конце про oss [5:32]
Пока слушала, в очередной раз вспомнила, насколько мне близка философия руби, "every programmer knows better". И практический подход rails ❤️
❤🔥13🔥4🌚3
Привет!
Опять выпадаю. У меня первый оплачиваемый отпуск с 2018 😁 (неоплачиваемые были, и много)
Покатались по Карелии на машине с семьёй. В прошлом году ездили на Бесов Нос, сейчас более обзорно: Спб-Сортавала-Суоярви-Петрозаводск-Медвежьегорск-Андома-гора (последняя уже у нас в области). Была возможность съездить как в туристические, так и не очень туристические места. Если кто-то тоже собирается, можете посмотреть подробнее на личном канале
Круто, но очень жарко, если не весь день сидишь в озере 🥵 Ну и сборы-разборы постоянные, т.к. по 1-2 дня в каждом месте.
Зато много где побывали.
Отдыхать тяжело, конечно, но надо 😁
А вы как, ходите в отпуск?
#личное@anna_codes
Опять выпадаю. У меня первый оплачиваемый отпуск с 2018 😁 (неоплачиваемые были, и много)
Покатались по Карелии на машине с семьёй. В прошлом году ездили на Бесов Нос, сейчас более обзорно: Спб-Сортавала-Суоярви-Петрозаводск-Медвежьегорск-Андома-гора (последняя уже у нас в области). Была возможность съездить как в туристические, так и не очень туристические места. Если кто-то тоже собирается, можете посмотреть подробнее на личном канале
Круто, но очень жарко, если не весь день сидишь в озере 🥵 Ну и сборы-разборы постоянные, т.к. по 1-2 дня в каждом месте.
Зато много где побывали.
Отдыхать тяжело, конечно, но надо 😁
А вы как, ходите в отпуск?
#личное@anna_codes
🔥14❤5👍3
Forwarded from Masha`s Day
У меня (Маши) день рождения 31 июля. В этом году я решила отпраздновать его в компании моих любимых женщин, которые делают восхитительное. Приходите поговорить, послушать. Зовите сестру, подругу.
📕 Программа события:
🚘 Автоматизация тестирования: делаем первые шаги
🩹 Соло-разработчица: гид по выживанию и процветанию. Практики, инструменты, общение
✈️ Обзор возможностей n8n для AI агентов
🐸 Митап бесплатный
🐤 Дата и время: суббота 2 августа 2025, 18:00 – 20:00 GMT+3
💖 Место проведения: Санкт-Петербург, Failover bar 4-я Советская ул., 7
✅ Регистрация: место в залах ограниченно, поэтому мы просим вас зарегистрироваться: https://mariya-osipenko.timepad.ru/event/3457405/
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥6❤2🔥2⚡1
Заглянула в книгу Fundamentals of Software Architecture (как-нибудь обязательно дочитаю)
В конце книги есть глава про карьеру, о том, как для архитекторов важна "широта взглядов" (technical breadth) и как трудно найти время на её развитие.
Авторы предлагают способ найти время - "Правило 20 минут". Просто тратить по 20 минут в день на чтение статей, предлагают ходить на ресурсы с картинки.
Причём рекомендуют делать это утром до работы, т.к. на обеде и вечером скорее всего найдутся другие неотложные дела и вы не почитаете. Мы все знаем, как это бывает 🌚
Я тоже замечала, что если с утра не сделать, потом всё, шансов мало. Раньше так по утрам читала технические книги. Конечно, за полчаса мало успеваешь, особенно если тратить время на заметки. А если надо что-то попробовать "руками", то тем более. Но консистентность рулит - в сумме на длительных промежутках узнаёшь многое. Хорошо, если получается дополнять более длительными отрезками времени на обучение, но и так уже неплохо.
В последнее время то занималась, то нет, летом вообще всё отвалилось, хочу вернуть.
А вы как находите время на обучение?
Как насчёт study with me на стриме в 8:30 утра по будням (по Москве)? 😏 (я серьёзно)
В конце книги есть глава про карьеру, о том, как для архитекторов важна "широта взглядов" (technical breadth) и как трудно найти время на её развитие.
Авторы предлагают способ найти время - "Правило 20 минут". Просто тратить по 20 минут в день на чтение статей, предлагают ходить на ресурсы с картинки.
Причём рекомендуют делать это утром до работы, т.к. на обеде и вечером скорее всего найдутся другие неотложные дела и вы не почитаете. Мы все знаем, как это бывает 🌚
Я тоже замечала, что если с утра не сделать, потом всё, шансов мало. Раньше так по утрам читала технические книги. Конечно, за полчаса мало успеваешь, особенно если тратить время на заметки. А если надо что-то попробовать "руками", то тем более. Но консистентность рулит - в сумме на длительных промежутках узнаёшь многое. Хорошо, если получается дополнять более длительными отрезками времени на обучение, но и так уже неплохо.
В последнее время то занималась, то нет, летом вообще всё отвалилось, хочу вернуть.
А вы как находите время на обучение?
Как насчёт study with me на стриме в 8:30 утра по будням (по Москве)? 😏 (я серьёзно)
❤11🔥4😁1
✨ Domain-Driven Design ✨
Часто стала всплывать эта тема, значит пора вспоминать. А пока подборка того, где попадалось в последнее время.
Послушала ОргПрог на эту тему [ymusic]
Ничего нового не узнала, но понравилось 😁
Интересная мысль, что в монолите обычно всё красиво, а вот в микросервисах в плане общей архитектуры всё нормально, зато внутри сервисов хаос и надо больше внимания уделять именно этому.
Не знаю, как вы, а я видела совсем другое :D Наверное, это специфика работы на аутсорсе и в стартапе. В реальности бывает по-разному, нужно обращать внимание на качество и там, и там.
Гость порекомендовал книгу Влада Хононова.
(есть и на русском) Сразу захотелось прочитать, вы читали?
Заодно зацепилась за подкаст с автором, надо послушать.
У синкнетики тоже скоро воркшоп по DDD (Снова с Игорем Симдяновым ✨) Надеюсь, получится применить что-то в реальной жизни.
Сама читала Вернона Distilled DDD , но давненько. Upd. И ещё Domain Driven Rails от Arkency, аналогично (смотрите в комментах)
#книги@anna_codes #DDD
Часто стала всплывать эта тема, значит пора вспоминать. А пока подборка того, где попадалось в последнее время.
Послушала ОргПрог на эту тему [ymusic]
Ничего нового не узнала, но понравилось 😁
Интересная мысль, что в монолите обычно всё красиво, а вот в микросервисах в плане общей архитектуры всё нормально, зато внутри сервисов хаос и надо больше внимания уделять именно этому.
Не знаю, как вы, а я видела совсем другое :D Наверное, это специфика работы на аутсорсе и в стартапе. В реальности бывает по-разному, нужно обращать внимание на качество и там, и там.
Гость порекомендовал книгу Влада Хононова.
(есть и на русском) Сразу захотелось прочитать, вы читали?
Заодно зацепилась за подкаст с автором, надо послушать.
У синкнетики тоже скоро воркшоп по DDD (Снова с Игорем Симдяновым ✨) Надеюсь, получится применить что-то в реальной жизни.
Сама читала Вернона Distilled DDD , но давненько. Upd. И ещё Domain Driven Rails от Arkency, аналогично (смотрите в комментах)
#книги@anna_codes #DDD
❤9🔥2
Азалия @zazaraisovna_chanel делает крутую игру "Сквозь ветер"!
Посмотрите, если вам интересна культура Башкирии, её мифы и легенды
Сейчас можно поиграть в демку (в браузере на компьютере).
Посмотреть видео об игре
Я думаю, что это очень крутая идея - объединять игры и мифологию. На прошлогоднем хакатоне в Вологде была тема "Мифология, как искусство". Вот тут немного писала про это.
Правда, тогда поиграть так ни во что и не удалось, и где теперь найти эти игры?
Считаю, что важно показывать свои наработки, начиная с демо. Азалии успехов с разработкой игры, будем следить 💪
Посмотрите, если вам интересна культура Башкирии, её мифы и легенды
Сейчас можно поиграть в демку (в браузере на компьютере).
Посмотреть видео об игре
Я думаю, что это очень крутая идея - объединять игры и мифологию. На прошлогоднем хакатоне в Вологде была тема "Мифология, как искусство". Вот тут немного писала про это.
Правда, тогда поиграть так ни во что и не удалось, и где теперь найти эти игры?
Считаю, что важно показывать свои наработки, начиная с демо. Азалии успехов с разработкой игры, будем следить 💪
❤17❤🔥7👍4
📚 Всё-таки книжный клуб 📚
Книга - "Проектирование приложений Ruby on Rails слой за слоем" Владимира Дементьева
Она же - Layered Design for Ruby on Rails Applications
Она же - "Слоёные рельсы" (моя интерпретация)
По Ruby на русском практически ничего не издаётся, а значит я просто обязана её прочитать эту книгу 🙌
Формат стандартный:
Читаем по одной главе в неделю, созваниваемся и обсуждаем:
- краткий обзор главы (будем меняться)
- пройдёмся по вопросам (они есть в книге)
- обсудим наши мысли и идеи от прочтения
Будем с Катей и Олесей со стрима по руби
Хотела "публичный" формат, но оставила эту идею на будущее. Буду просто постить по результатам )
Время - для сильных духом: в 8:00 по Москве, по вторникам. Старт - 2.09
Если хотите присоединиться, напишите в личку (@lightalloy) - созвонимся до старта, обсудим формат и ожидания.
#книги@anna_codes
#книжный_клуб@anna_codes
#layered_rails
Книга - "Проектирование приложений Ruby on Rails слой за слоем" Владимира Дементьева
Она же - Layered Design for Ruby on Rails Applications
Она же - "Слоёные рельсы" (моя интерпретация)
По Ruby на русском практически ничего не издаётся, а значит я просто обязана её прочитать эту книгу 🙌
Формат стандартный:
Читаем по одной главе в неделю, созваниваемся и обсуждаем:
- краткий обзор главы (будем меняться)
- пройдёмся по вопросам (они есть в книге)
- обсудим наши мысли и идеи от прочтения
Будем с Катей и Олесей со стрима по руби
Хотела "публичный" формат, но оставила эту идею на будущее. Буду просто постить по результатам )
Время - для сильных духом: в 8:00 по Москве, по вторникам. Старт - 2.09
Если хотите присоединиться, напишите в личку (@lightalloy) - созвонимся до старта, обсудим формат и ожидания.
#книги@anna_codes
#книжный_клуб@anna_codes
#layered_rails
❤14🔥9👍5❤🔥1🤓1
Вчера была первая встреча книжного клуба.
Пришлось выйти из дома в 7 утра, чтобы успеть к 8 :D
Классно пообщались ✨
Я решила не тратить время на созвоне на краткий пересказ главы, вместо этого сделала заметки в текстовом виде.
А на встрече уже соотнесли содержание главы и наш опыт, и обсудили.
Спасибо, тем, кто пришли. Встретимся в следующий вторник ❤️
Получилось обсудить такие темы:
- плюсы и минусы rails way, монолиты и микросервисы - взаимодействие, кол-во абстракций; переход от монолиту к микросервисам и обратно
- аналогия конвейера и станков для обработки запросов в приложении
- решения для дата-миграций и их особенности
- решения для отложенных задач, их + и - (sidekiq, rabbitmq, solidqueue и тд)
- scheduling отложенных задач (sidekiq-scheduler и тд vs запуск по крону) - плюсы и минусы подходов
- проблема "многоразового" выполнения отложенных задач в sidekiq, проблемы sidekiq-unique-jobs, идемпотентность отложенных задач
- к какому слою относятся фоновые задачи; вопрос с собеседований
- кейсы для использования "абстракций в бд" (например, аналог записи timestamps для нерельсовых приложений)
- дублирование логики валидации на уровне приложения и базы данных - ок или не ок (ок!)
- решения для мягкого удаления, их плюсы и минусы
Полезные ссылки:
maintenance_tasks - engine для управления дата-миграциями от shopify, в т.ч. через ui
rabbitMQ вместо sidekiq для отложенных задач
Как написать MVC веб-фреймворк на Ruby (для понимания, как устроены rails) (за впн)
Гайд по rack
#книги@anna_codes
#книжный_клуб@anna_codes
#layered_rails
Пришлось выйти из дома в 7 утра, чтобы успеть к 8 :D
Классно пообщались ✨
Я решила не тратить время на созвоне на краткий пересказ главы, вместо этого сделала заметки в текстовом виде.
А на встрече уже соотнесли содержание главы и наш опыт, и обсудили.
Спасибо, тем, кто пришли. Встретимся в следующий вторник ❤️
Получилось обсудить такие темы:
- плюсы и минусы rails way, монолиты и микросервисы - взаимодействие, кол-во абстракций; переход от монолиту к микросервисам и обратно
- аналогия конвейера и станков для обработки запросов в приложении
- решения для дата-миграций и их особенности
- решения для отложенных задач, их + и - (sidekiq, rabbitmq, solidqueue и тд)
- scheduling отложенных задач (sidekiq-scheduler и тд vs запуск по крону) - плюсы и минусы подходов
- проблема "многоразового" выполнения отложенных задач в sidekiq, проблемы sidekiq-unique-jobs, идемпотентность отложенных задач
- к какому слою относятся фоновые задачи; вопрос с собеседований
- кейсы для использования "абстракций в бд" (например, аналог записи timestamps для нерельсовых приложений)
- дублирование логики валидации на уровне приложения и базы данных - ок или не ок (ок!)
- решения для мягкого удаления, их плюсы и минусы
Полезные ссылки:
maintenance_tasks - engine для управления дата-миграциями от shopify, в т.ч. через ui
rabbitMQ вместо sidekiq для отложенных задач
Как написать MVC веб-фреймворк на Ruby (для понимания, как устроены rails) (за впн)
Гайд по rack
#книги@anna_codes
#книжный_клуб@anna_codes
#layered_rails
GitHub
GitHub - Shopify/maintenance_tasks: A Rails engine for queueing and managing data migrations.
A Rails engine for queueing and managing data migrations. - Shopify/maintenance_tasks
❤17👍7⚡2🔥1
Посмотрели keynote dhh с Railsworld? (не 6 часов!)
Как обычно, критикует сложность современной разработки и деплоя.
Rails, как end-to-end фреймворк, тоже стандартно.
Ругает Apple, продвигает Omarchy
Новое в Rails:
- поэтапные Active Jobs
- рендер markdown (
- локальный CI
- новый редактор Action Text Lexxy
- Action Push Native (пуши для мобилок)
Эти не нашла сейчас, но где-то были (если найдёте, скиньте):
- Active Record Tenating (гемчик от basecamp)
- Kamal Geo Proxy
Release Notes к Rails 8.1beta
Как обычно, критикует сложность современной разработки и деплоя.
Rails, как end-to-end фреймворк, тоже стандартно.
Ругает Apple, продвигает Omarchy
Новое в Rails:
- поэтапные Active Jobs
- рендер markdown (
format.md { render markdown: @page })- локальный CI
- новый редактор Action Text Lexxy
- Action Push Native (пуши для мобилок)
Эти не нашла сейчас, но где-то были (если найдёте, скиньте):
- Active Record Tenating (гемчик от basecamp)
- Kamal Geo Proxy
Release Notes к Rails 8.1beta
👍15🔥8🤔1
На этой неделе в книжном клубе обсудили вторую главу "слоёных рельсов" 😌
Темы получились такие:
- наш опыт работы с разными orm/без orm
- нормализованные и денормализованные данные - как хранить и валидировать
- sql и nosql субд, когда использовать
- куда девать валидации (модель, валидатор, форм-обжект, etc)
- допустимо ли использовать коллбеки и когда, что вместо них
- churn vs compexity, инструменты для их измерения и что делать с полученными данными
- явные и неявные интерфейсы в разных яп
Ссылки:
- Servactory - инструменты для организации кода, "новый взгляд на service object"
- jsonb_accessor - для работы с jsonb
- CAP и PALELC
- Breaking Up the Behemoth, Sandy Metz
роль хорошего дизайна и его отсутствия на разных этапах жизни приложения
- attractor - гем для метрик churn vs complexity
- rubycritic - тоже гем для метрик
#книжный_клуб@anna_codes
#layered_rails
Темы получились такие:
- наш опыт работы с разными orm/без orm
- нормализованные и денормализованные данные - как хранить и валидировать
- sql и nosql субд, когда использовать
- куда девать валидации (модель, валидатор, форм-обжект, etc)
- допустимо ли использовать коллбеки и когда, что вместо них
- churn vs compexity, инструменты для их измерения и что делать с полученными данными
- явные и неявные интерфейсы в разных яп
Ссылки:
- Servactory - инструменты для организации кода, "новый взгляд на service object"
- jsonb_accessor - для работы с jsonb
- CAP и PALELC
- Breaking Up the Behemoth, Sandy Metz
роль хорошего дизайна и его отсутствия на разных этапах жизни приложения
- attractor - гем для метрик churn vs complexity
- rubycritic - тоже гем для метрик
#книжный_клуб@anna_codes
#layered_rails
❤17
Прочитали и обсудили третью главу, там не так много информации, поэтому напишу про globalid (тоже тема из книги).
Знали про такую штуку?
Универсальный идентификатор для моделей, вида
Основной юзкейс - замена сериализации в отложенных джобах. Будет использоваться, если вы передадите в джобу ar-объект.
Вы этого даже не увидите, но работает так:
Создаётся объект:
Вместо десериализации - вытащит ar-объект через find:
find прямо прописан в геме в дефолтном локаторе, но можно написать свой (смотрите в ридми гема или в книге).
Круто, конечно, но по мне так лучше AR-объекты в джобы не передавать, а явно передать идентификатор и явно достать из бд (в стандартном случае).
Помните ещё в delayed_job можно было? Вообще не писать джобу, а сделать так:
(примеры из доки)
Или так:
А потом ловить ошибки, что у вас уже нет соответствующих записей на момент выполнения джобы.
Это вообще зло, есть соблазн для разработчиков лепить, не думая, а потом разгребать. Как-то выпиливала всё это с девту (потом ещё саму dj)
То же и с передачей ar-объектов.
Тот случай, когда явное лучше скрытого. GlobalID, может быть, для других случаев подойдёт? Расскажите, для каких, если пользуетесь.
И в целом что думаете по поводу явного/скрытого здесь?
#layered_rails #rails
#книжный_клуб@anna_codes
Знали про такую штуку?
Универсальный идентификатор для моделей, вида
gid://YourApp/Some::Model/id Основной юзкейс - замена сериализации в отложенных джобах. Будет использоваться, если вы передадите в джобу ar-объект.
Вы этого даже не увидите, но работает так:
Создаётся объект:
[3] pry(main)> gid = u.to_global_id
=> #<GlobalID:0x000074a394a41f58 @uri=#<URI::GID gid://practical-developer/User/12>>
Вместо десериализации - вытащит ar-объект через find:
[15] pry(main)> GlobalID::Locator.locate gid
User Load (0.6ms) SELECT "users".* FROM "users" WHERE "users"."id" = $1 LIMIT $2 [["id", 12], ["LIMIT", 1]]
=> #<User id: 12, apple_username:
find прямо прописан в геме в дефолтном локаторе, но можно написать свой (смотрите в ридми гема или в книге).
Круто, конечно, но по мне так лучше AR-объекты в джобы не передавать, а явно передать идентификатор и явно достать из бд (в стандартном случае).
Помните ещё в delayed_job можно было? Вообще не писать джобу, а сделать так:
(примеры из доки)
# without delayed_job
@user.activate!(@device)
# with delayed_job
@user.delay.activate!(@device)
Или так:
class Device
def deliver
# long running method
end
handle_asynchronously :deliver
end
device = Device.new
device.deliver
А потом ловить ошибки, что у вас уже нет соответствующих записей на момент выполнения джобы.
Это вообще зло, есть соблазн для разработчиков лепить, не думая, а потом разгребать. Как-то выпиливала всё это с девту (потом ещё саму dj)
То же и с передачей ar-объектов.
Тот случай, когда явное лучше скрытого. GlobalID, может быть, для других случаев подойдёт? Расскажите, для каких, если пользуетесь.
И в целом что думаете по поводу явного/скрытого здесь?
#layered_rails #rails
#книжный_клуб@anna_codes
GitHub
GitHub - rails/globalid: Identify app models with a URI
Identify app models with a URI. Contribute to rails/globalid development by creating an account on GitHub.
👍7❤2
Посоветуйте vps для пет-проектов/экспериментов.
Где хоститесь? У меня раньше был на линоде, отказалась от него.
Сейчас в России будет удобнее.
Где хоститесь? У меня раньше был на линоде, отказалась от него.
Сейчас в России будет удобнее.
❤1👍1