Category : golang

golang
Группировка ExCobalt снова в обойме и обзавелась новым бэкдором на Go

Спустя месяц в копилку расследований экспертного центра безопасности Positive Technologies (PT Expert Security Center) добавилось еще одно, причем о группировке ExCobalt, за которой мы следим с ноября прошлого года. Напомним: тогда наша команда выяснила, что в составе ExCobalt есть участники небезызвестной APT-группы Cobalt (ее профайл можно посмотреть здесь), которые активны как минимум с 2016 года. ExCobalt поменяла сферу интересов и, в отличие от предшественника, специализируется на кибершпи…

  • понедельник, 1 июля 2024 г. в 00:00:10
golang
Go gamedev: низкоуровневое API рисования в Ebitengine

Я уже несколько лет использую игровой движок Ebitengine, но ранее у меня получалось обходиться лишь высокоуровневым способом отрисовки объектов — DrawImage. Функция DrawTriangles казалась не очень понятной человеку, который привык к концепции "есть спрайт — можно рисовать". Сейчас у меня стали появляться задачи, под которые отлично подходит DrawTriangles. Сегодня я расскажу, когда и как стоит использовать эту функцию. Давайте разбираться, что это за треугольники и с чем их едят. Предис…

  • воскресенье, 30 июня 2024 г. в 00:00:07
golang
Как упаковать бэкенд-код на Go для аналитики на базе Spark

Всем привет! Меня зовут Ваня Ахлестин, я занимаюсь поддержкой и развитием аналитической платформы кластера Search&Recommendations на базе Spark и Hadoop. Большинство сервисов в хайлоаде, работу которых мы логируем и исследуем, давно переписаны на Go. Из-за этого часто необходимо переиспользовать логику сервиса внутри аналитического или ML-приложения на Spark. Как примеры такого кода можно взять расчёт скоров по сложному запросу или ранжирование айтемов для выдачи. Реимплементировать и подде…

  • суббота, 29 июня 2024 г. в 00:00:06
golang
Выжимаем из Go максимум производительности

Разработчики, которые используют Go, сталкиваются с задачей выжать максимальную производительность из каждой строки кода. Но что делать, если оптимизировать уже нечего, а увеличивать скорость всё равно надо?Меня зовут Никита Галушко. Я старший программист-разработчик в отделе высоконагруженных систем и оптимизации ВКонтакте. В статье поделюсь, какие хитрости помогут использовать Go на полную мощность.О чём будет речь в статьеРасскажу про память, а именно про small-size объекты и интерфейс, пока…

  • четверг, 27 июня 2024 г. в 00:00:11
golang
Почему итераторы в Go 1.23 многим так не нравятся

ПРИМЕЧАНИЕ: данный пост является адаптацией следующего твита (однако абсолютно самодостаточен): https://x.com/TheGingerBill/status/1802645945642799423TL;DR язык Go сейчас воспринимается как слишком “функциональный”, а не столь беззастенчиво  императивный язык.Недавно мне попался в твиттере пост, демонстрирующий, как будут устроены итераторы в Go 1.23 (эта версия выйдет в августе 2024 года). У меня складывается впечатление, будто многим в сообществе это нововведение не нравится. Я решил высказат…

  • вторник, 25 июня 2024 г. в 00:00:06
golang
Микросервисы с Go-Micro на примере

Привет, Хабр!Микросервисная архитектура представляет из себя подход, в котором каждый сервис отвечает за конкретную функциональность и может быть развернут, обновлен и масштабирован независимо от других. Go-Micro — это фреймворк, который упрощает создание таких микросервисов на Golang.Основные фичи Go-Micro:Автоматическое обнаружение сервисов: сервисы автоматом регистрируются и обнаруживаются.Встроенная балансировка нагрузки: запросы равномерно распределяются между экземплярами сервисов.Поддерж…

  • вторник, 25 июня 2024 г. в 00:00:05
golang
История переформатирования 100 000+ файлов Google в 2012 году

В сентябре далёкого 2012 года я трудился начинающим инженером в Google, занимаясь разработкой Bazel (инструмент сборки, внутри компании также известный под именем Blaze). Однажды мне на почту пришло загадочное приглашение из Google Календаря. Его прислали два инженера из США, пригласив на встречу меня и моего тимлида. Я сразу узнал имена отправителей — это были Роб Пайк и Расс Кокс. И хотя работать мне с ними не доводилось, я был о них наслышан. Расса Кокса я знал по его блогу, который любил…

  • понедельник, 24 июня 2024 г. в 00:00:06
golang
Анти-паттерны в Go Web Applications

В какой-то момент моей карьеры меня перестало радовать ПО которое я разрабатывал.Больше всего мне нравилось работать с низкоуровневыми деталями и сложными алгоритмами. Но после перехода на пользовательские приложения эта часть работы почти исчезла. Теперь программирование казалось мне просто перемещением данных из одного места в другое с помощью уже готовых библиотек и инструментов. Знания, которые я получил раньше о программном обеспечении, уже не были такими полезными.Откровенно говоря, больш…

  • понедельник, 24 июня 2024 г. в 00:00:05
golang
# Casbin — легко о сложном в авторизации

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

  • суббота, 22 июня 2024 г. в 00:00:13