Category : golang

golang
Going NATS

Все инновации так или иначе будут связаны с глобальными, распределенными системами в которых ключевую роль будут играть периферийные вычисления.Многие из инструментов, которые мы успешно используем для решения текущих задач, могут быть неадекватными для новых вызовов.В качестве примера таких инструментов, можно привести Ansible и SSH. Ansible, как известно использует SSH в качестве основного транспорта для выполнения команд на удаленных машинах. Это своего рода RPC для системных администраторов…

  • вторник, 21 января 2025 г. в 00:00:09
golang
Cоздание Приватной Сети Блокчейн на Go. Часть 1

Привет, Хабр!Меня зовут Олег, я работаю разработчиком в одной крупной IT-компании и недавно в разговоре со знакомыми логистами, я узнал, что у них в штате работает блокчейн-специалист. Для меня мир логистики был максимально далек от цепочки блоков, как и цепочка блоков от меня, поэтому я решил погрузиться в эту технологию.Прочитав множество статей и несколько книг, я выяснил, что теория с практикой идут рядышком, но понимание того, как же блокчейн работает на самом деле, не пришло, поэтому было…

  • понедельник, 20 января 2025 г. в 00:00:07
golang
Go: тонкости профилирования CPU

ВведениеНа тему профилирования CPU написано много статей. Тем не менее, эта тема обычно рассматривается в контексте конкретных задач, проблемы которых затеняют некоторые тонкости. Это может вызвать трудности или привести к ошибочному выводу при анализе собственного решения. В этой статье нет примера успешной оптимизации какого-нибудь невероятного кода, но на простейших примерах объясняется, какую информацию может дать профиль CPU и как ей воспользоваться. А также подсвечиваются некоторые тонкос…

  • воскресенье, 19 января 2025 г. в 00:00:07
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