Category : golang

golang
Yggdrasil как встраиваемая библиотека

Yggdrasil - это экспериментальная оверлейная IPv6 mesh-сеть, уже неоднократно рассматривавшаяся на хабре (1 2 3). Если кратко, Yggdrasil позволяет поднять “сеть поверх сети” где у каждого узла появляется стабильный IPv6 адрес выведенный из его публичного ключа, не зависящий от того, где он физически находится и какой у него внешний IP. Узлы могут подключаться к публичным пирам, друг к другу напрямую, через локальное обнаружение, а после установления связности обычные TCP/UDP приложения могут об…

  • воскресенье, 10 мая 2026 г. в 00:00:14
golang
Ещё один круг ада: мониторинг ERP без Prometheus, Grafana и выделенного DevOps

Привет, Хабр. Меня зовут Серафим Недошивин, уже как год я пишу мультитенантную ERP-подобную систему (Go, pgx | next.js, ts) для малого бизнеса и, чтобы не сойти с ума, рассказываю о проблемах, с которыми сталкиваюсь на этом нелёгком пути. В первой статье речь шла о 10 в первую очередь архитектурных проблемах (или кругах ада), включая изоляцию данных организаций, систему доступов и миграции схем базы данных.Причина, по которой написана уже эта статья, крайне проста: загнивая от усталости, дописы…

  • воскресенье, 10 мая 2026 г. в 00:00:13
golang
Библиотека SNMP на Go, зачем я создал еще одну и чем она может быть интересна

Когда-то давно, в 2012–2014 годах, мне и коллегам понадобилось собирать различные данные с большого числа различных коммутаторов и прочего сетевого оборудования.В то время у нас были в основном коммутаторы Cisco немного Moxa и немного HP.Мониторилось все это при помощи PRTG и Nagios, а для сбора данных мы использовали ПО switchmap для Cisco и собственные скрипты на PHP для Moxa. ПО в целом выполняло свою функцию, информация собиралась и помогала в работе.Однако с течением времени количество ко…

  • суббота, 9 мая 2026 г. в 00:00:16
golang
Математический анализ для разработчика: что действительно нужно понимать

Когда разработчик слышит слова “математический анализ”, в голове часто всплывает что-то из университета: пределы, производные, интегралы, бесконечные ряды, многостраничные доказательства и ощущение, что все это находится очень далеко от реальной работы. На практике все устроено иначе.Большая часть разработчиков действительно не сидит каждый день и не вычисляет производные вручную. Но идеи матанализа при этом встречаются постоянно. Они проявляются в производительности, машинном обучении, графике…

  • суббота, 9 мая 2026 г. в 00:00:15
golang
Конфиг в Go: библиотек много, «единого решения» нет

Что регулярно ломается в реальных сервисах, когда надо совместить YAML, .env, переменные окружения и вложенный Config.Вот абсолютно бытовая ситуация. Есть config.yaml для локалки. Есть .env.example, который у каждого чуть свой. В проде значения прилетают через Docker/Kubernetes/systemd. В коде живет нормальный вложенный Config, а не плоская простыня.И вот в этот момент становится ясно: в Go нет одного «очевидного» инструмента, который без плясок закрывает всю цепочку целиком.Это не наезд на эко…

  • пятница, 8 мая 2026 г. в 00:00:12
golang
«Алгоритмы на языке Go». Книга, которую ждали

Привет, Хабр.Сегодня познакомим вас с самой долгожданной новинкой апреля — книгой «Алгоритмы на языке Go», которую мы успели выпустить в продажу 30 числа.Автор книги — Артём Михайлов, пишущий на Хабре под ником Morettom @morett1m, Go- и Rust-разработчик, также ведущий телеграм-канал  t.me/coreartem.Внимательные читатели не будут удивлены увидеть эту книгу, поскольку мы систематически наполняем наш ассортимент качественными книгами по алгоритмам для очень разной целевой аудитории. Наиболее фунда…

  • четверг, 7 мая 2026 г. в 00:00:14
golang
Хотелось пополнить резюме, а написала LSM-движок с MVCC, снапшотами и Value Log на чистом Go

Введение: Неделю назад я не думала писать такую базу данныхНачиналось всё с банального желания пополнить свое резюме парой строчек. Листала сайты с разными проектами, чтобы в резюме было что‑то посерьёзнее утилит для диагностики. Наткнулась на идею написать KV‑хранилище. Естественно, перед тем как что‑то планировать, нужно было разобраться, что из себя это чудо представляет и какие они вообще бывают. И вот тут для меня началось самое интересное.Случайно получилось, что моя встраиваемая БД — это…

  • четверг, 7 мая 2026 г. в 00:00:12
golang
Как на самом деле устроен кэш в controller-runtime, и почему ваш оператор не кладёт apiserver

Kubernetes давно стал повсеместной платформой, а написать к нему собственный оператор сегодня — задача нескольких часов. Стандартный путь — kubebuilder на основе controller-runtime: scaffold проекта, типы, реконсайлер. В типовых сценариях этого вполне достаточно. Но как только нагрузка растёт или поведение оператора начинает расходиться с ожиданиями, всплывает целый класс edge-кейсов, причина которых — непонимание того, как controller-runtime устроен внутри. Если вы пишете контроллеры для Kuber…

  • четверг, 7 мая 2026 г. в 00:00:11
golang
Соглашения по именованию в Go: практическое руководство

Не уверены, как правильно структурировать веб-приложение на Go?Выбор правильных имен в кодовой базе — важная (и порой непростая) часть разработки на Go. Это мелочь, которая сильно влияет на результат: хорошие имена делают код понятнее, предсказуемее и проще для навигации; плохие — наоборот.В Go есть довольно строгие соглашения и несколько жестких правил для именования. В этой статье мы разберем эти правила и рекомендации, дадим практические советы и покажем примеры удачных и неудачных имен в Go…

  • среда, 6 мая 2026 г. в 00:00:14