Category : golang

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
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