Category : golang

golang
Отцы и дети. Java и Go

Данная статья содержит размышления о сильных и слабых сторонах обоих языков. Кода нет, смысла не так чтобы много — чистое словоблудие и мнение рядового разработчика. Если интересно, велком под кат.В данной статье много воды, отражены мысли и опыт воспалённого мозга, потому заранее предупреждаю: вы можете просто зря потерять своё время. Данную и любую статью нужно читать с включённым критическим мышлением и вообще понимать, что автор — «профессор лука».Идея статьи родилась в связи с повсеместной…

  • среда, 23 сентября 2026 г. в 00:00:13
golang
110 тестов, которые не проверяют код: как заставить документацию падать вместе со сборкой

Я открыл свою панель помощи и прочитал в ней про эскалации:Внутри лесенки каждая ступень уходит по своей задержке (0 = сразу); последующие ступени расширяют круг получателей.Вторая половина фразы - неправда. Ступени не расширяют круг получателей. У каждой ступени свой набор каналов, никак не связанный с предыдущей. Ступень, на которой не отмечен ни один канал, не уведомит никого - даже если каналы отмечены на первой.Разница не косметическая. Человек читает подсказку, отмечает Telegram на первой…

  • среда, 23 сентября 2026 г. в 00:00:11
golang
Как мы выдавали ключи от демозала через Telegram, но переехали на eXpress: техническое руководство …

Привет, Хабр!Меня зовут Дмитрий, я инженер в Группе Rubytech — компания производит программно‑аппаратные комплексы Скала^р и разрабатывает технологии для высоконагруженных ИТ‑инфраструктур.Вообще, наше подразделение занимается базами данных, но сегодня я расскажу про задачу, которая напрямую не была связана с рабочими обязанностями, зато ее решение сделало куда проще жизнь наших инженеров. Ниже лирическое отступление про офис, скоро вы все поймете.Помимо основного здания рядом (действительно ря…

  • среда, 23 сентября 2026 г. в 00:00:10
golang
PVS-Studio для Go: краткий обзор новых диагностических правил

Вышел PVS-Studio 8.0! Мы добавили поддержку анализа Go проектов и многое другое. В этой статье мы разберем интересные диагностические правила для Go, которые мы подготовили с выходом новой версии нашего анализатора.ВведениеВ PVS-Studio 8.0 официально появилась поддержка анализа Go проектов, а также возможность работы из IDE GoLand и Visual Studio Code (если вы используете Go).А ещё плагин для Visual Studio Code был значительно переработан и получил поддержку не только анализа Go проектов, но и …

  • вторник, 22 сентября 2026 г. в 00:00:13
golang
Почему LLMProvider недостаточно: проектируем AI Gateway для SaaS на Go

Когда начинаешь делать AI-фичу в backend-приложении, первая архитектурная идея обычно выглядит очень здраво: спрятать конкретного провайдера за интерфейсом.Что-то вроде:type LLMProvider interface { Generate(ctx context.Context, req Request) (Response, error) }Сегодня за ним OpenAI-compatible API, завтра другой провайдер, послезавтра локальная модель. Код бизнес-логики от конкретного SDK не зависит, значит архитектурная задача вроде бы решена.Я тоже начинал примерно с этого. Но по мере того …

  • вторник, 22 сентября 2026 г. в 00:00:11
golang
Как я переписал каталог из 500 000 SVG‑иконок с Laravel на Go и уменьшил сервер с 4/6 ГБ до 2/2 ГБ

SVG4 — каталог векторных иконокБольше года назад я запустил SVG4 — каталог векторных иконок. Сейчас в нём больше 500 000 SVG‑файлов. Первая версия была написана на Laravel, и на тот момент выбор был вполне логичным: Laravel я хорошо знал, на нём можно было быстро собрать рабочий проект и проверить, нужен ли он вообще кому‑нибудь. Проект оказался нужен, начал расти, а вместе с ним росли база, количество страниц, поисковый трафик и нагрузка. Старая версия в итоге работала на сервере с 4 ядрами и …

  • вторник, 22 сентября 2026 г. в 00:00:10
golang
LLM против ZX Spectrum. Часть 3

У меня был доступ к последним Qwen, GLM и Sol. Рядом лежали аккаунты ко всяким Claude c Astra. Не то, чтобы все это реально требовалось для разработки эмулятора ZX-Spectrum, но остановиться было тяжело. В итоге эмулятор получился просто на загляденье и вы можете прочитать про боли и решения в реальном проекте. TL;DR: Да, за год БЯМки сильно подросли в своих умениях. Сегодня я смело могу утверждать, что по своему уровню они достигли джунов. Если убрать скорость и стоимость за скобки, то это по…

  • понедельник, 21 сентября 2026 г. в 00:00:06
golang
Транзакции в Go через context: одна граница для нескольких репозиториев

ЗадачаОдин бизнес-сценарий часто изменяет данные через несколько репозиториев. Все операции должны завершиться вместе, но передавать транзакцию аргументом каждого метода неудобно, а открывать её внутри одного репозитория недостаточно.СутьВ статье транзакция хранится в context.Context, её открывает use case, а перед каждым вложенным Transaction менеджер сначала выполняет ExtractDB.В примерах используется GORM, но идея не привязана к ORM. Аналогичный менеджер можно написать поверх database/sql, p…

  • суббота, 19 сентября 2026 г. в 00:00:10
golang
Два человека правят один документ офлайн. Изобретаем гугл-док без сервера-арбитра

В свободное время пишу на чистом Go порты CRDT-движков: Yjs с JavaScript и Loro с Rust. CRDT это структуры, на которых держится совместное редактирование, когда несколько человек правят одно и то же одновременно. Пока портировал, пришлось разобрать алгоритмы до байта, и оказалось, что главный фокус там объясняется на пальцах, без формул. Эта статья про него: как два человека правят текст в разных местах, офлайн, а потом копии сходятся в одну и ту же строку. Символ в символ, без сервера, который…

  • суббота, 19 сентября 2026 г. в 00:00:09