Category : golang

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
golang
Натягиваем сову на глобус или оценка применимости TSI на другие языки

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

  • пятница, 12 июня 2026 г. в 00:00:20
golang
sing-box-lx: как, почему и зачем я завёл fork сетевого ядра — XHTTP + AWG2 для всех

Если вы пользовались моим LxBox или десктопным лаунчером, то могли натыкаться на оранжевый баннер: «с этим узлом, скорее всего, не соединится». Так клиент честно сознаётся, что наткнулся на узел с транспортом XHTTP, а ядро sing-box, на котором всё крутится, его не умеет. В этот момент лаунчер тихо даунгрейдит конфиг до HTTPUpgrade.А еще сразу как я выпустил приложение пришли запросы с AWG/AWG2 и такие: сделай! а я сюдаВ какой-то момент я устал ждать и собрал свой форк ядра — sing-box-lx. Сегод…

  • четверг, 11 июня 2026 г. в 00:00:22