Category : golang

golang
Как, имея более 200 методов HTTP, смэтчить их с тем, в какие сервисы они ходят

Привет, Хабр! На связи команда Seller API, а именно её тимлид Саша Валов и старший разработчик Никита Денисенко. В этой статье мы разберём одну из проблем большого API и расскажем, как мы её решили.ВступлениеSeller API — это продукт, предоставляющий программный интерфейс для работы с маркетплейсом Ozon. Он позволяет системам продавца и Ozon обмениваться информацией.Seller API насчитывает более 200 методов. Эти методы удовлетворяют множество бизнес-потребностей и предоставляют доступ к широкому …

  • четверг, 26 декабря 2024 г. в 00:00:13
golang
Fullstack v2: учимся писать UI на Go

Меня зовут Илья Глухов.  Последние 7 лет я пишу на Go. Я люблю этот язык, а ещё люблю задаваться странными, на первый взгляд, вопросами. Например, как разные интересные штуки, которые мы пишем на Go взаимодействуют с пользователем? В классическом бэкенде мы при помощи RPC (Remote Procedure Call), протокола HTTP или разных очередей модифицируем поведение нашей программы. А что насчёт graphic UI? Он же из фронтенда? Или нам так только кажется? Давайте  создадим пользовательский интерфейс (UI) на …

  • среда, 25 декабря 2024 г. в 00:00:17
golang
Горутины и каналы в Go: эффективная конкурентность

Go язык программирования, который предлагает простой и мощный способ работы с конкурентностью, а именно через горутины и каналы. Эти инструменты делают параллельное выполнение задач удобным, безопасным и читаемым. Давайте разберем их ключевые особенности.Горутины: сравнение с потоками в других языкахГорутины в Go действительно считаются легковесными в сравнении с системными потоками, которые используются в других языках, таких как Java, Python или C++. Основная причина в том, как они управляют…

  • среда, 25 декабря 2024 г. в 00:00:15
golang
Skip List в Golang

Привет, Хабр! Сегодня я решил поделиться с вами одной из тех структур данных, которая, возможно, не так популярна, как хеш‑таблицы или деревья, но обладает своими уникальными фичами. Знакомьтесь — Skip List! Итак, Skip List — это структура данных, которая позволяет быстро искать, вставлять и удалять элементы. Можно сказать, что это своего рода гибрид между списком и деревом, только без всяких заморочек.Рассмотрим реализацию этой структуры в Golang, и для этого есть пакет huandu/skiplist.Начнем …

  • понедельник, 23 декабря 2024 г. в 00:00:05
golang
Odinbit, продолжение разработки своей игры. Новые механики, оптимизации, появление мультиплеера

ВведениеOdinbitВсем привет, это уже вторая статья про мою 2D песочницу Odinbit. Первая вышла довольно давно: с тех пор я успел доработать игру, столкнуться с новыми проблемами и решил поделиться, как я всё это преодолел и что именно добавил.Обновленный генератор мираОбновленная генерация травыПосле выхода первой статьи я обратил внимание, что в мире слишком много травы, и это выглядело неестественно. Поэтому я переписал алгоритм её генерации: теперь трава появляется при создании мира с вероятно…

  • воскресенье, 22 декабря 2024 г. в 00:00:09
golang
Жизненный цикл потоков ОС в Golang

Всем привет! Меня зовут Паша, я занимаюсь коммерческой разработкой уже 10 лет, 8 из них — на Go. Мне довелось разрабатывать приложение, активно использующее как сеть, так и диск. Регулярно приходилось решать вопросы производительности. В ходе исследований я использовал все, что было было под рукой: логи, метрики, трейсы, профилировщики и runtime-трейсы. А еще изучал, как по доступным данным расследовать причины проблем производительности постфактум. Тогда мне стало интересно, почему метрика кол…

  • суббота, 21 декабря 2024 г. в 00:00:09
golang
Lamoda Tech Golang Meetup: материалы встречи

Golang — это любовь, уверены мы в Lamoda Tech, и это подтверждают более 170 инженеров в нашем гошном комьюнити. Мы собрали три доклада, которые хотели бы послушать сами, и провели зимний митап по Go. Делимся материалами с него. Видео и презентации докладовStackless и stackful? Корутины и асинхронность в GoДима Буров, старший Go-разработчик Lamoda TechАсинхронность — важный элемент современных систем, и корутины играют в этом не последнюю роль, но как насчёт Go? В этом докладе мы поговорим о то…

  • суббота, 21 декабря 2024 г. в 00:00:09
golang
Паттерн Composite в Go на котиках

Привет, Хабр!Сегодня поговорим о паттерне «Компоновщик» (он же Composite) — на примере котиков. Котики идеально иллюстрируют структуру паттерна: в каждом доме есть простые котики, сложные котики (например, те, кто лазает по шкафам и открывает холодильники), а иногда — целые прайды из котиков. Зачем нам Компоновщик?Сам паттерн впервые был описан в книге «Design Patterns: Elements of Reusable Object‑Oriented Software». Его основная цель — упрощение работы с древовидными структурами. Представим, ч…

  • пятница, 20 декабря 2024 г. в 00:00:09
golang
Как построить оценку качества контакт-центра с помощью Speech Analytics API

Привет, Хабр! Контакт-центры — это важная линия взаимодействия бизнеса с клиентами. Клиенты могут быть разными: кто-то жалуется на задержки, кто-то хочет вернуть товар, а кто-то просто звонит выразить благодарность. Но для бизнеса важно понять одно: насколько хорошо оператор решил проблему клиента? И ушел ли клиент довольным?Раньше оценка качества работы операторов выглядела так: субъективные анкеты, прослушивание случайных звонков, мнения «экспертов» на основании пары реплик. Сегодня это прошл…

  • суббота, 14 декабря 2024 г. в 00:00:11