Category : golang

golang
Как тестировать LLM-фичи: пишем автоэвалы и гоняем их в CI

Привет! У нас в проде живёт бот, который отвечает на вопросы по документации продукта — обычный RAG. Первые месяца три мы катили его, как все: поправил промпт, прогнал пяток вопросов руками, поставил в голове галочку «вроде стало лучше» и выкатил. Закончилось это предсказуемо. Коллега подкрутил промпт ретривера под свой кейс и по дороге сломал мой, причём заметили мы это через две недели по жалобе пользователя. А когда обновились на свежую версию модели, часть ответов просто уехала непонятно ку…

  • вторник, 16 июня 2026 г. в 00:00:11
golang
Как мы собрали LLM-шлюз для России: готовый LiteLLM на data-plane, свой биллинг на Go и n8n

Год назад доступ к зарубежным LLM из России превратился в квест. OpenAI и Anthropic не принимают российские карты и блокируют запросы по гео. Обходные пути — VPN, иностранная карта, прокладка через знакомых за рубежом — годятся для пет-проекта, но не для продакшена, где нужен стабильный аккаунт, предсказуемый счёт и возможность объяснить бухгалтерии, за что платим.Мы сделали apiglue — шлюз, который закрывает эту боль: один OpenAI-совместимый endpoint, за которым прячутся десятки провайдеров, оп…

  • вторник, 16 июня 2026 г. в 00:00:10
golang
Table-test или как помочь агенту понять как тестироваться

Агенты сейчас пишут тесты уже за многими из нас, будем объективны, все больше людей кидаем таску ему - получают пачку аппрувов и погнали все это мержитьНо есть, скажем так, ненулевой шанс, что сгенерированные тесты окажутся произведением искусства мусором, который ничего не проверяет (и нет, не шутка, мне коллеги буквально показывали тесты где просто вызывается функция и проверяется что ошибка nil и на этом все, а результат просто всегда игнорировался)И в таких кейсах очень классная картина: у …

  • воскресенье, 14 июня 2026 г. в 00:00:05
golang
Как я мерил точность ИИ в распознавании еды: бенчмарк, LLM-as-judge и баг с варёной гречкой

Строю приложение для подсчёта калорий по фото. Пользователь снимает тарелку, модель определяет блюдо, считает КБЖУ. Идея не новая, но мне важно, чтобы это работало именно на русской еде — борщи, гречки, котлеты по-домашнему.В какой-то момент стало некомфортно: я не знал, насколько модель вообще точна. «Кажется, работает нормально» — плохой ответ, если хочешь что-то улучшать. Решил померять нормально.Расскажу, что и как мерил, что получил — и про неожиданный вывод в конце, ради которого, честно …

  • воскресенье, 14 июня 2026 г. в 00:00:04
golang
Натягиваем сову на глобус или оценка применимости разработанной методики определения грейда на друг…

Привет, Хабр! В прошлых статьях я описала, как через нововведенный параметр TSI теоретически можно определить грейд разработчика. Для тех, кто пропустил первую часть: TSI (Topological Seniority Index) — это метрика, которая нивелирует мусор в вакансиях и позволяет отразить качественный скачок при переходе между грейдами. Она считается исходя из суммы взвешенной мощности стека, уровня ответственности и архитектурного признака в списке требований. Но до этого мы говорили только про один язык – C#…

  • суббота, 13 июня 2026 г. в 00:00:13
golang
Писал мониторинг на Go «за выходные» — застрял на месяцы. Вот на чём

В этой статье я расскажу, на какие подводные камни я споткнулся при разработке своего пет‑проекта — мониторинга сайтов на Golang, аналог UptimeRobot. Начнем издалека... Я хотел разработать пет‑проект, но не банальный todolist, а что‑то свежее, интересное в плане архитектуры и реализации. Шерстя по просторам интернета, я наткнулся на UptimeRobot — сервис для мониторинга сайтов. Азарт и любопытство взяли верх и я начал продумывать, как буду разрабатывать «свой» UptimeRobot. Думал — делов на пару …

  • суббота, 13 июня 2026 г. в 00:00:08
golang
sqlh — SQL в Go без boilerplate: пишем CRUD за 50 строк

Zero-boilerplate SQL для Go. Опиши структуру тегами — и это всё.Если вы пишете на Go и работаете с SQL-базами, вы знаете эту боль. Каждый CRUD-запрос — ручной SQL-строка, rows.Scan для каждого поля, Begin/Commit/Rollback вокруг записи, и постоянная синхронизация DDL-схемы с кодом. Шаблонный код не заканчивается никогда.Это рассказ о sqlh — библиотеке, которая убирает всё это, оставаясь в «золотой середине» между raw SQL (слишком много работы) и тяжёлыми ORM (слишком много магии).§1. Проблема: G…

  • суббота, 13 июня 2026 г. в 00:00:07
golang
Пишем TCP-сканер портов на Go: goroutine, timeout и CSV-отчёт

Недавно знакомый попросил помочь с небольшой задачей по проверке внешнего периметра сети компании. Сразу уточню: речь шла об инфраструктуре, на проверку которой было разрешение.Под внешним периметром обычно понимают всё, что доступно из интернета: публичные IP-адреса, домены, поддомены, облачные или VPS-серверы, а также сервисы, которые слушают внешние порты.Задача была простой по формулировке, но интересной технически: нужно понять, какие адреса доступны извне и к каким портам можно подключить…

  • пятница, 12 июня 2026 г. в 00:00:24
golang
Как я веб-приложение на Go для архитектуры MIPS кросс-компилировал

ВведениеПривет, Хабр! Являюсь давним пользователем маршрутизаторов Keenetic/Netcraze. В свое время подкупили надежность устройств, широкие возможности программного обеспечения, оперативная техническая поддержка, большое сообщество пользователей возможность установки дополнительных пакетов через среду Entware. В относительно недавнем прошлом производитель строил свои устройства на базе mips/mipsel чипов, таким образом, несколько таких устройств оказались у меня в руках.Дополнительные пакеты в ре…

  • пятница, 12 июня 2026 г. в 00:00:22