Новости

Post Thumbnail

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

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

Post Thumbnail

У нас отмена!

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

Post Thumbnail

DDD во времена AI

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

Post Thumbnail

Введение в Racket

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

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

wyzer

Свежий пятничный язык программирования! Wyzer - это современный язык программирования, который позиционируется как "молниеносно быстрый" и безопасный, с упором на простоту по сравнению с Rust. Вместо сборщика мусора или сложного borrow checker он исполь...

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, но добавляющий недостающие возможности: перечисления с паттерн матчингом, оператор ? ...

Post Thumbnail

Typescript Defer

Автор экспериментировал с добавлением оператора defer из Go в компилятор TypeScript, реализовав парсинг, проверки и AST-трансформацию, которая оборачивает тело функции в try/finally и выполняет отложенные вызовы в обратном порядке (LIFO) с захватом значений на...

Post Thumbnail

Raft сломан

Ребята из Antithesis(я хз кто это) протестировали несколько популярных реализаций протокола Raft в своей среде детерминированной симуляции с инжекцией сбоев. Они выбрали HashiCorp Raft, Aeron Cluster, OpenRaft и MicroRaft. И да, они нашли критические баги в ка...

Post Thumbnail

Движение назад

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