Category : golang

golang
Go в GUI, я создал

Идея сделать игру под Android на Go была неоднозначной, но интересной. Я легко мог представить Go не только в привычной для него сервисной нише, но и в прикладной — его кросс-платформенность и близость к системному уровню в сочетании с простотой пришлись бы там очень кстати. И вот мы здесь — игру мечты я пока не создал, но пару игр попроще сделать удалось.В этой статье я хочу рассказать об инструментах, появившихся по ходу работы. Сами инструменты я объединил в библиотеку Youngine и опубликовал…

  • суббота, 18 января 2025 г. в 00:00:14
golang
Так ли плох Go в глазах C++ разработчика: пишем микросервис и учимся на ошибках

Миллионы пользователей ежедневно заходят на Яндекс Маркет. И одна из ключевых задач сервиса — показывать им точные сроки доставки на поиске и в корзине. При пиковых нагрузках это около 40 тысяч запросов в секунду. Как обеспечить столь быструю и точную обработку данных о доставке?Привет, Хабр! Меня зовут Никита Деревянко. Я руковожу разработкой логистической платформы Яндекс Маркета. Люблю играть в шахматы, бильярд и программировать. Изучаю японский язык, чтобы тренировать мозг и смотреть аниме …

  • суббота, 18 января 2025 г. в 00:00:14
golang
Когда слайсы начинают расти

ВведениеЯ не применяю Go в коммерческой разработке, я недавно начал изучать и применять этот язык для пет-проектов и разного рода опытов. В этой статье речь пойдёт о слайсах. Пример, который мы будем рассматривать, мне показал коллега, за что ему большое спасибо. Что такое "слайс"?Говоря простым языком, слайсы — это надстройка, интерфейс над массивами, который позволяет нам более гибко с ними работать. Мы можем работать со слайсом как с динамическим массивом: добавлять или удалять элем…

  • пятница, 17 января 2025 г. в 00:00:15
golang
Нетипизированные константы. От ошибки в учебнике к глубокому пониманию Go

Всем привет! Сегодня расскажем, как пример с ошибкой из учебника по языку Go вызвал любопытство у бывшего стажера «Автомакона» (и нынешнего программиста) Олега Самсонова и к чему это привело.Путь в IT — это всегда погружение в огромный массив информации, изучение примеров и поиски ответов на вопросы «почему так» и «как это работает». Особенно на старте карьеры важно не только поглощать знания, но и ставить под сомнение их источники, ведь именно так мы лучше понимаем, как работает весь механизм.…

  • пятница, 17 января 2025 г. в 00:00:14
golang
Забитый канал — как вы с ним поступаете в Go?

Разработчики языка Go подбросили программистам занятную дилемму - в виде фиксированного размера буфера у каналов (тех что используются для передачи сообщений между потоками - точнее "go-рутинами" приложения). На днях на ревью увидел у коллеги код в духе:хотим оповещать "подписчиков" об изменениях в БД, асинхронноиспользуем для этого канал с буфером какой-то вместимости (например, 50)когда вызывается коллбэк от БД, мы создаём информационное сообщение и пытаемся затолкать его в ка…

  • среда, 15 января 2025 г. в 00:00:12
golang
Пишем ping на Go: сможем ли составить конкуренцию стандартному ping?

Всем привет! Меня зовут Игорь Горбунов, я разрабатываю платформу базовой станции в YADRO и изучаю Golang почти год. Уже перевалил рубеж «вывести на экран сумму четных элементов среза» и захотел написать что-то более сложное.Я интересуюсь сетями, и решил посмотреть, как в Go реализуется работа с протоколами ICMP и ICMPv6. Наиболее простая задача, связанная с ними, — реализация программы ping. Она отправляет указанному узлу сети запросы ICMP типа Echo-Request и ожидает ответы типа Echo-Reply.На п…

  • среда, 15 января 2025 г. в 00:00:11
golang
К слову об именах переменных в Go

Субботним утречком решил поговорить о кое-чем действительно важном. Управление памятью, сборщик мусора — это всё недостойная обсуждения фигня. Имена переменных — вот это действительно стоящая тема. Не вижу, почему бы трем благородным донам её не обсудить.Для тех, кто пишет на Go давно, изложенное ниже может показаться очевидным, но буду рад вашим комментам (панамку за некоторую сумбурность изложения приготовил).Одной из ключевых особенностей Go является ориентация на читаемость и краткость кода…

  • воскресенье, 12 января 2025 г. в 00:00:10
golang
Импорт из Jira: перенос с запахом карри

Привет, Хабр!Меня зовут Егор, я руководитель разработки таск-менеджера. В комментах к прошлой статье были вопросы про экспорт из Jira на наш аналог, так что мы решили поделиться своим опытом решения проблем, с которыми на этой пути сталкивается идущий. Пойдем по пунктам: проблема – решение. Эта статья может быть интересна тем, кто сейчас в поисках рабочих костылей, а еще – тем, кто уже решил проблему экспорта по-своему.Получение пользователей с доступом к проектуНачнем с того, что у Джиры в при…

  • пятница, 10 января 2025 г. в 00:00:05
golang
Реализация Paxos на Go: создаем алгоритм консенсуса без готовых решений

Привет, Хабр!Paxos — это алгоритм, который позволяет нескольким узлам прийти к единому мнению, даже если не все из них работают идеально. Даже если один или два узла оказываются недоступными, Paxos всё равно помогает согласовать решение, а остальным — узнать о том, что вообще было принято.Вот такие вещи — согласование, отказоустойчивость, выбор лидера — по сути, и составляют ядро распределённых систем. Они позволяют избежать катастроф.Основы PaxosЗадача Paxos — получить согласие всех участников…

  • среда, 8 января 2025 г. в 00:00:06