Новости

Post Thumbnail

C на Go

Интересный пропозал - добавить возможность сборки Go-пакетов, использующих cgo для взаимодействия с C-библиотеками, без установленного C-тулчейна Предлагается описывать C-интерфейс на языке Go с помощью аннотаций //cgo:binding, а cmd/cgo будет генерировать ...

Post Thumbnail

Бенчим джейсон

Автор на реальном API с нагрузкой 50M запросов/сутки)сравнивает производительность JSON-библиотек в Go - encoding/json, encoding/json/v2 (Go 1.27), jsoniter, easyjson и sonic, Все на одном и том же пейлоадом с вложенным слайсом, map[string]interface{} и time....

Post Thumbnail

Rune

Команда Unstable Build заопенсорсила свою нативную IDE Rune, написанную на Go. Под капотом - GPU-ускорение, собственный терминал, REPL и расширяемое ядро, которое общается с расширениями по gRPC. Поддерживается, конечно, Go, а еще Rust и Zig. И еще у них...

Post Thumbnail

Специализированные аллокаторы

В Go 1.27 появилась оптимизация выделения памяти для объектов размером до 80 байт. Аллокации ускоряются на 20–30%, а приложения с интенсивным выделением памяти - до 1%. Идея в том, что рантайм генерирует специализированные версии функции mallocgc для каждо...

Post Thumbnail

Шейдеры на ebiten

Практический разбор пиксельных шейдеров в игровом движке Ebitengine для Go, где шейдеры пишутся на языке Kage, который транслируется в GLSL/HLSL. Автор на примерах из своих игр Roboden и Decipherism показывает пять типичных задач. Наложение маски урона для...

Post Thumbnail

Прокси для базы данных

Автор пишет простой такой прокси на Go в учебных целях вдохновившись статьей Figma о том, как их команда баз данных построила DBProxy для перехвата SQL-запросов и маршрутизации их по разным узлам Postgres. Он реализует проксирование TCP-соединений между кл...

Post Thumbnail

У нас отмена!

Статья разбирает, как пакет singleflight в Go предотвращает лавину запросов к кэшу. Он прекрасно схлопывает одинаковые запросы в одну операцию, но есть нюансы Автор на примере IsleDB показывает "ловушку контекста первого вызывающего": если фетч использует к...

Post Thumbnail

DDD во времена AI

Статья утверждает, что с ростом AI-кодинга идеи Domain-Driven Design становятся еще актуальнее DDD никогда не был строго про код - главная сложность всегда заключалась в понимании предметной области и ее моделировании. Автор подчеркивает, что доменная модел...

Post Thumbnail

Конкурентный сервер на Go

Это восьмая часть серии о конкурентных сетевых серверах, в этот раз посвященная Go. В прошлый раз было про Rust Автор показывает, как язык решает описанные ранее задачи. Статья начинается с последовательного сервера с state machine, затем показывает конкуре...

Post Thumbnail

Горутины повсюду

Частенько мы пишем Go-сервисы, не задумываясь о том, кто и как запускает наши горутины. Возникает феномен "случайного рантайма приложения": когда Go-сервис обрастает множеством долгоживущих горутин, их время жизни и связи оказываются неявно размазанными по код...

Post Thumbnail

Интересные баги

Команда sigma star(хз кто это) нашла и исправила давнюю ошибку в рантайме Go, проявлявшуюся только на 32-битных встраиваемых Linux-системах. Приложение периодически падало с ошибкой "runtime: netpoll: eventfd ready for something unexpected". Корень проблем...

Post Thumbnail

GopherCon UK 2026

Видосы с GopherCon UK 2026 подоспели. Много всего интересного. Девид Чейни, Билл Кеннеди и другие широко известные в узких кругах докладчики. И даже про AI есть вполне адекватные доклады

Post Thumbnail

Используем Datastar

В статье интеренсно про использование Datastar. Я вот первый раз про него услашал Автор рассказывает, как построить веб-версию утилиты htop используя Go-бэкенд и, собственно, гипермедиа-фреймворк Datastar. Вместо фронтенд-фреймворка вроде React здесь HTML-п...

Post Thumbnail

На Rust после Go

Автор, пять лет писавший на Go, сначала скептически отнесся к появлению Rust в его команде. Но появился проект, в котором нужны были низкое потребление памяти и mpmc-обмен сообщениями. Пожтому несколько CLI и сервисов решили переписать на Rust и это застав...

Post Thumbnail

Поговорим про PGO

Profile-guided optimization (PGO) заменяет эвристические догадки компилятора реальными замерами. Вы запускаете программу, записываете CPU-профиль и передаете его компилятору для повторной сборки, который использует эти данные в основном для инлайнинга гор...

Post Thumbnail

Время читать код

Автор утверждает, что главное узкое место разработки незаметно сместилось с написания кода на его чтение: теперь мы одержимы скоростью генерации, но ревью AI-сгенерированного кода читать тяжелее, чем написанный вручную, и именно проверка стала самой медленной ...

Post Thumbnail

Go для Dreamcast

Я только на прошлой неделе публиковал пост, в котором искал инструмент для программирования под Sega Dreamcast. И оказывается, такой инструмент уже давно есть! И даже на Go. libgodc - это минималистичная реализация рантайма Go для игровой консоли Sega Dream...

Post Thumbnail

Батчинг

Статья показывает, как в Go аккуратно батчить данные, поступающие в реальном времени, на примере обновления поля last_active_at для каждого запроса пользователя - вместо тысяч одиночных UPDATE группировать их в один UPDATE ... WHERE id IN (...). Суть подхо...

Post Thumbnail

KV на S3

Статья разбирает, как построить key-value базу данных, у которой основным слоем хранения является объектное хранилище вроде S3, на примере движка IsleDB на Go, и почему наивная замена "файлов на диске" на "объекты в бакете" не работает. СУБД неявно полагается ...

Post Thumbnail

Go идеален для AI

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

Post Thumbnail

Soppo

Пятничный язык программирования! Я про него уже писал, но он продолжает развиваться и стоит взглянуть на него еще разок. Этот язык программирования сохраняет синтаксис Go, но добавляющий недостающие возможности: перечисления с паттерн матчингом, оператор ? ...