Как реализовать подходы Mutex и lock-free и какой из них выбрать для решения вашей задачи? Как «подружиться» с пакетами unsafe и использовать их для эффективной разработки? И наконец, что ждет инженеров в релизе 1.24? На эти и другие вопросы ответили Go-разработчики из YADRO, AvitoTech и Yandex, а мы принесли вам записи и презентации их обсуждений. Из докладов вы узнаете о работе с критической секцией и подводных камнях unsafe. А после просмотра дискуссии поймете, какие фичи из нового релиза сд…
Давайте подробнее рассмотрим преимущества каждого из этих языков, чтобы вы могли сделать оптимальный выбор для своего следующего проекта по веб-скрейпингу. Python: Simple and Powerful Python — один из самых популярных языков для веб-скрейпинга, и не зря. Он прост в изучении и использовании, что делает его отличным выбором для новичков. Синтаксис чист и читабелен, что позволяет разработчикам писать эффективный код с минимальными усилиями. Python также оснащён обширной коллекцией библиотек, уп…
ВведениеХеш-таблица(мапа) — одна из самых популярных структур данных, потому что поиск по ключу происходит за O(1). Причем ключ может быть любым любым типом, элементы которого можно сравнивать (Comparable Trait).Я столкнулся с тем, что мапа не такая быстрая по бенчмаркам на языке GO, хотя теоретическая сложность алгоритма О(1).Давайте рассмотрим следующую задачу и способы ее решения.ЗадачаУ людей есть какие-то национальности, и национальностей может быть несколько у одного человека. Определить …
Привет хабр!Почти год назад я писал про ХрюХрюКар. Если коротко: в 2024 году мы запилили экспериментальный проект, который проработал 7 месяцев в городе Балаково Саратовской области. За это время мы "поймали" около тысячи автомобилистов, разместивших свои авто на зеленых зонах, детских/спортивных площадках и тротуарах (в нарушение ПДД). Большинство из них было привлечено к административной ответственности.При этом я по-максимуму старался вести разъяснительную работу с нарушителями. Напр…
Привет, Хабр! На связи Артём Петров, я занимаюсь разработкой ПО в центре технологий VK. Хочу рассказать о важной задаче обработки больших объёмов данных с использованием нескольких экземпляров одной и той же модели машинного обучения. Этот процесс называется batch inference («пакетный инференс») и позволяет значительно повысить производительность системы, особенно когда речь идёт о таблицах большого размера.Open Inference Protocol (OIP)Существует много различных инструментов для инференса моде…
Как запустить поисковый сервис, если у тебя всего три недели, а данные нужно агрегировать с десятков источников, каждый из которых работает по своим правилам? Как обойти жёсткие лимиты партнёров, которые ограничивают запросы в 500 RPM и p99 до 5 секунд, когда для быстрой загрузки первых результатов нужно минимум 1000 RPM? Как справиться с геопоиском, когда традиционные решения вроде Elasticsearch не подходят?В 2022 году мы в 2ГИС запустили сервис бронирования Отелло, и перед нами стояла амбицио…
Привет, Хабр!Сегодня рассмотрим, как безопасно запускать горутины, перехватывать в них паники, логировать их со стек трейсом и не дать одной багнутой функции завалить весь сервис. Почему recover() не спасёт вас от паники в горутинеКогда ты только знакомишься с panic() и recover(), всё кажется прямолинейным:«Если где‑то в коде случится паника, я могу поставить defer + recover, и всё будет красиво обработано». Но в Go есть одно принципиально важное правило: recover() работает только в пределах то…
Привет! Меня зовут Олег Стрекаловский, я старший разработчик в команде корзины маркетплейса. Сервис корзины Ozon отвечает за хранение корзин покупателей и за отрисовку соответствующего экрана в приложении и на сайте. Слежение за стабильностью сервиса — важная задача. В этой статье я расскажу о нюансах интерпретации данных, которые предоставляет система мониторинга Prometheus. Если вы тоже часто всматриваетесь в графики, чтобы понять, как чувствует себя сервис, эта статья для вас.С чего всё нача…
Привет, меня зовут Нуржан Сактаганов, я ведущий разработчик в Почте и Облаке Mail. Хочу рассказать о нашей библиотеке Go-VShard-router и поделиться трюками и выводами, которые мы сделали при разработке.ВведениеЕсли вкратце, то мы взяли open-source библиотеку VShard от авторов Tarantool, написанную на Lua, и переписали её часть на Go. Tarantool — промежуточное ПО для работы с данными, которое ускоряет цифровые сервисы и снижает нагрузку на core-cистемы. Сочетает в себе сервер приложений, гибридн…