Category : golang

golang
Почему в Go больно писать автотесты (и дело не в синтаксисе)

ВступлениеАвтотесты на Go обычно начинают с testing.T — и на этом, по сути, всё. Дальше каждый проект вынужден сам решать, как именно исполняются тесты: в каком порядке, с каким окружением, с какими зависимостями, ретраями и логированием.testing даёт нам минимальный набор примитивов — t.Run, t.Cleanup, TestMain. Этого достаточно для unit-тестов, но за пределами простых сценариев быстро становится ясно: в Go нет единого execution engine, который бы занимался оркестрацией тестов как системы.И это…

  • вторник, 9 июня 2026 г. в 00:00:22
golang
10 вопросов на Go собеседовании, которые валят большинство джунов

Готовиться к Go-собеседованию по списку с GitHub — значит знать ровно то же, что знают все остальные. Интервьюеры это чувствуют сразу. В этой статье — 10 вопросов, которые реально задают на Golang Junior собеседованиях, с разбором так, как это объяснили бы вам после интервью на обратной связи. Вопрос 1. Nil-ловушка интерфейсовСмотрим на код:type MyError struct{ msg string } func (e *MyError) Error() string { return e.msg } func getError() error { var myErr *MyError = nil return myErr …

  • вторник, 9 июня 2026 г. в 00:00:21
golang
Смотрим в будущее на Go — Theta прогнозирование финансового модуля ERP

Салют, Хабр.Зачем предприятия ведут учёт? Отчётность перед ФНС? Или может воронка клиентов? Сотни ответов российского рынка учётных систем на этот простой вопрос.1С говорит владельцам: мы дадим вам идеальную, вылизанную до последней проводки отчётность перед налоговой.Битрикс24, Amo… говорят: мы поможем вам сохранить каждого клиента, ведь не будет клиента - не будет денег.Притянуто за уши, но картина понятна - среди учётных систем можно выделить два лагеря:БУХ-центричные;CRM-центричные.Вместо н…

  • понедельник, 8 июня 2026 г. в 00:00:11
golang
Как я добавила групповой коммит в свою LSM‑базу на Go и не пожалела

ВведениеСинхронный WAL очень частое явление в базах данных, делая их durability максимальной. При таком исходе каждый батч записи это вызов fsync, и это дало мне 956k opr/s на 16кб значениях, звучит хорошо, но на самом деле: скорость записи упала в 5 раз.В этой статье я расскажу:Что такое групповой коммит на пальцахПочему групповой коммит не для финтехаКак это реализовано у меня Как изменились цифры до и после внедренияВо сколько раз ScoriaDB с group commit быстрее BadgerDB и Pebble.Если вы пиш…

  • суббота, 6 июня 2026 г. в 00:00:16
golang
Плагин для Docker для быстрого деплоя

Часть своих сервисов я держал в облаке, но когда счёт за AWS начал превышать ожидания, стало понятно: пора переносить их домой. Несколько месяцев назад я купил мини-ПК, но всё никак не находил времени его задействовать. Так я занялся решением проблемы локального деплоя.Все приложения у меня уже контейнеризированы и запускаются через Docker Compose. В большинстве случаев для переноса достаточно было скопировать на удалённую машину файлы compose.yaml и .env по SSH. Но для некоторых сервисов потре…

  • суббота, 6 июня 2026 г. в 00:00:14
golang
В поисках баланса в backend-архитектуре

Эта статья для всех, кому интересна архитектура backend‑систем, но я понимаю, что для джунов она может быть немного перегружена терминами. Я не жду, что всем понравится такой взгляд, и как раз открыт к обсуждению.Я попытался представить не академическую доктрину, а её переход в реальность: туда, где красивые архитектурные шаблоны сталкиваются с производительностью, сроками, legacy, ограничениями команды и конкретными production‑задачами. Главная мысль статьи — попробовать описать пространство г…

  • суббота, 6 июня 2026 г. в 00:00:13
golang
Industrial Network Scanner: как мы написали на Go инструмент аудита безопасности ICS/SCADA-сетей

Привет, Хабр! Хочу рассказать об инструменте, который мы делали для реальных задач — аудита безопасности промышленных сетей. Называется Industrial Scanner Pro, написан на Go, имеет веб-интерфейс и умеет работать с тремя ключевыми промышленными протоколами. Репозиторий лежит на GitVerse.Статья будет полезна тем, кто занимается ОТ-безопасностью, пишет инструменты для пентеста промышленных систем или просто интересуется, как устроены ICS-сети изнутри.Зачем ещё один сканер?Когда берёшься за аудит п…

  • пятница, 5 июня 2026 г. в 00:00:11
golang
Недостающее звено при обработке медиа на Go

Большинство медиа-библиотек для Go рано или поздно упираются в одну и ту же проблему.У них нет собственного декодера.Вместо этого они полагаются на установленный в системе пакет FFmpeg, shared библиотеки, платформозависимые DLL или внешние исполняемые файлы, которые должны присутствовать на целевой системе.На этапе разработки всё работает. Затем начинается развертывание.И внезапно вы отлаживаете отсутствующие DLL в Windows, несовместимые версии FFmpeg в Linux, различия версий из Homebrew на mac…

  • четверг, 4 июня 2026 г. в 00:00:21
golang
Рецензия на книгу «Алгоритмы на языке Go»

Эта книга для тех, кто уже пишет на Go и понимает синтаксис, но хочет прокачать знания в вопросе выбора алгоритмов под свою задачу. Книга «Алгоритмы на языке Go» написана именно для такой аудитории. Это первая специализированная русскоязычная книга по алгоритмам с реализацией на Go. Она не очень объемная, — всего 192 страницы, 8 глав с конкретными примерами кода, —  по-своему, это ее  плюс, т.к. сейчас практически никто из разработчиков не читает толстенные «кирпичи» без крайней необходимости. …

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