Category : golang

golang
Почему JSON и YAML мешают вам писать нормальные конфиги (и чем их заменить)

JSON, YAML, TOML, HCL - за последние годы человечество успело изобрести десяток языков для конфигурации.Каждый обещал быть "простым", "удобным" и "читаемым человеком".Но по факту - все они страдают от одних и тех же проблем: шумный синтаксис, хрупкие отступы, бесконечные кавычки и отсутствие элементарных возможностей вроде модульности и слияния конфигов.Пора перестать с этим мириться и сделать конфигурации наконец человеческими.🛑 Перестаньтеутомлять глаза, пытаясь разобр…

  • вторник, 11 ноября 2025 г. в 00:00:22
golang
BBRv3, FEC и QUIC: как мы удержали jitter <1 мс и стабилизировали RU<->EU

Мы стабилизировали QUIC на реальных RU↔EU трассах: jitter &lt;1 мс PoP↔PoP, P50 ~20–21 мс RU↔EU (end-to-end). Помогли BBRv3 с динамическим pacing, HTTP/3 Datagrams/MASQUE (RFC 9297/9298/9484) и экспериментальный FEC. На профиле 5% потерь при включенном FEC видим ~+10% goodput (recovery валидируем group-aligned тестом). Ниже - методика, цифры и репликация. Замеры - для наших RU↔EU путей (октябрь 2025), на других трассах цифры могут отличаться. Все тесты проводились на реальных Edge PoP узлах Clo…

  • понедельник, 10 ноября 2025 г. в 00:00:07
golang
Архитектура сервиса на GO «Клиент-Сервер»

ПрелюдияВажность хорошей структуризации проекта могут недооценивать только совсем уж начинающие программисты. Сопровождение и развитие проекта с непродуманной структурой кода со временем превращается в сущий ад. Тут выплывают и проблемы со связанностью модулей и проблемы с плохой читабельностью и экспонтециально растущая трудоемкость развития проекта. Но всякая структура должна подчиняться некой логической концепции. И тут появляется великое поле для холиваров.Всех проблем, вызванных изначально…

  • пятница, 7 ноября 2025 г. в 00:00:10
golang
Loadable-плагин для Zabbix c помощью суслика

Привет, Хабр! Знаете это чувство, когда оборудование есть, мониторинг есть, а их совместная работа — нет? Именно так мы ощутили себя, когда столкнулись с IBM Storwize в экосистеме Zabbix. «Из коробки» поддержка отсутствует, а костыли в виде скриптов и UserParameters работают так, что хочется плакать: медленно: каждый раз запускается отдельная программа/команда — это тратит время и ресурсы.сложно отлаживать: если что‑то сломалось, трудно понять, где именно проблема — в скрипте, в настройках …

  • пятница, 7 ноября 2025 г. в 00:00:10
golang
Почему Go?

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

  • четверг, 6 ноября 2025 г. в 00:00:07
golang
Система типов и интерфейсы в Go (статическая типизация)

Эта статья собрана «по существу»: что нужно знать о типовой системе Go, как правильно и безопасно работать с интерфейсами и чем чреваты распространённые ошибки.СодержаниеКраткая характеристика типовой системы GoПримитивные и составные типыСтатическая типизация и проверка в компилятореИнтерфейсы: концепция и механика (под капотом)Method sets и pointer vs value receiversСовместимость типов и compile-time проверкиИнтерфейс interface{} (empty interface) и reflectType assertion и type switchВажные п…

  • четверг, 6 ноября 2025 г. в 00:00:06
golang
Как пробить днище проекта техдолгом без смс и регистрации

Вот давайте начистоту. Открываешь ты такой таск, видишь кусок кода, написанный полгода назад, и твоя первая мысль - &#34;Господи, какой идиот это писал?&#34;. Потом git blame показывает твое имя. Классика. Этот момент, когда ты встречаешься со своим техническим долгом лицом к лицу.В сети полно статей, где техдолг раскладывают по квадрантам, рисуют красивые графики и сыплют терминами, от которых хочется заснуть. Это все академическая чушь, которая почти всегда бесполезна в реальной разработке, к…

  • среда, 5 ноября 2025 г. в 00:00:08
golang
Конкурентность — горутины и каналы

Конкурентность — это ядро языка Go. Горутины, каналы и связанные примитивы — это инструменты, с которыми Go делает параллелизм простым и выразительным. В этой статье я объясню концепции, покажу ключевые конструкции, разберу типичные ошибки/подводные камни, дам практические паттерны и инструменты для отладки и профилирования. В конце — краткий практический план действий.СодержаниеЧто такое горутина и как она работаетКаналы: буферизированные и небуферизированныеselect и управление множественными …

  • среда, 5 ноября 2025 г. в 00:00:07
golang
Когда мейнтейнер молчит

Странно писать про форк open-source проекта для ушедшего в историю Docker Swarm. Но после Millau остался ещё один гештальт - периодические задачи. Посмотрел на Ofelia и Swarm-cronjob, их звезды, обновления, количество заброшенных репортов. Попытался связаться с автором - тишина. Так что с чистой совестью взял код и добавил недостающее. Получилась Cirona - job scheduling с телеметрией и дашбордами.Почему не cronНаивная наихудшая реализации расписания в Docker - это использовать cron контейнера. …

  • понедельник, 3 ноября 2025 г. в 00:00:09