Category : golang

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
golang
Разработка на Go, верификация, DevOps и программирование микроконтроллеров на RISC-V: выбирай беспл…

Новость для тех, кто хочет сделать начало следующего года особенным для своего развития. Второй год мы запускаем бесплатные практические курсы по востребованным инженерным направлениям. К уже классическим трекам по верификации, DevOps и Go-разработке добавился новый: «Программирование микроконтроллеров RISC-V: от основ работы с открытой архитектурой до создания собственного устройства». Регистрируйтесь на курсы до 16 января 2025 года, чтобы изучить современные подходы к разработке, создать прое…

  • суббота, 14 декабря 2024 г. в 00:00:10
golang
Picostress — наш подход к нагрузочному тестированию

Привет, меня зовут Георгий Ломакин, и я инженер по нагрузочному тестированию в компании Picodata — разработчике одноимённой NewSQL СУБД. В этой статье я поделюсь своим опытом нагрузочного тестирования и расскажу, как мы строили эту практику с нуля.Мы выбираем распределённые системы за производительность и надёжность. Однако без постоянного нагрузочного тестирования и анализа отчётов после него, и то и другое лишь обещания. Конечно же, нагрузочное тестирование обязательно и в нашей команде, разр…

  • пятница, 13 декабря 2024 г. в 00:00:15
golang
5 паттернов проектирования в Go на примере котиков

Привет, Хабр! Сегодня мы рассмотрим реализацию паттернов проектирования на Go, и, чтобы было не скучно, возьмем главными героями котиков. Будем разбирать 5 популярных паттернов: Singleton, Factory Method, Strategy, Observer, Decorator. SingletonПаттерн будет хорош тогда, когда в компании есть один кот, который отвечает, например, за доступ к единственной миске с едой, мы хотим быть уверены, что он существует в единственном экземпляре, и все остальные обращаются к нему как к глобальному ресурсу.…

  • четверг, 12 декабря 2024 г. в 00:00:07
golang
Go: фокусы трассировки

ВведениеДоброго времени суток!Гошка знатна не только простотой реализации многопоточности, но и мощными встроенными инструментами мониторинга и тестирования. Одним из таких инструментов является трассировка. На эту тему есть множество статей. Казалось бы, что здесь обсуждать? Случится авария - выполнишь несложную команду, и всё станет понятно. Тем не менее, получить трассировку - полдела. Необходимо ещё её правильно понять, т.к. некорректное восприятие может, в лучшем случае, вызвать некоторое …

  • четверг, 12 декабря 2024 г. в 00:00:07