Посмотрели 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
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
❤10👍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
Ещё еда, мёрч за сториз (хотя я исключительно от чистого сердца пощу, конечно), и поспать в поезде - бесценно.
Нетворкинг не в руби-сообществе (или не в моих сообществах) сложно даётся, поэтому почти нет.
Ну в Ярик я бы поездила (на гибрид 😁) Надеюсь, будет ещё что-нибудь интересное.
В четверг ещё на митап от сбера сходим.
Как у вас в провинции? Проводят что-нибудь?
❤11👀3