Привет, Хабр!Меня зовут Олег, я работаю разработчиком в одной крупной IT-компании и недавно в разговоре со знакомыми логистами, я узнал, что у них в штате работает блокчейн-специалист. Для меня мир логистики был максимально далек от цепочки блоков, как и цепочка блоков от меня, поэтому я решил погрузиться в эту технологию.Прочитав множество статей и несколько книг, я выяснил, что теория с практикой идут рядышком, но понимание того, как же блокчейн работает на самом деле, не пришло, поэтому было…
ВведениеНа тему профилирования CPU написано много статей. Тем не менее, эта тема обычно рассматривается в контексте конкретных задач, проблемы которых затеняют некоторые тонкости. Это может вызвать трудности или привести к ошибочному выводу при анализе собственного решения. В этой статье нет примера успешной оптимизации какого-нибудь невероятного кода, но на простейших примерах объясняется, какую информацию может дать профиль CPU и как ей воспользоваться. А также подсвечиваются некоторые тонкос…
Идея сделать игру под Android на Go была неоднозначной, но интересной. Я легко мог представить Go не только в привычной для него сервисной нише, но и в прикладной — его кросс-платформенность и близость к системному уровню в сочетании с простотой пришлись бы там очень кстати. И вот мы здесь — игру мечты я пока не создал, но пару игр попроще сделать удалось.В этой статье я хочу рассказать об инструментах, появившихся по ходу работы. Сами инструменты я объединил в библиотеку Youngine и опубликовал…
Миллионы пользователей ежедневно заходят на Яндекс Маркет. И одна из ключевых задач сервиса — показывать им точные сроки доставки на поиске и в корзине. При пиковых нагрузках это около 40 тысяч запросов в секунду. Как обеспечить столь быструю и точную обработку данных о доставке?Привет, Хабр! Меня зовут Никита Деревянко. Я руковожу разработкой логистической платформы Яндекс Маркета. Люблю играть в шахматы, бильярд и программировать. Изучаю японский язык, чтобы тренировать мозг и смотреть аниме …
ВведениеЯ не применяю Go в коммерческой разработке, я недавно начал изучать и применять этот язык для пет-проектов и разного рода опытов. В этой статье речь пойдёт о слайсах. Пример, который мы будем рассматривать, мне показал коллега, за что ему большое спасибо. Что такое "слайс"?Говоря простым языком, слайсы — это надстройка, интерфейс над массивами, который позволяет нам более гибко с ними работать. Мы можем работать со слайсом как с динамическим массивом: добавлять или удалять элем…
Всем привет! Сегодня расскажем, как пример с ошибкой из учебника по языку Go вызвал любопытство у бывшего стажера «Автомакона» (и нынешнего программиста) Олега Самсонова и к чему это привело.Путь в IT — это всегда погружение в огромный массив информации, изучение примеров и поиски ответов на вопросы «почему так» и «как это работает». Особенно на старте карьеры важно не только поглощать знания, но и ставить под сомнение их источники, ведь именно так мы лучше понимаем, как работает весь механизм.…
Разработчики языка Go подбросили программистам занятную дилемму - в виде фиксированного размера буфера у каналов (тех что используются для передачи сообщений между потоками - точнее "go-рутинами" приложения). На днях на ревью увидел у коллеги код в духе:хотим оповещать "подписчиков" об изменениях в БД, асинхронноиспользуем для этого канал с буфером какой-то вместимости (например, 50)когда вызывается коллбэк от БД, мы создаём информационное сообщение и пытаемся затолкать его в ка…
Всем привет! Меня зовут Игорь Горбунов, я разрабатываю платформу базовой станции в YADRO и изучаю Golang почти год. Уже перевалил рубеж «вывести на экран сумму четных элементов среза» и захотел написать что-то более сложное.Я интересуюсь сетями, и решил посмотреть, как в Go реализуется работа с протоколами ICMP и ICMPv6. Наиболее простая задача, связанная с ними, — реализация программы ping. Она отправляет указанному узлу сети запросы ICMP типа Echo-Request и ожидает ответы типа Echo-Reply.На п…
Субботним утречком решил поговорить о кое-чем действительно важном. Управление памятью, сборщик мусора — это всё недостойная обсуждения фигня. Имена переменных — вот это действительно стоящая тема. Не вижу, почему бы трем благородным донам её не обсудить.Для тех, кто пишет на Go давно, изложенное ниже может показаться очевидным, но буду рад вашим комментам (панамку за некоторую сумбурность изложения приготовил).Одной из ключевых особенностей Go является ориентация на читаемость и краткость кода…