4gophers

4gophers

@gophernews

Язык программирования Go. Больше новостей про разработку тут https://kodikapusta.ru/Реклама https://kodikapusta.ru/ads

3 465подписчиков
Несколько раз в неделю🇷🇺

Похожие каналы

Все →

Последние посты

4gophers — пост в ТГ канале

Эээксперименты#golangВ Go есть "экспериментальные" возможности, чтобы вы могли опробовать новые функции или изменения в поведении до того, как они будут окончательно зафиксированы. Но знаете ли вы, как их найти и включить или как они переходят в статус общедоступных? Алекс объясняет, как работает эта система.https://kodikapusta.ru/news/1075-eeeksperimentyПоддержать проект на boosty и читать в MAX

8 июн. 2026 г.1 020В Telegram
4gophers — пост в ТГ канале

TigerFS#golangФайловая система — это просто API. А TigerFS — это файловая система, работающая поверх PostgreSQL. Файлы становятся строками в БД, директории — таблицами, а YAML-фронтматер — колонками.Поддерживается два режима. В "file-first" монтируешь БД и работаешь с обычными файлами через vim/cp/mv с полной ACID-транзакционностью. И "data-first", когда монтируешь существующую PostgreSQL и исследуешь её как файловую систему. На Linux используется FUSE, на macOS — NFS.Автор демонстрирует блог на Markdown-файлах, в котором каждый пост — это одновременно файл и строка в tigerfs.posts с колонками title, author, tags, body. Такой подход должен быть полезен для AI-агентов, которые любят работать с файлами, но получают под капотом транзакции, конкурентность и версионирование PostgreSQLhttps://kodikapusta.ru/news/1063-tigerfsПоддержать проект на boosty и читать в MAX

5 июн. 2026 г.1 050В Telegram
4gophers — пост в ТГ канале

Иггдрасиль#golangВ статье про использование Yggdrasil в качестве встраиваемой Go-библиотеки. Yggdrasil это такая экспериментальная оверлей IPv6 mesh-сетьАвтор рассказывает о своём форке yggdrasil-go с более модульной архитектурой. И показывает, как запустить два узла в одном процессе, обмениваться TCP/UDP/HTTP-трафиком поверх Yggdrasil и автоматически подключаться к глобальной сети через autopeeringhttps://kodikapusta.ru/news/1061-iggdrasilПоддержать проект на boosty и читать в MAX

4 июн. 2026 г.1 000В Telegram
4gophers — пост в ТГ канале

Мультиплеер#golangВ статье автор рассказывает про архитектуру управления состоянием своей многопользовательской игры HiddenWars на Go.PostgreSQL выступает единственным источником правды и хранит игроков, узлы, очереди построек, достижения. А Redis используется только для горячих данных, которые можно перестроить из PG: кэши, блокировки для периодических задач и индикация присутствия игроков.Ключевое правило: Redis может исчезнуть — игра станет медленной, но корректной. А вот PG исчезнуть не может. Каждый запрос делает мутацию в транзакции PG, затем инвалидирует кэш до возврата ответа.И ещё в статье несколько нюансов про фоновые задачи на базеhttps://kodikapusta.ru/news/1060-mul-tipleerПоддержать проект на boosty и читать в MAX

3 июн. 2026 г.840В Telegram
4gophers — пост в ТГ канале

httptrace#golangПакет net/http/httptrace из стандартной библиотеки Go позволяет отслеживать внутренние фазы HTTP-запроса: DNS-резолвинг, TCP-подключение, TLS-хендшейк, время до первого байта. Все это через ClientTrace, прикрепляемый к context.Context. Автор показывает, как собрать CLI-утилиту в стиле curl -w и переиспользуемый http.RoundTripper для автоматического логирования таймингов каждого запроса, а также как отслеживать переиспользование соединений. Весь код помещается в пару десятков строк и не требует внешних зависимостейhttps://kodikapusta.ru/news/1059-httptraceПоддержать проект на boosty и читать в MAX

2 июн. 2026 г.858В Telegram
4gophers — пост в ТГ канале

