Category : golang

golang
Что нового в GoLand 2026.2

В статье разберём основные изменения GoLand 2026.2, а также расскажем, какие возможности для Go-разработки уже доступны в OpenIDE и чего ожидать от её предстоящего перехода на платформу 2026.2.GoLand 2026.2 помогает найти узкие места, снижающие производительность приложения, и оптимизировать его, а также без проблем модернизировать кодовую базу. В этой версии появилось новое окно Go Optimization, которое объединяет профилирование, escape-анализ и оптимизацию struct в единый рабочий процесс. Кро…

  • суббота, 25 июля 2026 г. в 00:00:10
golang
Observability в одном Go-бинарнике: как я собрал self-hosted без Kafka и Redis

Мне нужна была observability для собственных сервисов, и хотелось держать её у себя: логи ошибок — часто самые чувствительные данные в системе, и отдавать их наружу не хотелось. Официальный self-hosted-вариант знакомого стека — серьёзная инсталляция: приёмник, брокер, воркеры, кэш, отдельное аналитическое хранилище — в референсном docker-compose набегает под два десятка контейнеров. Для одного человека и нескольких проектов это несоразмерно: такое надо не только поднять, но и обновлять, чинить …

  • суббота, 25 июля 2026 г. в 00:00:08
golang
Проект: игра «Крестики-нолики», v.2

Привет, Хаброжители! У нас отличные новости для всех, кто хочет освоить Go или систематизировать свои знания. Мы открыли предзаказ на новую книгу Станислава Чернышева «Основы Go». Чтобы вы могли оценить подачу материала и глубину погружения, мы делимся с вами эксклюзивным отрывком. Первая версия игры была написана с использованием функций. Теперь же мы рассмотрим, как изменить кодовую составляющую проекта, распределив необходимый функционал по структурам, связанным с предметной областью. Если…

  • суббота, 25 июля 2026 г. в 00:00:07
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