Заметки AI инженера
18 subscribers
6 photos
25 links
Заметки про AI Engineering, Golang, Domain Driven Design, архитектуру и остальное.

https://igorlazarev.ru
https://github.com/strider2038
Download Telegram
Всем привет! Буду здесь публиковать заметки по языку Golang и IT в общем. Так же репостить интересные новости и статьи.
Выпустил новую версию генератора DI Container'а - библиотеку DIGEN v0.3

* (поломка обратной совместимости) Переработан раздел errorHandling в конфигурации для более тонкого контроля генерируемого кода обработки ошибок.
* (поломка обратной совместимости) Удалена опция external для определений сервисов. При изучении кода не увидел в ней необходимости. Поэтому решил убрать.
* ⚠️ Изменен способ передачи id сервиса в битовой карте. Теперь id генерируется в виде автоинкрементируемой константы. Это снизит количество конфликтов между различными ветками, т.к. числовые идентификаторы часто смещаются.
* Фикс дефекта. Теперь сервис помечается в битовой карте как проинициализированный только в том случае, если фабрика не вернула ошибку. В предыдущей версии логика могла приводить к панике при закрытии контейнера.
Мне кажется отличный пример того случая, когда вместо добавления комментария можно было сделать сам код более выразительным. Комментарий виден только в приписке к методу, а имя функции видно еще и в месте где она вызывается.

#чистыйкод #рефакторинг
Интересная тема заявлена на митапе

Транзакционность в DDD

Применение тактических паттернов DDD на практике неизбежно приводит к вопросам транзакционности. Как обеспечить согласованность данных, не нарушая границы агрегатов? В своем докладе расскажу, как я решаю эту проблему, разберу типичные ошибки и покажу, как правильно расставлять границы агрегатов для эффективной работы системы.
Forwarded from Evrone IT meetups
🚀 Митап по Go: Тактические паттерны DDD, weak pointers и операторы Kubernetes – 20 марта, 19:00

Программа митапа:

✔️ Применение тактических паттернов DDD на практике — Гонозов Дмитрий, Яндекс

Как обеспечить согласованность данных, не нарушая границы агрегатов? Дмитрий расскажет, как решает эту задачу в своей практике, разберет типичные ошибки и покажет, как правильно расставлять границы агрегатов для эффективной работы системы.

✔️ Разбор weak pointers в Go: механизм работы и влияние на управление памятью — Солдатенко Дмитрий, Ви.Tech

Go 1.24 принес изменения в работу с памятью: пакет weak был перемещён в публично доступные. Дмитрий объяснит, как устроены слабые указатели, когда их стоит использовать, а когда лучше выбрать другие подходы. Обсудим влияние на производительность и примеры из реальных проектов.

✔️ Разрабатываем операторы Kubernetes: как создать свои CRD — Михейкин Иван, Флант

Изучим, как разрабатывать операторы Kubernetes и проектировать пользовательские ресурсы (CRD), которые будут удобны как для пользователей, так и для автоматизации. Иван расскажет о том, как проектировать Conditions и Events, валидацию полей и соблюдение совместимости с IaC.

🧑🏻‍💻 Эксперт — Кирилл Кузин, Ви.Tech, Senior-разработчик на Go
🧑🏻‍💻 Модератор — Виталий Левченко,
Wildberries, engineering manager



🗓 20 марта, начало в 19:00 мск, Четверг

🌐 ОНЛАЙН

Ссылка на регистрацию

Партнер: Ви.Tech — это команда инженеров, которая строит IT для ВИ.ру — одной из крупнейших e-com компаний на рынке.

Для Go-разработчиков: свобода в архитектуре, сильная аналитика, высоконагруженные сервисы без легаси, возможность влиять на стек и research days.

Реклама ООО «Ви.Тех‎» erid: 2VfnxvLM4XS
Please open Telegram to view this post
VIEW IN TELEGRAM
Перевозил сайты на новый хостинг и заодно решил стряхнуть пыль с полок и заняться своим журналом. Предыдущая версия журнала поддерживалась с помощью статического генератора сайтов Jekyll. Моментами это было неудобно: нужно было тянуть зависимости на Ruby, периодически от security бота github прилетали оповещения об уязвимостях (хотя для локальной работы они вообще не критичны). Тем временем где-то в Golang телеграм каналах периодически мелькал Hugo.

Читать далее https://igorlazarev.ru/p/new-blog-life-with-hugo/
👍2
Microsoft переписывает компилятор TypeScript на языке Go

https://gitverse.ru/blog/news/595-microsoft-perepisyvaet-kompilyator-typescript-na-yazyke-go

Настало время интересных историй под вечер пятницы 😊
👍1
Nullable или не nullable?

Пожалуй, одна из самых типичных проблем при составлении схем данных - стоит ли объявлять атрибуты с null-значениями? Стоит ли все атрибуты всегда делать nullable или это может привести к неприятным последствиям? В этой статье я постараюсь рассмотреть возможные проблемы nullable-атрибутов.

Читать далее: https://igorlazarev.ru/p/nullable-or-not-nullable/
👍2
Багфикс-релиз digen v0.3.1
https://github.com/strider2038/digen/releases/tag/v0.3.1

исправлено
* убран лишний префикс в версии приложения v при установке приложения через go install
* поправлено генерирование фабричного метода в существующем файле, когда опция factories.returnError установлена в false
👍4