Новости

Post Thumbnail

pprof

Как заявляется, это полное руководство по использованию pprof. Ну не совсем полное, но в закладки добавить стоит Автор подробно описывает пять основных типов профилей - CPU, память, горутины, блокировки и мьютексы. Объясняет, какие проблемы каждый из них по...

Post Thumbnail

Go и Wails

Алекс Плютау рассказывает о создании десктопного приложения для двухфакторной аутентификации на Go с использованием фреймворка Wails. Автор подробно объясняет принцип работы Time-based One-Time Password, включая генерацию секрета, использование HMAC-SHA1 и дин...

Post Thumbnail

Go Source Code

Это интерактивный практикум, где вы научитесь модифицировать и экспериментировать с исходным кодом языка программирования Go. Такой себе практический семинар, который поможет вам разобраться в устройстве компилятора и среды выполнения Go, научит собирать их и ...

Post Thumbnail

etcd как пример

Нет ничего лучше хорошего и наглядного примера. Особенно в разработке Автор делится опытом использования кодовой базы etcd в качестве практического примера для изучения организации gRPC-сервисов на Go. Вместо сложных проектов вроде Kubernetes или Docker, et...

Post Thumbnail

Google File System

В статье автор рассказывает о своей реализации распределенной файловой системы Google File System на языке Go, уместившейся в один файл без внешних зависимостей. Он воссоздает ключевые концепты легендарной системы, описанные в одноименной статье 2003 года, реа...

Post Thumbnail

Singapore 2025

Я тут вам видосы собрал на выходных посмотреть. Конференция GopherCon Singapore 2025. Там, конечно, много всего про AI, но и нормальный доклады тоже есть. Кста, там есть доклад от старого доброго Дейва Чейни

Post Thumbnail

Wrap

Конечно, обертывание упрощает жизнь и рещает множество проблем с дебагом. С обертыванием значительно проще понять откуда всплыла ошибка Но подход с тотальным обертыванием имеет и обратную сторону: сообщения могут превращаться в громоздкие цепочки, а использ...

Post Thumbnail

Конкатенация

В статье автор сравнил производительность 15 различных методов конкатенации строк в Go, разделенных на два сценария: с фиксированным и переменным количеством аргументов. Автор провел кучу бенчмарков, сравнивающих операторы + и +=, функции fmt.Sprintf, fm...

Post Thumbnail

Счедуллер

Свежая статья из цикла Understanding the Go Runtime. В этой статье автор рассказывает про работу планировщика. Все вот эти G, M и P про которые вы уже наверняка знаете, но всегда полезно повторить

Post Thumbnail

source-level inliner

Алан Донован рассказывает про новую реализацию команды go fix в версии Go 1.26. Конкретно про source-level inliner, который позволяет автоматически обновлять код, заменяя вызовы устаревших функций их актуальными реализациями на уровне исходного кода Автор п...

Post Thumbnail

Не куча но стек

Команда разработчиков Go улучшила производительность языка, перенеся больше операций выделения памяти из кучи в стек, что снижает нагрузку на сборщик мусора и ускоряет выполнение. Автор на примере динамического расширения среза демонстрирует эволюцию этих ...

Post Thumbnail

Язык лох

Залил для вас плейлист с видосами по написанию своего интерпретатора/компилятора. Автор записал небольшой курс по шикарной книжке - Crafting Interpreters. Я очень рекомендую почитать ее. А в видосах автор решил не использовать Java, как в книге, а реализова...

Post Thumbnail

Замыкания и локи

В Go можно спрятать переменную под мьютекс и сделать к ней доступ только через методы Get и Set. Это довольно очевидный подход, который сразу приходит на ум. Всё чётко, пока нужно просто перезаписывать значение целиком. Но как только понадобится его прочитать,...

Post Thumbnail

Почему нет try

В статье объясняется, что настоящая причина отказа Go от введения ключевого слова try кроется не просто в любви к явности кода, а в фундаментальных ограничениях системы типов. Например, в отличие от Zig, где ошибки представлены конечными, известными компилятор...

Post Thumbnail

Кто отменил контекст?

В Go стандартные ошибки context canceled и context deadline exceeded - это те ещё головняки, потому что они говорят, что что-то пошло не так, но умалчивают, почему именно. С версий 1.20 и 1.21 в языке появились функции вроде WithCancelCause и WithTimeoutCause,...

Post Thumbnail

Аллокаторы

Автор продолжает цикл статей про рантайм Go. Теперь на очереде разбор аллокаторов. Аллокатор, по сути, компонента runtime, который эффективно управляет выделением и освобождением памяти в куче. Вместо того чтобы каждый раз обращаться к операционной системе ...

Post Thumbnail

eBPF и XDP

Еще одна неплохая статья по eBPF Аббревиатура eBPF расшифровывается как extended Berkeley Packet Filter (расширенный фильтр пакетов) — изначально она появилась как фильтр пакетов. Особую популярность eBPF получила в последние годы и активно развивается. В э...

Post Thumbnail

Уменьшаем бинарник

Инженеры Datadog рассказали, как всего за полгода им удалось "похудеть". Они уменьшили размер Go-бинарников своего агента мониторинга на 77% и вернулись к показателям пятилетней давности, при этом ничего не сломав и не вырезав ни одной функции. Годами они ...

Post Thumbnail

Sssssh

Автор запилил многопользовательскую "Змейку", в которую можно играть прямо в терминале. Вбиваешь ssh snakes.run и погнал. Самое сложное было заставить все это работать по SSH и не чтобы не сжиралось тонны трафика. Сначала автор мучился с графикой (терминал...

Post Thumbnail

Капасити

В статье объясняется, как работают подсказки ёмкости (capacity hints) в Go для срезов и карт. Срезы имеют явную капасити - это максимальное количество элементов, которое можно в них хранить до перераспределения памяти. В отличие от срезов, у мап нет поняти...

Post Thumbnail

Убер рейт лимиты

В статье описывается эволюция системы ограничения скорости запросов в Uber от разношорстных решений к единой автоматизированной платформе. Изначально каждая команда внедряла собственную логику тротлинга, и это довольно неудобно и сложно в обслуживании. Для...