Category : golang

golang
Приручаем монстров в Go: боремся с разросшимся Makefile и монолитом — без распила на микросервисы

Мы в ответе за тех, кого разрастили. Go-разработчики из YADRO, Ви.Tech и Weborama  рассказали, как работать с проектами, которые без должного внимания стали бы техдолгом. А еще — поделились опытом генерации стабов и организации нетривиального стриминга данных на Go. Собираем проект на Go: от Make до MiseРассказал: Даниил Подольский, эксперт по разработке ПО, Go-евангелист, YADROКоротко о сути доклада: Команда Common Yadro Platform, в которой работает Даниил, вырастила настоящего монстра в виде …

  • суббота, 1 февраля 2025 г. в 00:00:04
golang
Эпическое программирование: пишем понятные и поддерживаемые саги

В мире микросервисов часто возникает необходимость сделать согласованные изменения в сервисах. Один из надёжных способов добиться этого — использовать паттерн «Сага», который помогает выполнять распределённые транзакции и при сбоях корректно откатывать изменения. Но, как всегда, есть нюансы, начиная от нереалистичных материалов на эту тему и заканчивая реальным опытом использования. Алексей Бакин ведёт канал «Заботливый разработчик» и занимается разработкой внутренних продуктов. Один из них — э…

  • пятница, 31 января 2025 г. в 00:00:10
golang
P2P на Go: библиотека libp2p

Привет, Хабр!Сегодня рассмотрим библиотеку libp2p в Go. libp2p — это модульная библиотека для построения P2P-сетей. Libp2p выросла из проекта IPFS, но теперь активно используется в блокчейнах, мессенджерах и других децентрализованных приложениях. Главная фича библиотеки — она даёт возможность полностью контролировать P2P-коммуникации.Libp2p разделена на несколько модулей, которые можно подключать по мере необходимости:Transport: низкоуровневое соединение (TCP, WebSocket, QUIC, WebRTC).Muxing: п…

  • четверг, 30 января 2025 г. в 00:00:15
golang
Как рождаются, живут и умирают горутины

Жизненный цикл горутиныВсем привет! Меня зовут Дима, я лид команды государственных интеграций в Ozon Банке и очень люблю ковыряться в сурс-коде Go. Это всегда очень интересно: никогда не знаешь, что встретится в очередной функции. Иногда могут быть какие-то невероятные костыли, каждый из которых, справедливости ради, — осознанное задокументированное решение. А иногда — элегантные подходы, вдохновляющие на написание ещё одной json-варилки.Вы когда-нибудь, глядя на горутину, думали, что у неё под…

  • четверг, 30 января 2025 г. в 00:00:15
golang
Алгоритмы сортировки в Go

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

  • среда, 29 января 2025 г. в 00:00:06
golang
Рекурсия

В этой статье вы узнаете о рекурсии и о том, как она работает.Примеры в этой статье на языке Go, но концепция рекурсии одинакова для любого языка программирования.Что такое рекурсия?В большинстве языков программирования функция может вызывать другую функцию. Но функция также может вызывать саму себя. Рекурсия - это техника, при которой функция вызывает саму себя.Пример:// Функция для вычисления факториала с использованием рекурсии func factorial(n int) int { if n == 0 { // Базовый случай: факт…

  • среда, 29 января 2025 г. в 00:00:05
golang
Как работает рекурсия?

В этой статье вы узнаете о рекурсии и о том, как она работает.Примеры в этой статье на языке Go, но концепция рекурсии одинакова для любого языка программирования.Что такое рекурсия?В большинстве языков программирования функция может вызывать другую функцию. Но функция также может вызывать саму себя. Рекурсия - это техника, при которой функция вызывает саму себя.Пример:// Функция для вычисления факториала с использованием рекурсии func factorial(n int) int { if n == 0 { // Базовый случай: факт…

  • вторник, 28 января 2025 г. в 00:00:08
golang
Гайд по подготовке к собеседованию для Backend-разработчиков

Тимур Мухитдинов, Senior Software Development Engineer в Booking.com, поделился своими советами по подготовке к собеседованию на позицию backend‑разработчика.Недавно я провёл своё 40-е собеседование в Booking.com, где оцениваю кандидатов по кодингу, системному дизайну и код‑ревью. Я хорошо понимаю ожидания от кандидатов на разные уровни: core developer, senior developer и engineering manager. Эти знания могут быть полезны для тех, кто готовится к собеседованию в Booking.com или других крупных к…

  • вторник, 28 января 2025 г. в 00:00:07
golang
Benchmark — тесты в Go

Позвольте мне начать с вопроса: Как бы вы протестировали производительность части кода или функции в Go? Если вы уже опытный разработчик здесь вы ничего нового не узнаете, но для новичков это отличная возможность узнать что-то новое и попрактиковаться.В этом уроке я покажу вам, очень подробно, как использовать потрясающий инструмент бенчмаркинга, который встроен в пакет тестирования Golang.Давайте начнёмЧто такое Benchmark - тестыВ Go Benchmark - тесты используются для измерения производительн…

  • понедельник, 27 января 2025 г. в 00:00:05