Category : golang

golang
Поймите указатели в Go меньше чем за 800 слов или вернём деньги

Не нашел перевод этой статьи, решил сделать, ногами не бейтеОригинал: Understand Go pointers in less than 800 words or your money backАвтор: Дэйв ЧейниДата: 26 апреля 2017 г.Проще говоря, указатель — это значение, которое указывает на адрес другого значения. Это определение из учебников, но если вы пришли из языка, который не позволяет работать с адресами переменных, эта фраза может показаться магической.Давайте разберемся.Что такое память?Компьютерная память (RAM) — это последовательность ячее…

  • вторник, 14 октября 2025 г. в 00:00:11
golang
Как мы нашли баг в компиляторе Go

Каждую секунду в дата-центры Cloudflare в 330 городах отправляется 84 миллиона HTTP-запросов. Из-за этого даже самые редкие из багов возникают достаточно часто. На самом деле, именно наши масштабы позволили нам недавно обнаружить в компиляторе Go на arm64 баг, вызывающий состояние гонки в генерируемом коде.В этом посте мы расскажем о том, как впервые столкнулись с багом, исследовали его и докопались до его первопричины.Исследование странной паникиВ нашей сети работает сервис, конфигурирующий яд…

  • вторник, 14 октября 2025 г. в 00:00:10
golang
runo — ассистент для работы с репозиторием. Часть 1

Если настройка локальной среды разработки занимает больше 5 минут, или требует каких-то "врождённых" знаний, это налог на каждого разработчика. Я хочу просто клонировать репозиторий, запустить пару команд и получить работающую среду разработки...Mark AllenДумаю, что многие из вас за свою карьеру успели повидать много разных репозиториев. Среди них наверняка были хорошие и не очень; большие и маленькие; с Python, Go, Java, C++ и много чем ещё. Все они были очень разными, но первые вопрос…

  • суббота, 11 октября 2025 г. в 00:00:08
golang
Gossip-оператор для Kubernetes вместо централизованных контроллеров

Привет, Хабр!Все мы привыкли к операторам Kubernetes с их паттерном leader election. Один под становится лидером, остальные молча ждут своей участи в тени, обрабатывая события только через его призму. Надежная схема? Безусловно. Но что, если я скажу, что можно создать оператор вообще без единой точки отказа, где каждый под равен друг другу, а координация действий происходит через механизм слухов, gossip‑протокол? Звучит как ересь? Возможно. Но это работает.Наши кластеры Kubernetes разрослись до…

  • пятница, 10 октября 2025 г. в 00:00:17
golang
Erlang-совместимые битовые строки в Go: создаём funbit

TL;DR: Мы перенесли битовый синтаксис Erlang в Go, чтобы парсить бинарные протоколы без боли. Получилась библиотека funbit — декларативный парсер с поддержкой не выровненных по байтам данных.ПредысторияВ процессе разработки funterm — мультиязыкового REPL, объединяющего Python, Lua, JavaScript и Go — мы столкнулись с необходимостью эффективной работы с бинарными данными. Нужно было парсить сетевые протоколы, обрабатывать структурированные данные и работать с битовыми полями на уровне отдельных б…

  • четверг, 9 октября 2025 г. в 00:00:09
golang
Группировка сабтестов в Go: от простого к сложному

Команда Go for Devs подготовила перевод статьи о том, как правильно группировать сабтесты в Go. Автор показывает, что в большинстве случаев достаточно держать тесты плоскими, а когда нужна разная инициализация и очистка — добавить лишь один уровень вложенности. В статье разбираются плюсы и минусы разных подходов: от ручных t.Run до reflection-хаков и сторонних библиотек.Go поддерживает сабтесты начиная с версии 1.7. С помощью t.Run можно вкладывать тесты друг в друга, задавать имена кейсам и пр…

  • четверг, 9 октября 2025 г. в 00:00:08
golang
Java vs Golang для крупных проектов с сложной бизнес-логикой

Disclaimer: Материал статьи создан с использованием ИИ (с включенной опцией веб поиска). Здесь не будет рабочих кейсов по заявленной теме. Кроме этого, текст практически не редактировался, так, например, иногда ИИ применяет специальные термины на английском, не переводя их на русский язык - в статье они по большей части оставлены также без перевода. Иллюстрация к статье сгенерирована с помощью ИИ.Неоднократно встречал мнение, что Golang не слишком хорош для сложной бизнес-логики на больших прое…

  • четверг, 9 октября 2025 г. в 00:00:07
golang
Как создать TUI утилиту на GO

  • вторник, 7 октября 2025 г. в 00:00:13