Category : golang

golang
Сбор и отправка APM-трейсов из разных сервисов: как мы приручили трейсинг в монолитах

Всем привет! Меня зовут Яна Курышева, и я тимлид одной из команд разработки бэкенда в Спортсе’’.Мы – спортивное медиа. Наш продукт – это сайт и приложения со спортивной статистикой, новостями, редакционным и пользовательским контентом, пушами, рекомендациями и комментариями. За 25+ лет развития архитектура Спортса’’ стала достаточно разнообразной под капотом: десятки микросервисов на Go соседствуют с монолитными Perl- и PHP-приложениями, которые мы планомерно переводим на новый стек.Чтобы вся с…

  • среда, 12 ноября 2025 г. в 00:00:14
golang
За кулисами асинхронности: корутины, горутины и правда между ними

Асинхронность — слово, от которого у разработчиков дергается глаз и теплеет сердце. Корутины, горутины, event loop, трэдпулы — за этими терминами скрывается целая философия, меняющая взгляд на то, как писать высоконагруженные системы.Привет, Хабр! Меня зовут Дмитрий Буров и я Golang-разработчик, а также лидер Go-сообщества в Lamoda Tech. В IT свитчнулся из военного дирижера. В коммерческой  разработке — более 10 лет, начинал как фуллстек-разработчик на стеке JS, PHP, CSS, а последние шесть пишу…

  • среда, 12 ноября 2025 г. в 00:00:12
golang
Как полюбить писать тесты: опыт TATLIN.UNIFIED

Всем привет! Меня зовут Макс Теричев. Я старший инженер по разработке ПО в YADRO. В первый день работы в компании меня отправили пройти Go Tour. После этого я приступил к работе по автоматизации тестирования Control Path сервисов в СХД. Чтобы увеличить их тестовое покрытие, был создан специальный фреймворк, который интегрировал написание тестов в процесс разработки. Что входит в этот подход, насколько дорого обходятся ошибки в разработке систем хранения данных и какие два вида мотивации здесь р…

  • среда, 12 ноября 2025 г. в 00:00:12
golang
Почему LLM не заменит хорошего разработчика, но сделает его работу быстрее

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

  • вторник, 11 ноября 2025 г. в 00:00:24
golang
Препроцессоры на Go: нарушение границ или сила -toolexec

Мы в Смартомато — супер продуктовые ребята. Со временем у нас скопились недовольство по поводу работы с Golang, захотелось залезть в технические дебри. Произошла гиперкомпенсация и мы придумали препроцессинг в Go. Да, несмотря на то, что этот язык официально не поддерживает препроцессоры —  мы всё равно сделали. А сейчас делимся результатами этой работы с вами.Привет, Хабр! Меня зовут Марк Чолак, я бэкенд-разработчик в Смартомато. За 5 лет работы с Go и 8 лет в фудтехе я переписал немало шаблон…

  • вторник, 11 ноября 2025 г. в 00:00:22
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