Category : golang

golang
Как я за полдня навайбкодил библиотеку на Go и почему потом всё-таки пришлось вчитываться в код

Любимый термин современного разработчикаTL;DR: В этой статье расскажу, как за полдня с помощью Antigravity и подписки Google AI Pro я собрал полноценную Go-библиотеку для работы с конфигурацией: несколько форматов, переменные окружения, каскадная загрузка, валидация, кастомные провайдеры и всё остальное, что обычно начинает появляться в проекте после нескольких недель жизни микросервиса. А ещё поделюсь, почему после первых нескольких часов восторга мне всё-таки пришлось открыть исходники и вним…

  • вторник, 6 октября 2026 г. в 00:00:14
golang
Утро без телефона: зачем я поставил рядом с кроватью матричный принтер

Всё началось с очень простой проблемы: я хотел перестать брать телефон в руки сразу после пробуждения. Обычно я открывал его с вполне невинной целью — посмотреть данные сна с фитнес‑браслета, а потом как‑то незаметно оказывался в сообщениях, почте и новостях. Тогда я и подумал: а что, если вообще не открывать приложение, а получать эти данные по факту пробуждения без телефона. Физически. Например, на бумаге? Так начала зарождаться идея поставить рядом с кроватью чековый принтер, который утром с…

  • понедельник, 5 октября 2026 г. в 00:00:06
golang
Как я писал расшифровщик записей, но в итоге получил бота для Яндекс.Телемост, с функциями которые …

Всем привет. Меня зовут Алексей, пишу тут впервые. Работаю в небольшом рекламном агентстве, в основном backend и всякое смежное. По вечерам реверс‑инжиниринг, чисто для удовольствия. Стек у меня был максимально предсказуемый. PHP, немного JS с TS, Python. Скучно. Захотелось нового, и я полез в Go.Пару лет назад, когда ElevenLabs только появился, я на коленке собрал питоновский скрипт: он гонял записи моих созвонов через их API и отдавал текст. Поигрался неделю и забросил, как это обычно и бывае…

  • понедельник, 5 октября 2026 г. в 00:00:05
golang
Продовый REPL: Yaegi поверх composition root

Я пришёл в Go из Ruby, и первое время больше всего не хватало одного инструмента, который в Rails есть из коробки: консоли, где любую непонятную ситуацию на проде можно посмотреть руками. bundle exec rails c, Order.find(42), и перед тобой не строка в таблице, а объект приложения со всеми его методами. В моих Go-проектах такой консоли не было, оставался psql, и то если он добавлен в образ. Данные посмотреть можно, запустить операцию приложения нельзя. А вопрос обычно именно такой: почему для это…

  • суббота, 3 октября 2026 г. в 00:00:08
golang
DDNS для российских DNS-хостингов: почему не подошли готовые клиенты и что я написал взамен

Сервер стоит дома или в филиале, провайдер время от времени меняет внешний адрес, а домен в зоне .ru обслуживает REG.RU, Selectel или Yandex Cloud. Популярные DDNS-клиенты эти DNS-хостинги почти не поддерживают, поэтому запись обновляют самописными скриптами на curl. Ломаются такие скрипты молча. Selectel в 2026 году отключил старый DNS API, и скрипты, которые в него ходили, перестали обновлять записи. Я разобрал API этих хостингов, собрал их подводные камни и написал на Go DDNS-демон dnspatch,…

  • суббота, 3 октября 2026 г. в 00:00:06
golang
DBML Diagram для IntelliJ IDEA с офлайн превью и открытым исходным кодом

Привет! На связи Boost for Java. Развиваем DBML Diagram — open source плагин для IntelliJ IDEA и других совместимых IDE на платформе IntelliJ. Он строит ER-диаграмму рядом с открытым .dbml-файлом: меняете описание таблиц и связей — превью обновляется прямо в редакторе. Построение диаграммы работает локально, без отправки схемы во внешний сервис.В этой статье покажем возможности версии 0.1.0, пользу работы со схемами прямо в IntelliJ IDEA и устройство плагина. Отдельно расскажем о планах интегра…

  • суббота, 3 октября 2026 г. в 00:00:05
golang
ч2: Разбор. Как мы закрывали утечку через tun0 в AmneziaVPN

ч1: Обзор. Полгода после утечки через tun0. Кто из VPN-клиентов закрыл дыру, а кто закрыл issue.ч2: Разбор. Как мы закрывали утечку через tun0 в AmneziaVPN.TL;DRПриложение, которое вы исключили из VPN на Android, может привязать сокет к tun0, пройти через ваш туннель и узнать адрес сервера. Мы закрыли это внутри клиента: когда пакет выходит из туннельного интерфейса, фильтр спрашивает у Android, чьё это соединение, и чужие не пропускает.Главная ловушка в том, как Android отвечает на этот вопрос…

  • пятница, 2 октября 2026 г. в 00:00:15
golang
Зачем я добавил Go-сервис туда, где его не просили

Недавно мне дали тестовое задание на проектирование интеграции между 1С и Yandex 360. На первый взгляд задача выглядела достаточно прямолинейно: 1С формирует письмо, дальше его нужно передать в почтовую систему, отправить и получить информацию о результате. Но в исходном ТЗ не было отдельного сервиса на Go. Я добавил его сам. И в этой статье хочу разобрать не столько само тестовое задание, сколько процесс принятия архитектурного решения: зачем вообще добавлять ещё один компонент и в какой момен…

  • четверг, 1 октября 2026 г. в 00:00:04
golang
Guardrails для ИИ-агента на Go: от инструкций к автоматическим проверкам

Мы пишем инструкции и скиллы для ИИ-агентов, просим их проверять свою работу, запускаем отдельных агентов на код-ревью. Для важных изменений добавляем ещё одного проверяющего. Каждый такой запуск требует времени и токенов.При этом замечание, которое агент нашёл однажды, он может пропустить при следующем ревью. Инструкцию можно дополнить, но проверяющему снова придётся прочитать код и решить, выполнено ли требование. Хочется сократить эту повторную работу и закрепить хотя бы часть требований про…

  • среда, 30 сентября 2026 г. в 00:00:11