Что нового в Go#golangGo - "скучный" в самом хорошем смысле этого слова: стабильный, надежный и созданный для масштабирования. Из видоса мы узнаем, что нового появилось в Go 1.25 и 1.26. Нам расскажут про сборщик мусора "Green Tea", нативные векторные инструкции и инструменты модернизации кода в команде "go fix". Независимо от того, разрабатываете ли вы AI-агентов или традиционные микросервисы, вы увидите, как Go продолжает предлагать передовые решения, что делает его лучшим выбором для ваших критически важных высокопроизводительных приложенийДоклад с Google IOhttps://kodikapusta.ru/news/1050-chto-novogo-v-goПоддержать проект на boosty и читать в MAX

30 мая 2026 г.999В Telegram
4gophers — пост в ТГ канале

⚙️ Лучшие практики в Go: разбираем на Podlodka Go CrewПишете на Go и хотите узнать, как закладывать надёжную основу для своих проектов? С 1 по 5 июня Podlodka Go Crew вместе с 2ГИС проведут сезон «Лучшие практики в Go». Организаторы собрали сильную программу с акцентом на живой опыт и прикладные кейсы. Вот несколько сессий, на которые советуем обратить внимание:🚀 «Практика Go оптимизаций: растем вместе с нагрузкой», Алексей Акулович — про то, как сервис растёт до миллионов RPS, оптимизацию CPU, grpc и protobuf, а также про собственный GC поверх гошного. 🏗 «Эволюция структуры Go-проекта: как 30 человек пушат в один репозиторий», Кирилл Возжеников — как развивается продуктовый монорепозиторий и строятся хорошие архитектурные практики. 🧩 «Как и зачем писать свой CDC на Go», Юра Саргсян — когда приходится выходить за стандартные решения: Postgres, Kafka, гарантии доставки и подводные камни логической репликации.В конце сезона участников ждёт «Битва кейсов: 50 оттенков межсервисного взаимодействия» — разбор архитектурных задач с метриками, схемами и поиском решений в реальном времени. 🎟 И это ещё не всё — смотрите полную программу на сайте и забирайте билет!По промокоду скидка 500 р: kodikapusta_7

30 мая 2026 г.1 070В Telegram
4gophers — пост в ТГ канале

Рейт лимитинг#golangАвтор разбирает три основных алгоритма рейт лимитинга в Go: Token Bucket в библиотеке golang.org/x/time/rate, Leaky Bucket из go.uber.org/ratelimit и Sliding Window его собственной реализаций со слайсом временных меток. Token Bucket подходит для большинства случаев - разрешает всплески, а Allow/Wait/Reserve покрывают как HTTP- middleware, так и throttle исходящих запросов. Leaky Bucket выдает строго равномерный поток без всплесков. Sliding Window дает точное "не более N запросов в любом окне длительности W", но дороже по памяти. Очевидный результат - по умолчанию брать x/time/rate и не писать свою реализациюhttps://kodikapusta.ru/news/1049-rate-limitingПоддержать проект на boosty и читать в MAX

28 мая 2026 г.913В Telegram
4gophers — пост в ТГ канале

Регрессия на 3%#golangПорция байтоебства на сегодняАвтор расследовал регрессию производительности в своём Go-коде. Изменение в файле hash2.go вызвало падение скорости на 3% в совершенно другом, hash2u16.go, хотя его код не менялся. Оказалось, что дело в сдвиге выравнивания инструкций на 416 байт, из-за чего горячие участки кода из разных функций попали в одни и те же наборы L1-кэша инструкций, превысив его 8-канальную ассоциативность, и начали вытеснять друг друга. Решения как такового нет, но начиная с Go 1.25 можно использовать -ldflags="-funcalign=64", чтобы выравнивать функции по 64 байтам и делать бенчмарки более надежными.В статье самое интересное - посмотреть как автор в принципе разбирается с отладкой производительностиhttps://kodikapusta.ru/news/1048-regressiia-na-3Поддержать проект на boosty и читать в MAX

27 мая 2026 г.1 010В Telegram
4gophers — пост в ТГ канале

Сборщик мусора#learn #golangАвтор прослеживает эволюцию сборки мусора от оригинального mark-and-sweep из статьи Маккарти 1960 года до современных коллекторов в Java, Go и Python. Он разбирает два фундаментальных подхода: mark-and-sweep и подсчет ссылок. Еще рассказывает про концепцию поколений и трехцветную маркировку, а затем на конкретных примерах показывает, как устроен в Go конкурентный mark-and-sweep сборщик с гибридным барьером записи. Немного загядывает в рассказывает про цветные указатели и конкурентную перестановкой. И разбирает сборщик в CPython с подсчетом ссылок и циклическим детектором. В конце автор приводит игрушечную реализацию GC на Go для наглядностиhttps://kodikapusta.ru/news/1053-sborshchik-musoraПоддержать проект на boosty и читать в MAX

