Category : golang

golang
Срезы в Go

Срезы (slices) в Go могут показаться простыми при первом знакомстве, но их эффективное использование требует понимания внутреннего устройства и особенностей работы с памятью. Многие разработчики сталкиваются с путаницей между понятиями длины и емкости срезов, что может привести к неэффективному использованию памяти или даже утечкам. Важно разобраться, как эти концепции работают при выполнении базовых операций: инициализации, добавлении элементов, копировании и нарезке. В этой статье мы рассмотр…

  • пятница, 18 апреля 2025 г. в 00:00:10
golang
Разработка CLI с помощью пакета Cobra: как не наступить на змею при написании

Привет, Хабр. Меня зовут Иван Добряев, я разработчик программного обеспечения в Центре технологий VK. Сегодня хочу поделиться опытом по одной достаточно прикладной, но весьма увлекательной теме — разработке командной строки (CLI) на Go.Платформа для инференса ML-моделей (inference platform) у нас молодая, ей всего лишь полгода, и мы активно расширяем команду. Так что, если вы хотите писать сервисы на Go с нуля, то приходите к нам, у нас найдутся задачи на любой вкус.Напомню, что 24 апреля пройд…

  • пятница, 18 апреля 2025 г. в 00:00:09
golang
100 % cover, 0 % спокойствия

Привет, Хабр! Сегодня я хочу поговорить о том, как мы все иногда очарованы показателями тестового покрытия в Go — и как же часто эти проценты лукаво нам подмигивают. Казалось бы, влепили go test -cover, получили любимые цифры, приближающиеся к 100%, и можно выдохнуть. Но, увы, не всё так радужно, как хочется. На самом деле заветная сотка покрытия далеко не всегда означает, что ваш код действительно покрыт тестами.Как работает go test -coverДля начала вспомним, что происходит, когда мы запускаем…

  • пятница, 18 апреля 2025 г. в 00:00:08
golang
Пробуем Codex CLI от OpenAI для доработки ХрюХрюКара

Привет Хабр!Пару дней назад я опубликовал статью про ХрюХрюКар - телегам-бот для борьбы со стоянкой автомобилей на зелёных зонах. Проект с открытым исходным кодом.За два дня ко мне обратилось несколько сторонников с просьбой добавить их города. Но вот незадача: у меня была возможность через админ-панель Django править данные в базе, но об этом кеш сервера не узнает (основной бекэнд на Go). В результате приходилось добавлять данные и перезагружать контейнеры с go-бекэндом вручную.Основные сервер…

  • пятница, 18 апреля 2025 г. в 00:00:07
golang
Коротко и по делу про механизм propagation в OpenTelemetry

Всем привет! Сегодня хочется поговорить про механизм распространения контекста трассировки в OpenTelemetry. Разберем, как он работает, и посмотрим простой пример на Go. Всё — коротко и по делу!Меня зовут Носорев Константин, я backend-разработчик в Яндекс Пей, автор канала "Константин про IT" и просто любознательный инженер.OpenTelemetry уже давно стал стандартом для построения системы наблюдаемости (observability) в микросервисной архитектуре. Начнем с небольшого ликбеза, чтобы проще во…

  • четверг, 17 апреля 2025 г. в 00:00:10
golang
lazyjournal — ленивый интерфейс для поиска и анализа логов

Всем привет! Я уже писал статью о различных способах, которые мне приходилось использовать для чтения логов, и к какому решению в итоге пришел. Хотя прошло не так много времени, с тех пор приложение не переставало развиваться. Узнав о том, что на Хабре проходит сезон Open source, мне показалось это отличным поводом подчеркнуть, что именно стало причиной для создания данного инструмента, а также рассказать немного подробнее про основные и новые функции.Почему терминальный интерфейс?На сегодняшни…

  • четверг, 17 апреля 2025 г. в 00:00:08
golang
Исследуем Go со всех сторон: обсуждаем конкурентность и безопасность, дискутируем о релизе 1.24

Как реализовать подходы Mutex и lock-free и какой из них выбрать для решения вашей задачи? Как «подружиться» с пакетами unsafe и использовать их для эффективной разработки? И наконец, что ждет инженеров в релизе 1.24? На эти и другие вопросы ответили Go-разработчики из YADRO, AvitoTech и Yandex, а мы принесли вам записи и презентации их обсуждений. Из докладов вы узнаете о работе с критической секцией и подводных камнях unsafe. А после просмотра дискуссии поймете, какие фичи из нового релиза сд…

  • четверг, 17 апреля 2025 г. в 00:00:07
golang
Сравнение Go и Python для веб-скрейпинга

Давайте подробнее рассмотрим преимущества каждого из этих языков, чтобы вы могли сделать оптимальный выбор для своего следующего проекта по веб-скрейпингу. Python: Simple and Powerful Python — один из самых популярных языков для веб-скрейпинга, и не зря. Он прост в изучении и использовании, что делает его отличным выбором для новичков. Синтаксис чист и читабелен, что позволяет разработчикам писать эффективный код с минимальными усилиями. Python также оснащён обширной коллекцией библиотек, уп…

  • четверг, 17 апреля 2025 г. в 00:00:06
golang
Оптимизация Go map{-}{-}

ВведениеХеш-таблица(мапа) — одна из самых популярных структур данных, потому что поиск по ключу происходит за O(1). Причем ключ может быть любым любым типом, элементы которого можно сравнивать (Comparable Trait).Я столкнулся с тем, что мапа не такая быстрая по бенчмаркам на языке GO, хотя теоретическая сложность алгоритма О(1).Давайте рассмотрим следующую задачу и способы ее решения.ЗадачаУ людей есть какие-то национальности, и национальностей может быть несколько у одного человека. Определить …

  • четверг, 17 апреля 2025 г. в 00:00:05