Анна Буянова (Anna Codes) – Telegram
Анна Буянова (Anna Codes)
401 subscribers
82 photos
1 video
1 file
149 links
Бэкенд-разработчица (Ruby). Иногда делаю образовательные проекты.

Личный канал о разработке ПО, программировании (на Ruby и не только), образовании в it.

лс: @lightalloy
Download Telegram
Азалия @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
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
17👍72🔥1
Посмотрели keynote dhh с Railsworld? (не 6 часов!)

Как обычно, критикует сложность современной разработки и деплоя.
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
17
Прочитали и обсудили третью главу, там не так много информации, поэтому напишу про globalid (тоже тема из книги).

Знали про такую штуку?

Универсальный идентификатор для моделей, вида 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
👍72
Зашёл воркшоп.
Даже сделала все домашки, что бывает нечасто 🌚

#DDD
12🔥11👍9
Посоветуйте vps для пет-проектов/экспериментов.
Где хоститесь? У меня раньше был на линоде, отказалась от него.
Сейчас в России будет удобнее.
1👍1
Еду в мск на рубирашу 😌
Увидимся?
❤‍🔥16👍7🤩4💔32
Добежала )
👍35🔥24❤‍🔥94💯1
Вчера после встречи code_sisters случайно спустилась на -1 этаж в тц, а там Depst. Делала им интернет-магазин в 2011 , нахлынули воспоминания 😁

Судя по сайту, переехали на тильду (хотя выглядит один в один, как тогда). Кейс до сих пор на сайте Эврон.

Бывают у вас такие "встречи" офлайн?
❤‍🔥162🔥1
Сегодня участвую в такой подборке 😌
🔥6
Подборка каналов об ИТ, радиоэлектронике и смежных областях

💙 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
Мы или не мы? 😁

Открыла "Путь Джедая" Дорофеева
💯12😁5💔3🤓3
💎 RubyRussia 💎

Происходило всякое, и я так и не написала про конфу.

Я в восторге 😁 Хорошо, что несмотря на "смерть руби" есть возможность сходить на такое мероприятие.
Всё-таки у руби-сообщества своя атмосфера и энергия. Получилось подзарядиться ❤️

Много с кем получилось пообщаться, хоть и не со всеми (если что, пишите в личку :)

Нужны ли конфы по руби? Вот Дима хорошо написал (эмоционально!)

И да, и нет. Мне нужны, потому на конфу общего характера я фиг доеду (пока что), а вот на рубишную мне точно надо.
Может быть стоит постепенно менять формат или ешё что-то, тут оргам виднее. Пока я просто благодарна за то, что проводят.

Как вам конфа? Что думаете?
29
Еее, сорокет на подходе 😁

Каждый год хочу что-то сделать на день рождения (митап/воркшоп/да хоть стрим), и всё никак.
Но всякое интересное происходит, напишу.

За открытку спасибо @kopylovvlad
34🔥6
Я на неделе созвонилась с Линдой Лиукас!
Обсудили, умер ли руби, хайп и его отсутствие вокруг языков программирования, локальные сообщества, наличие времени, когда у тебя мелкие дети 😁. Как долго живёт наша работа, когда мы пишем код (недолго) vs когда проектируем детские площадки (долго).

Линда спроектировала детскую площадку в Хельсинки, на которой дети могут изучить концепции computer science.
Написала книги на ту же тему, оказывается уже есть целая серия.
На русском есть только Hello Ruby, читали с детьми?

Также Линда основала railsgirls , но не занималась этим проектом уже несколько лет. Впрочем, как и я. (А мы проводили воркшоп railsgils в спб в 2019!)
Интересно, что какие-то мероприятия ещё проводятся. Сама уже хочу другой формат, увидим.

Как получилось созвониться:

Я подписана на рассылку Линды (можно прожать "no thanks" и прочитать без подписки). Так увидела, что Линда открыла слоты в календаре, и записалась. Правда, с первого раза не получилось, но я натренировалась на работе. В итоге получилось перенести и поговорить💪

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

А вы бы что спросили? 😏
🔥307🤔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
👍1411❤‍🔥4🤩1
Ждём ruby 4.0 в этом году
отсюда

upd. А вот тут был первый анонс
🔥248