Прочитали и обсудили третью главу, там не так много информации, поэтому напишу про 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
Forwarded from Данные решают
Подборка каналов об ИТ, радиоэлектронике и смежных областях
💙 LoFiCoder — вместе превращаем науку в код. От снежинки до сознания — всё, можно закодировать и запустить. Вычислительная природа реальности, пост за постом. + полезные инструменты для вашей учёбы или работы.
💙 FPGA-Systems Events — канал для тех, кто знает што такое vhdl и veriog. Новостной канал FPGA / RTL / Verification / ASIC комунити FPGA-Systems.
💙 «Данные решают» — канал от ИРИТ-РТФ, где специалисты рассказывают об IT, AI и радиоэлектронике без воды. Экспертное мнение, тренды, реальные истории успехов и провалов, а также возможности обучения — всё для вашего роста.
💙 Дорога в ИТ — это ваш гид в мир технологий от Татьяны, HR-эксперта с 8-летним опытом, специализирующейся на карьере в IT. Здесь вы получите практические советы, актуальные тренды, вдохновляющие истории и поддержку на пути к профессии в IT — потому что за кодом стоят живые люди со своими мечтами и интересами.
💙 Computer Vision News — в канале публикуются новости о передовых технологиях в компьютерном зрении, а также информация о соревнованиях по ML. Автор канала — Дунаева Александра, старший преподаватель кафедры высокопроизводительных технологий УрФУ и методист ЦРИТО МФТИ.
💙 Симуляторы — VR, цифровые двойники, ИИ: разбираем сложные темы просто и понятно. Эксперт канала — Дмитрий Денисов, к.т.н. Присоединяйтесь, чтобы узнать больше о будущем технологий.
💙 Анна Буянова (Anna Codes) — канал бэкенд-разработчицы о программировании (на Ruby и не только), личном опыте работы и обучения, организации образовательных инициатив.
💙 Андрей Созыкин — канал директора Учебно-научного центра «Искусственный интеллект» радиофака УрФУ Андрея Созыкина. Автор пишет о компьютерных сетях, базах данных, Python и машинном обучении.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥4👏1
💎 RubyRussia 💎
Происходило всякое, и я так и не написала про конфу.
Я в восторге 😁 Хорошо, что несмотря на "смерть руби" есть возможность сходить на такое мероприятие.
Всё-таки у руби-сообщества своя атмосфера и энергия. Получилось подзарядиться ❤️
Много с кем получилось пообщаться, хоть и не со всеми (если что, пишите в личку :)
Нужны ли конфы по руби? Вот Дима хорошо написал (эмоционально!)
И да, и нет. Мне нужны, потому на конфу общего характера я фиг доеду (пока что), а вот на рубишную мне точно надо.
Может быть стоит постепенно менять формат или ешё что-то, тут оргам виднее. Пока я просто благодарна за то, что проводят.
Как вам конфа? Что думаете?
Происходило всякое, и я так и не написала про конфу.
Я в восторге 😁 Хорошо, что несмотря на "смерть руби" есть возможность сходить на такое мероприятие.
Всё-таки у руби-сообщества своя атмосфера и энергия. Получилось подзарядиться ❤️
Много с кем получилось пообщаться, хоть и не со всеми (если что, пишите в личку :)
Нужны ли конфы по руби? Вот Дима хорошо написал (эмоционально!)
И да, и нет. Мне нужны, потому на конфу общего характера я фиг доеду (пока что), а вот на рубишную мне точно надо.
Может быть стоит постепенно менять формат или ешё что-то, тут оргам виднее. Пока я просто благодарна за то, что проводят.
Как вам конфа? Что думаете?
❤29
Еее, сорокет на подходе 😁
Каждый год хочу что-то сделать на день рождения (митап/воркшоп/да хоть стрим), и всё никак.
Но всякое интересное происходит, напишу.
За открытку спасибо @kopylovvlad
Каждый год хочу что-то сделать на день рождения (митап/воркшоп/да хоть стрим), и всё никак.
Но всякое интересное происходит, напишу.
За открытку спасибо @kopylovvlad
❤34🔥6
Я на неделе созвонилась с Линдой Лиукас!
Обсудили, умер ли руби, хайп и его отсутствие вокруг языков программирования, локальные сообщества, наличие времени, когда у тебя мелкие дети 😁. Как долго живёт наша работа, когда мы пишем код (недолго) vs когда проектируем детские площадки (долго).
Линда спроектировала детскую площадку в Хельсинки, на которой дети могут изучить концепции computer science.
Написала книги на ту же тему, оказывается уже есть целая серия.
На русском есть только Hello Ruby, читали с детьми?
Также Линда основала railsgirls , но не занималась этим проектом уже несколько лет. Впрочем, как и я. (А мы проводили воркшоп railsgils в спб в 2019!)
Интересно, что какие-то мероприятия ещё проводятся. Сама уже хочу другой формат, увидим.
Как получилось созвониться:
Я подписана на рассылку Линды (можно прожать "no thanks" и прочитать без подписки). Так увидела, что Линда открыла слоты в календаре, и записалась. Правда, с первого раза не получилось, но я натренировалась на работе. В итоге получилось перенести и поговорить💪
Надеюсь, ещё появится такая возможность - обозначили на звонке. В следующий раз хочу обсудить образовательные проекты более конкретно.
А вы бы что спросили? 😏
Обсудили, умер ли руби, хайп и его отсутствие вокруг языков программирования, локальные сообщества, наличие времени, когда у тебя мелкие дети 😁. Как долго живёт наша работа, когда мы пишем код (недолго) vs когда проектируем детские площадки (долго).
Линда спроектировала детскую площадку в Хельсинки, на которой дети могут изучить концепции computer science.
Написала книги на ту же тему, оказывается уже есть целая серия.
На русском есть только Hello Ruby, читали с детьми?
Также Линда основала railsgirls , но не занималась этим проектом уже несколько лет. Впрочем, как и я. (А мы проводили воркшоп railsgils в спб в 2019!)
Интересно, что какие-то мероприятия ещё проводятся. Сама уже хочу другой формат, увидим.
Как получилось созвониться:
Я подписана на рассылку Линды (можно прожать "no thanks" и прочитать без подписки). Так увидела, что Линда открыла слоты в календаре, и записалась. Правда, с первого раза не получилось, но я натренировалась на работе. В итоге получилось перенести и поговорить💪
Надеюсь, ещё появится такая возможность - обозначили на звонке. В следующий раз хочу обсудить образовательные проекты более конкретно.
А вы бы что спросили? 😏
🔥30❤7🤔1
📚 Апдейт по книжному клубу 📚
Всё хорошо, встречаемся, обсуждаем. Писать по каждой главе не успеваю, к сожалению.
Прочитали 9 из 13 глав и одну дополнительную.
На одну из встреч к нам приходил автор! (Владимир Дементьев). Обсудили конечные автоматы (несмотря на то, что автор не Кирилл Мокевнин 😁) и немного книгу в целом.
Осталось много вопросов - надеюсь, что получится позвать ещё раз!
Темы получились такие:
- особенности применения конечных автоматов, если смена статуса наступает по наступлению времени, а не по конкретному событию
- массовая смена статусов vs конечные автоматы (влияние на производительсность, как разрулить)
- логирование смены статусов (paper_trail, audit_log, альтернативные решения)
- workflow вместо конечных автоматов, как более универсальный инструмент
- workflow для ии
- temporal.io (для "устойчивых" workflow - с возможностью планирования, восстановления с момента прерывания и тд)
- аудит проектов вида "стартапы на коленке" и легаси-проектов, внесение изменений
- чек-лист в процессе работы над фичей и над проектом в целом (о каких слоях и абстракциях подумать)
- меняются ли восприятие кода и развивается ли чувство прекрасного в процессе чтения книги
Ссылки:
Слайды к докладу "Rails as a piece of cake"
Код к книге
Чеклист от марсиан
Гем для стейт-машин со встроенным логированием
Анонс rails 8.1 (с поэтапными active-джобами)
Для тех, кто только присоединился: сейчас клуб проходит в закрытом формате, в дальнейшем буду пробовать разные варианты.
О клубе - https://news.1rj.ru/str/anna_codes/270
#книжный_клуб@anna_codes
#layered_rails
Всё хорошо, встречаемся, обсуждаем. Писать по каждой главе не успеваю, к сожалению.
Прочитали 9 из 13 глав и одну дополнительную.
На одну из встреч к нам приходил автор! (Владимир Дементьев). Обсудили конечные автоматы (несмотря на то, что автор не Кирилл Мокевнин 😁) и немного книгу в целом.
Осталось много вопросов - надеюсь, что получится позвать ещё раз!
Темы получились такие:
- особенности применения конечных автоматов, если смена статуса наступает по наступлению времени, а не по конкретному событию
- массовая смена статусов vs конечные автоматы (влияние на производительсность, как разрулить)
- логирование смены статусов (paper_trail, audit_log, альтернативные решения)
- workflow вместо конечных автоматов, как более универсальный инструмент
- workflow для ии
- temporal.io (для "устойчивых" workflow - с возможностью планирования, восстановления с момента прерывания и тд)
- аудит проектов вида "стартапы на коленке" и легаси-проектов, внесение изменений
- чек-лист в процессе работы над фичей и над проектом в целом (о каких слоях и абстракциях подумать)
- меняются ли восприятие кода и развивается ли чувство прекрасного в процессе чтения книги
Ссылки:
Слайды к докладу "Rails as a piece of cake"
Код к книге
Чеклист от марсиан
Гем для стейт-машин со встроенным логированием
Анонс rails 8.1 (с поэтапными active-джобами)
Для тех, кто только присоединился: сейчас клуб проходит в закрытом формате, в дальнейшем буду пробовать разные варианты.
О клубе - https://news.1rj.ru/str/anna_codes/270
#книжный_клуб@anna_codes
#layered_rails
👍14❤11❤🔥4🤩1
🔥24❤8
📚 Книжный 📚
Дочитали "Слоёные рельсы" в клубе.
Тем временем, вышло второе издание (что изменилось - в комментариях)
Хороший опыт, хоть и было тяжело встречаться в 8 утра 😌
Было ценно пообщаться, узнать, "как у других".
У всех участников приличный рубишный опыт, поэтому книга не открыла ничего радикально нового, но позволила систематизировать знания, узнать об альтернативных решениях.
Где-то лишний раз подумаем о слоях, когда пора ввести абстракцию и в каком виде.
Спасибо, что поддержали инициативу!
О формате - [1] [2]
В следующий раз попробую открытый книжный клуб, чтобы можно было присоединиться в процессе или на отдельные встречи.
Но уже не в этом году, пока будет перерыв.
Что бы почитали? Что сейчас читаете?
#книжный_клуб@anna_codes
#layered_rails
Дочитали "Слоёные рельсы" в клубе.
Тем временем, вышло второе издание (что изменилось - в комментариях)
Хороший опыт, хоть и было тяжело встречаться в 8 утра 😌
Было ценно пообщаться, узнать, "как у других".
У всех участников приличный рубишный опыт, поэтому книга не открыла ничего радикально нового, но позволила систематизировать знания, узнать об альтернативных решениях.
Где-то лишний раз подумаем о слоях, когда пора ввести абстракцию и в каком виде.
Спасибо, что поддержали инициативу!
О формате - [1] [2]
В следующий раз попробую открытый книжный клуб, чтобы можно было присоединиться в процессе или на отдельные встречи.
Но уже не в этом году, пока будет перерыв.
Что бы почитали? Что сейчас читаете?
#книжный_клуб@anna_codes
#layered_rails
❤11👍8🔥4
В субботу съездили на ПСБ-конфу про ит-тренды.
Что запомнилось:
GitOps от @bodrcoder: репо, как единый источник знаний о системе, начиная с требований.
(но мы хотели больше про источник знаний об инфре)
Из этого доклада хочу asyncapi, узнала о нем о воркшопе по DDD. Правда, нет инструментов для руби (Игорь Симдянов обещал на пенсии сделать). + Это тема больше для schema-first, а я привыкла к code first (как с rswag) - не хочется руками писать схему. Но такая дока для асинхронных коммуникаций была бы супер.
Воркшоп по Agile:
Наша команда так и не приступила к задаче в течение 5 спринтов, т.к. мешали внешние обстоятельства (всё, как в жизни 😁).
Много нового не узнала, но весело )
Прежний Agile мёртв
Очень вдохновлённый скрам-мастер с рассказом про спринты за 1 день - днём ставим задачи, ночью команда агентов работает, утром проверяем.
Правда, не учёл в спринте время на проверку и доработку, хотя упоминал это.
Был ещё воркшоп по ИИ, но не успели записаться.
Подробнее у Димы @occasional_notes
Ещё еда, мёрч за сториз (хотя я исключительно от чистого сердца пощу, конечно), и поспать в поезде - бесценно.
Нетворкинг не в руби-сообществе (или не в моих сообществах) сложно даётся, поэтому почти нет.
Ну в Ярик я бы поездила (на гибрид 😁) Надеюсь, будет ещё что-нибудь интересное.
В четверг ещё на митап от сбера сходим.
Как у вас в провинции? Проводят что-нибудь?
Что запомнилось:
GitOps от @bodrcoder: репо, как единый источник знаний о системе, начиная с требований.
(но мы хотели больше про источник знаний об инфре)
Из этого доклада хочу asyncapi, узнала о нем о воркшопе по DDD. Правда, нет инструментов для руби (Игорь Симдянов обещал на пенсии сделать). + Это тема больше для schema-first, а я привыкла к code first (как с rswag) - не хочется руками писать схему. Но такая дока для асинхронных коммуникаций была бы супер.
Воркшоп по Agile:
Наша команда так и не приступила к задаче в течение 5 спринтов, т.к. мешали внешние обстоятельства (всё, как в жизни 😁).
Много нового не узнала, но весело )
Прежний Agile мёртв
Очень вдохновлённый скрам-мастер с рассказом про спринты за 1 день - днём ставим задачи, ночью команда агентов работает, утром проверяем.
Правда, не учёл в спринте время на проверку и доработку, хотя упоминал это.
Был ещё воркшоп по ИИ, но не успели записаться.
Подробнее у Димы @occasional_notes
Ещё еда, мёрч за сториз (хотя я исключительно от чистого сердца пощу, конечно), и поспать в поезде - бесценно.
Нетворкинг не в руби-сообществе (или не в моих сообществах) сложно даётся, поэтому почти нет.
Ну в Ярик я бы поездила (на гибрид 😁) Надеюсь, будет ещё что-нибудь интересное.
В четверг ещё на митап от сбера сходим.
Как у вас в провинции? Проводят что-нибудь?
❤12👀3
У Сэнди интересный формат обучения - peer-группы. Наверное, тренд в образовании.
Сам курс платный, темы на основе её книги POODR
Можно собирать группы под свои учебные цели.
Но для меня это вечная дилемма - собирать или просто самой учиться. Первое куда более затратно по ресурсам, т.к. если организовывать, то надо делать нормально.
Но и эффект лучше.
Участвовали в учебных группах? Понравилось? Насколько хаотично или организованно было?
Сам курс платный, темы на основе её книги POODR
Можно собирать группы под свои учебные цели.
Но для меня это вечная дилемма - собирать или просто самой учиться. Первое куда более затратно по ресурсам, т.к. если организовывать, то надо делать нормально.
Но и эффект лучше.
Участвовали в учебных группах? Понравилось? Насколько хаотично или организованно было?
👍3👀3
Ну что, теперь про митап от сбера?
Успела на два доклада - "Монолит в разрезе" и "Как переписать всё (на го), не привлекая внимания".
Монолит в разрезе
Как распиливали сервис аутентификации (и авторизации?) на микросервисы, делали 5 лет, ещё не закончили.
Собрали разные проблемы, использовали антипаттерны, было интересно послушать.
Нас с Аней поразило то, что по 10 команд работают над одним сервисом. Именно с личной точки зрения - не хотелось бы работать над такой маленькой частью системы.
В то же время коммуникаций и связанных с ними проблем - вагон. Но в этом плане и так могу понять, хоть и масштаб совсем не тот.
Но зато хайлоад vs сидим в песочнице - можно порефлексировать на тему.
Как переписать всё (на го), не привлекая внимания
Докладчик в основном рассказывал вынужденный переход с оракла на postgres и связанные с этим проблемы, тоже норм послушать.
Подробнее опять у Димы - https://news.1rj.ru/str/occasional_notes/9
Спасибо Сберу за мероприятие, пойдём ещё )
Успела на два доклада - "Монолит в разрезе" и "Как переписать всё (на го), не привлекая внимания".
Монолит в разрезе
Как распиливали сервис аутентификации (и авторизации?) на микросервисы, делали 5 лет, ещё не закончили.
Собрали разные проблемы, использовали антипаттерны, было интересно послушать.
Нас с Аней поразило то, что по 10 команд работают над одним сервисом. Именно с личной точки зрения - не хотелось бы работать над такой маленькой частью системы.
В то же время коммуникаций и связанных с ними проблем - вагон. Но в этом плане и так могу понять, хоть и масштаб совсем не тот.
Но зато хайлоад vs сидим в песочнице - можно порефлексировать на тему.
Как переписать всё (на го), не привлекая внимания
Докладчик в основном рассказывал вынужденный переход с оракла на postgres и связанные с этим проблемы, тоже норм послушать.
Подробнее опять у Димы - https://news.1rj.ru/str/occasional_notes/9
Спасибо Сберу за мероприятие, пойдём ещё )
❤16❤🔥6🌚4
В декабре вышло много рубишных подкастов.
🎙 Heavy Tech: Владимир Дементьев: Почему «Злые марсиане» не нанимают мидлов? | саммари
🎙 #173 Euruko 2025 - Ruby 4 | AI в Ruby | Новинки Ruby | RubyLLM | Rails в вашем браузере | саммари
🎙 OR: Мёртв ли Ruby? - выпуск 20 #RubyRussia 2025
🎙 OR: Зачем бизнесу Ruby в 2025? - выпуск 21 #RubyRussia 2025
🎙 OR: Куда уйти из Ruby в 2025? - выпуск 22 #RubyRussia 2025
Слушали что-нибудь?
Я пока нет, немного придавило работой. Скорее всего буду, саммари показались интересными 😏
🎙 Heavy Tech: Владимир Дементьев: Почему «Злые марсиане» не нанимают мидлов? | саммари
🎙 #173 Euruko 2025 - Ruby 4 | AI в Ruby | Новинки Ruby | RubyLLM | Rails в вашем браузере | саммари
🎙 OR: Мёртв ли Ruby? - выпуск 20 #RubyRussia 2025
🎙 OR: Зачем бизнесу Ruby в 2025? - выпуск 21 #RubyRussia 2025
🎙 OR: Куда уйти из Ruby в 2025? - выпуск 22 #RubyRussia 2025
Слушали что-нибудь?
Я пока нет, немного придавило работой. Скорее всего буду, саммари показались интересными 😏
YouTube
Владимир Дементьев: Почему «Злые марсиане» не нанимают мидлов?
В этом выпуске Heavy Tech Podcast Сергей Удалов беседует с Владимиром Дементьевым — автором книги "Layered Design for Ruby on Rails", спикером и разработчиком из компании "Злые марсиане". Разговор охватывает широкий спектр тем: от найма и собеседований до…
👍16🌚1