Category : golang

golang
Надёжная асинхронная коммуникация: повторы, дубликаты и dead letter queues

Представим обычную обработку заказа. Сервис заказов публикует событие order.created. Сервис склада получает его и резервирует товар в PostgreSQL. После успешной транзакции обработчик должен отправить RabbitMQ подтверждение (Ack), чтобы broker удалил сообщение из queue.Но процесс может остановиться после записи в PostgreSQL и до отправки Ack. RabbitMQ не знает, успел ли сервис зарезервировать товар. Broker видит только неподтверждённое сообщение, поэтому доставляет его ещё раз. С точки зрения до…

  • пятница, 24 июля 2026 г. в 00:00:10
golang
Document Driven Development: превращаем хаос разработки в порядок с помощью TypeSpec и не только

Всем привет! Меня зовут Егор Гурин и я разработчик в компании MTC Web Services. Работаю в стриме, который занимается разработкой контактного центра МТС. Практически любые обращения клиентов в компанию, будь то неработающий интернет или вопрос по заказу в интернет-магазине, проходят через нас. Продукт большой, у нас несколько команд и множество интерфейсов интеграции как между самими командами, так и с внешними вендорами, поэтому не согласованные вовремя контракты могут привести не просто к поте…

  • пятница, 24 июля 2026 г. в 00:00:09
golang
Почему AI-агенту недостаточно репозитория: архитектура как общее представление системы

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

  • четверг, 23 июля 2026 г. в 00:00:12
golang
Как я собрал корпоративного AI‑ассистента в Mattermost для девопс‑задач

Расскажу, как за несколько месяцев из простого пайплайна для решения багов с помощью LLM вырос полноценный AI‑ассистент, который живёт прямо в нашем корпоративном Mattermost, умеет сам ходить в десятки внешних систем (GitLab, Jira, Kubernetes, Prometheus и другие), и работает целиком внутри нашего контура — без обращений к внешним сервисам. Все запросы к моделям идут через LLM гейтвей за которым стоит несколько виртуалок с видеокартами для инференса. Сразу скажу что ассистент использовался при …

  • четверг, 23 июля 2026 г. в 00:00:11
golang
Как мы заменили Teradata RTIM: миграция правил с использованием AST

Меня зовут Сигида Алексей, я старший архитектор по развитию технологий CVM (Customer Value Management) в компании Мегафон. Много лет решения о том, что показать клиенту, у нас принимал Teradata RTIM (Real-Time Interaction Manager) - движок real-time маркетинга. Если вы когда-нибудь получали смс-сообщение от Мегафон или открывали личный кабинет, то с большой долей вероятности предложение было подобрано этой системой. Вы заходите на сайт или в приложение, и за миллисекунды решается, какое предлож…

  • среда, 22 июля 2026 г. в 00:00:22
golang
Я написал свой self-hosted MDM для смешанного парка корпоративных устройств

Полгода назад я пришёл в новую организацию, и мне достался парк машин. Десяток на Windows, несколько маков, пачка линуксовых ноутов у разработчиков. Невыносимым было другое. Навешанные до меня политики и блокировки со стороны ИБ связывали руки так, что здраво администрировать домен было попросту нельзя: любое рутинное действие упиралось в чужие ограничения. Тогда я и полез искать решение, которое помогло бы мне нормально админить этот парк.Готового, что легло бы на мою ситуацию, я так и не нашё…

  • среда, 22 июля 2026 г. в 00:00:20
golang
Объективно грейдим разработчика по коду

Эвристическое вычисление на основе 800-1000 правил-метрикКак мы сегодня измеряем работу разработчиков: velocity, story points, lead time, cycle time, число PR и закрытых тасок. Строим красивые дашборды, считаем DORA-метрики, прогнозируем сроки, оцениваем загрузку команд.А вот измерение инженерных решений на зачаточном уровне. В лучше случае ADR и запись в трекере техдолга. Чаще — вообще ничего.Существующая оценка качества инженерии субъективна. Обычно это мнение тимлида с 3–5 годами опыта в од…

  • среда, 22 июля 2026 г. в 00:00:20
golang
YaGo: как я хотел бесплатный self-hosted Tavily API, а в итоге воскресил YaCy

Всё началось не с мечты про «поисковик нового поколения». Мне понадобился быстрый self-hosted Tavily-compatible API для собственных рабочих и личных AI-решений: без оплаты за каждый запрос, без внешнего сервиса в обязательной цепочке и с индексом, содержимое которого контролирую я сам.Тут я вспомнил про YaCy. Когда-то я уже поднимал его ноду. Идея мне нравилась, а реализация - заметно меньше: Java, тяжёлая машина и примерно шесть секунд ожидания ответа на моей тогдашней установке. Для человека,…

  • понедельник, 20 июля 2026 г. в 00:00:06
golang
Архитектура «Гегелло», или как мы создали собственную платформу для анализа состояния оборудования

Всем привет! Меня зовут Юрий, я руковожу группой прикладной разработки в департаменте мультивендорных решений и экспертизы YADRO. Мы занимаемся развитием собственного сервисного инструмента «Гегелло», который позволяет работать с диагностическими данными различного оборудования и визуализировать проблемы в системах. Какую задачу решает платформа, почему это не просто «Grafana у нас дома» и что в основе архитектуры «Гегелло» — читайте в статье.Предпосылки появления «Гегелло»Мой коллега Артём Сми…

  • суббота, 18 июля 2026 г. в 00:00:11