Category : golang

golang
Как я научил AI анализировать AI: observability для LLM-агентов с Langfuse

Пролог: Чёрный ящик современных AI-агентовВы когда-нибудь задумывались, что на самом деле происходит внутри AI-ассистента, когда он пишет код за вас? Вот вы даёте промпт в Cursor: "Исправь баг в функции авторизации" — и через 20 секунд получаете правку. Но что было в эти 20 секунд?Реальность такова: мы не знаем.Современные AI-агенты — это чёрные ящики. Они читают файлы, выполняют команды, вызывают API, думают (да, у них есть фаза "мышления"), ошибаются и иногда зацикливаются. Но…

  • пятница, 23 января 2026 г. в 00:00:13
golang
Разработчики всё ещё путают JWT, JWKS, OAuth2 и OpenID Connect — разбираем на примерах. Часть 2

Мы продолжаем наше погружение в мир аутентификации и будем разбирать всё на простых примерах с практикой на Go. В первой части статьи мы поговорили о том, как устроен JWT, зачем нам refresh- и access-токены и почему в распределённых системах нам необходимо использовать асимметричные алгоритмы подписи. Схема проверки подписи токена в распределённой системеТеперь пришло время двигаться дальше и познакомиться с тем, что стоит поверх JWT: JWKS, OAuth 2.0, OIDC.JWKSВспомним наш пример с отелем: у на…

  • пятница, 23 января 2026 г. в 00:00:12
golang
Результаты огромного опроса разработчиков на Go за 2025 год

Команда Go for Devs подготовила перевод отчёта команды Go о результатах Go Developer Survey 2025 (опрос проходил в сентябре 2025, публикация — 21 января 2026). Главные сигналы: разработчикам не хватает понятных best practices и более «современных» возможностей в языке и встроенных инструментах; ИИ-инструменты уже стали повседневностью, но качество и предсказуемость всё ещё подводят; а справка go по базовым подкомандам вроде go build, go run и go mod слишком часто вынуждает лезть в документацию.…

  • пятница, 23 января 2026 г. в 00:00:12
golang
Как перестать писать WHERE tenant_id и отдать безопасность базе (PostgreSQL RLS в Go)?

В одном из прошлых проектов случился «кошмар техлида»: в суматохе хотфикса было забыто добавление фильтра WHERE tenant_id = ? в одну из ручек API. В итоге один клиент увидел отчеты другого. Все быстро откатили, но я навсегда запомнил то холодное чувство в животе.Когда начали проектировать архитектуру следующего проекта, я понял, что полагаться на внимательность разработчиков на код-ревью - это тупик. Рано или поздно кто-то устанет, ошибется, и данные снова протекут.Искал способ гарантировать из…

  • четверг, 22 января 2026 г. в 00:00:07
golang
Книга: «Go на практике. 2-е изд.»

Привет, Хаброжители!И так, вы освоили азы Go, что дальше? Чтобы создавать надежные и готовые к эксплуатации Go-приложения, вам нужно научиться реализовывать конкурентность, налаживать сетевые взаимодействия, получать доступ к файлам, использовать такие нативные протоколы передачи данных, как gRPC и TCP/REST, а также разбираться во множестве практических нюансов. В этой книге приводятся готовые решения, которые можно незамедлительно применить в повседневной работе.Здесь вы найдете описание десят…

  • среда, 21 января 2026 г. в 00:00:07
golang
Атомарные операции против мьютексов в Go: когда скорость становится проблемой

Команда Go for Devs подготовила перевод статьи о том, действительно ли атомарные операции всегда быстрее и лучше мьютексов в конкурентном коде. Автор разбирает реальные сценарии, показывает бенчмарки и объясняет, почему рост производительности часто оборачивается ростом сложности и рисков для корректности.TL;DRВведение Механизмы конкурентного доступа Реализации: простой пример Функциональные сложности: рост сложностиШпаргалка по сценариям использованияИтоговые мысли Недавно при ревью pull r…

  • среда, 21 января 2026 г. в 00:00:07
golang
Как я отказался от FFmpeg и написал FLAC энкодер за 500 строк на Go

TL;DR: Надоело тащить 80 МБ FFmpeg ради конвертации аудио. Написал конвертер на чистом Go - один бинарник 5 МБ, без зависимостей, работает на любой платформе. Бонусом - реализовал FLAC энкодер с нуля, потому что готового pure Go решения не существовало.Зачем это всеУ меня есть проект music_recognition — распознавание музыки через Shazam. Для работы нужно конвертировать аудио между форматами. Стандартное решение — FFmpeg.Проблема: FFmpeg умеет все. Транскодировать 4K, стримить по RTMP, делать цв…

  • вторник, 20 января 2026 г. в 00:00:12
golang
Protobuf как контракт: spec‑first валидация с protovalidate (часть 2)

В первой части мы разобрали protoc-gen-validate и spec-first подход к валидации. Я обещал рассказать про protovalidateну и вот, держите :)И самый первый вопрос конечно, а зачем вообще появился protovalidate, если PGV уже есть и работает?Ах да, мини реклама моего телеграмм канала по Go && gRPC Проблема, которую решает protovalidateК примеру, вас микросервисная архитектура, где бэкенд на Go, ML-пайплайн на Python, а мобильный клиент генерирует код на swift и kotlin flutter и весь этот зоо…

  • вторник, 20 января 2026 г. в 00:00:11
golang
Что нового в Go 1.26

Go 1.26 выходит в феврале, и на мой взгляд это один из самых насыщенных релизов за всю историю языка. Давай разберёмся что нас ждёт, от изменений в языке до оптимизаций runtime и новых инструментов. Статья основана на официальных release notes и исходном коде Go. Это не исчерпывающий список, за полной информацией обращайся к официальной документации.Типобезопасная проверка ошибокНовая функция errors.AsType это дженерик-версия errors.As:// Go 1.13+ func As(err error, target any) bool // Go 1.26…

  • вторник, 20 января 2026 г. в 00:00:10