Category : golang

golang
ХрюХрюКар v.2 или как я использую Go для защиты своего двора

Привет хабр!Почти год назад я писал про ХрюХрюКар. Если коротко: в 2024 году мы запилили экспериментальный проект, который проработал 7 месяцев в городе Балаково Саратовской области. За это время мы "поймали" около тысячи автомобилистов, разместивших свои авто на зеленых зонах, детских/спортивных площадках и тротуарах (в нарушение ПДД). Большинство из них было привлечено к административной ответственности.При этом я по-максимуму старался вести разъяснительную работу с нарушителями. Напр…

  • среда, 16 апреля 2025 г. в 00:00:10
golang
Эффективный пакетный инференс моделей. Опыт инженеров VK

Привет, Хабр!  На связи Артём Петров, я занимаюсь разработкой ПО в центре технологий VK. Хочу рассказать о важной задаче обработки больших объёмов данных с использованием нескольких экземпляров одной и той же модели машинного обучения. Этот процесс называется batch inference («пакетный инференс») и позволяет значительно повысить производительность системы, особенно когда речь идёт о таблицах большого размера.Open Inference Protocol (OIP)Существует много различных инструментов для инференса моде…

  • среда, 16 апреля 2025 г. в 00:00:10
golang
Сервис поиска за три недели: как сделать и не пожалеть через год

Как запустить поисковый сервис, если у тебя всего три недели, а данные нужно агрегировать с десятков источников, каждый из которых работает по своим правилам? Как обойти жёсткие лимиты партнёров, которые ограничивают запросы в 500 RPM и p99 до 5 секунд, когда для быстрой загрузки первых результатов нужно минимум 1000 RPM? Как справиться с геопоиском, когда традиционные решения вроде Elasticsearch не подходят?В 2022 году мы в 2ГИС запустили сервис бронирования Отелло, и перед нами стояла амбицио…

  • вторник, 15 апреля 2025 г. в 00:00:08
golang
Обработка паник в горутинах

Привет, Хабр!Сегодня рассмотрим, как безопасно запускать горутины, перехватывать в них паники, логировать их со стек трейсом и не дать одной багнутой функции завалить весь сервис. Почему recover() не спасёт вас от паники в горутинеКогда ты только знакомишься с panic() и recover(), всё кажется прямолинейным:«Если где‑то в коде случится паника, я могу поставить defer + recover, и всё будет красиво обработано». Но в Go есть одно принципиально важное правило: recover() работает только в пределах то…

  • вторник, 15 апреля 2025 г. в 00:00:08
golang
Дело о несрабатывающем тайм-ауте

Привет! Меня зовут Олег Стрекаловский, я старший разработчик в команде корзины маркетплейса. Сервис корзины Ozon отвечает за хранение корзин покупателей и за отрисовку соответствующего экрана в приложении и на сайте. Слежение за стабильностью сервиса — важная задача. В этой статье я расскажу о нюансах интерпретации данных, которые предоставляет система мониторинга Prometheus. Если вы тоже часто всматриваетесь в графики, чтобы понять, как чувствует себя сервис, эта статья для вас.С чего всё нача…

  • суббота, 12 апреля 2025 г. в 00:00:10
golang
Как мы делали Go-VShard-router

Привет, меня зовут Нуржан Сактаганов, я ведущий разработчик в Почте и Облаке Mail. Хочу рассказать о нашей библиотеке Go-VShard-router и поделиться трюками и выводами, которые мы сделали при разработке.ВведениеЕсли вкратце, то мы взяли open-source библиотеку VShard от авторов Tarantool, написанную на Lua, и переписали её часть на Go. Tarantool — промежуточное ПО для работы с данными, которое ускоряет цифровые сервисы и снижает нагрузку на core-cистемы. Сочетает в себе сервер приложений, гибридн…

  • суббота, 12 апреля 2025 г. в 00:00:08
golang
Это путь воина: как я выучил Python и Go с помощью Цеттелькастена и кому точно не рекомендую метод

Привет, Хабр! Меня зовут Дмитрий, я работаю в YADRO. Я прошел большой путь в самостоятельном изучении языков программирования: от SQL до Go. Сначала я вообще не документировал процесс обучения, затем стал вести заметки по «академическому» принципу — писал конспекты, как в университете. Пока не открыл древовидную систему хранения данных, которая лежит в основе метода Цеттелькастен. В этой статье расскажу, как порядок в заметках помогает лучше усваивать материал, кому подойдет Цеттелькастен или п…

  • суббота, 12 апреля 2025 г. в 00:00:08
golang
Go 1.24: принципы работы и преимущества обновленной map

В феврале 2025 года разработчики Go выпустили версию 1.24, в которой значительно улучшили производительность языка. Одно из ключевых изменений коснулось структуры map — встроенного типа данных, предназначенного для хранения и быстрого поиска значений по уникальному ключу. Новая реализация повысила эффективность работы map, оптимизировала использование памяти и ускорила операции поиска, вставки и удаления элементов. Привет, Хабр. Мы backend-разработчики SimbirSoft Павел и Алексей. В этой статье …

  • пятница, 11 апреля 2025 г. в 00:00:06
golang
Что такое Lua: почему стоит его попробовать и как встроить в программу на Go

Lua — это лёгкий, быстрый и гибкий скриптовый язык, который появился в 1993 году. Он написан на C и чаще всего используется не как самостоятельный язык, а как встраиваемый инструмент для других приложений.Если вы играли в World of Warcraft и устанавливали аддоны, вы уже сталкивались с Lua. Redis исполняет Lua-скрипты внутри себя. Nginx использует его для обработки HTTP-запросов. В NeoVim плагины тоже можно писать на Lua. Короче говоря — язык не из популярных топов, но крайне полезен и встраивае…

  • среда, 9 апреля 2025 г. в 00:00:16