26 мая 2026 г.1 000В Telegram
4gophers — пост в ТГ канале

HTTP/2 h2c#golangОбычно HTTP/2 работает только поверх TLS через HTTPS. Но h2c позволяет использовать все фишки HTTP/2 (мультиплексирование, Server Push, потоковые SSE) по незащищённому соединению, что удобно за балансировщиками или reverse proxy, где TLS уже не нуженВ статье рассказывается, как настроить HTTP/2 cleartext (он же h2c) в Go-сервере для работы с Google Cloud Run. В Go 1.24 появился встроенный API через поле Protocols у http.Server, что упростило конфигурацию и избавило от необходимости использовать сторонний пакет golang.org/x/net/http2/h2chttps://kodikapusta.ru/news/1046-http-2-h2cПоддержать проект на boosty и читать в MAX

25 мая 2026 г.971В Telegram
4gophers — пост в ТГ канале

let-go#lang #golangНу вы поняли, сегодня пятница и для вас аж второй язык программирования за деньlet-go - это Clojure-подобный лисп, работающий на небольшой VM, написанной на Go, что обеспечивает быстрый холодный старт, маленький размер бинарника и низкое потребление памяти. Язык покрывает 95% тестового набора Clojure, поддерживает REPL, nREPL, компиляцию в standalone-бинарники и WASM, а также встраивается как Go-библиотека с двусторонним обменом данными через каналы, срезы и структуры.- Я можно все на лиспе писать?- Можно, но зачем?https://kodikapusta.ru/news/1026-let-goПоддержать проект на boosty и читать в MAX

23 мая 2026 г.1 060В Telegram
4gophers — пост в ТГ канале

Язык rye#golangRye - это такой небольшой встраиваемый язык, который удобно использовать для конфиговВ статье на примере встраивания Rye в Go-приложение показан подход whitelist-based конфигурации. Настройка Rye начинается с минимальной базы - в конфиге доступны только те операции, которые явно разрешены. Через несколько последовательных шагов автор демонстрирует, как конфигурация превращается из простого хранилища значений в полноценную программу с условной логикой, роутингом, пользовательскими функциями и даже отладкой через live REPL, при этом каждый шаг добавляет лишь строго определенный набор возможностей через регистрацию builtin-функций в Go.Главное не переборщить с логикой в конфигеhttps://kodikapusta.ru/news/1024-iazyk-ryeПоддержать проект на boosty и читать в MAX

22 мая 2026 г.979В Telegram
4gophers — пост в ТГ канале

LibAFL фаззинг#golangTrail of Bits выпустила gosentry - форк тулчейна Go, который заменяет штатный фаззинг-движок на LibAFL, добавляя возможность фаззить структуры и композитные типы напрямую, использовать грамматики для генерации корректных входных данных, а также детектировать целочисленные переполнения, data race, утечки горутин и таймауты - то есть те классы ошибок, которые стандартный go test -fuzz не ловит. При этом все существующие testing.F-харнесы остаются совместимыми. Достаточно собрать бинарник форком и добавить несколько флагов типа --catch-races и --catch-leaks. Уже в ходе тестирования gosentry нашел реальные баги в ethereum-optimism и revm(реализация Ethereum Virtual Machine на Rust), включая расхождения в обработке каналов и паники при неизвестном типе батча.https://kodikapusta.ru/news/1027-fazzingПоддержать проект на boosty и читать в MAX

19 мая 2026 г.1 140В Telegram
4gophers — пост в ТГ канале

Используй Go, блять!#golangАвтор в грубой и ультимативной форме призывает выкинуть излишне сложные фреймворкои, микросервисы, Kubernetes и JavaScript-тулинг в пользу Go - скучного, предсказуемого языка, который компилируется за две секунды в статический бинарник, поставляется с полной стандартной библиотекой и не требует ничего, кроме go build и scp для деплоя. Простота Go - это осознанный выбор, благодаря которому код остается читаемым, зависимости управляемыми, а продакшен - надежным на годы впередДавно пораhttps://kodikapusta.ru/news/1025-ispol-zuiu-go-bliatПоддержать проект на boosty и читать в MAX

18 мая 2026 г.1 100В Telegram