40.5K subscribers
1.76K photos
52 videos
5 files
1.87K links
Download Telegram
👣 Не самое заметное в Go 1.26, но важное изменение языка - рекурсивные ограничения типов в дженериках.

Раньше ограничения типов не могли напрямую или косвенно ссылаться на параметр типа.

Например, такое объявление интерфейса:


type Ordered[T Ordered[T]] interface {
Less(T) bool
}

Что приводило к ошибке компиляции: invalid recursive type: Ordered refers to itself.

Начиная с Go 1.26, этот код компилируется без проблем.


Типичный сценарий использования - обобщённый тип, который поддерживает операции с аргументами или результатами того же типа, что и он сам (например, Ordered[T]).

Такой тип можно использовать как элемент обобщённого контейнера, например Tree[T Ordered[T]].

В результате дженерики в Go стали немного более выразительными и гибкими, особенно для структур данных и алгоритмов.

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉48👍2616🔥4😱4🤯3😁2
Go на Nintendo 64 🎮⚡️

Наткнулся на мощный туториал: как начать писать под Nintendo 64 на Go и собрать свой первый ROM.

Автор пошагово показывает путь “с нуля”:
- установка EmbeddedGo toolchain
- сборка ROM через утилиту n64go
- запуск в эмуляторе
- вывод графики прямо в framebuffer
- чтение геймпада
- базовый звук и ассеты

Самое кайфовое - это не теория ради теории.
Ты реально быстро приходишь к результату: вывод на экране + управление, можно самому запилить мини-игру или демку.

Если любишь ретро, low-level и Go - must read.

📌Источник: timurcelik.de/posts/n64go-1-getting-started/
📌 Код: https://github.com/clktmr/n64tutorial

@Golang_google
1🔥3612👍12🥰1
This media is not supported in your browser
VIEW IN TELEGRAM
Route 256 — это бесплатные курсы для разработчиков и тестировщиков от инженеров Ozon Tech. За два месяца ты получаешь бесценный опыт в бигтехе: с реальными задачами и под присмотром опытных тьюторов. А лучшим выпускникам предлагают оффер в команду.

Подписывайся на канал Route 256, чтобы не пропустить анонс нового запуска и другие новости команды. Например, недавно у них вышла новогодняя аркада, и ты ещё успеваешь пройти её и поучаствовать в розыгрыше мерча. Разбивай шары с багами и продлевай праздники: можешь выиграть кружку, плед или толстовку.
🤔109👍4🥰1
👣 gitk-go - это реализация классического gitk, но написанная на Go.

Проект нацелен на более современный, быстрый и поддерживаемый просмотр истории Git-репозиториев.

Что это такое
- GUI-инструмент для просмотра истории Git
- альтернатива оригинальному gitk на Tcl/Tk
- написан на чистом Go
- кроссплатформенный

Что умеет
- визуализация коммитов и веток
- просмотр diff-ов
- навигация по истории репозитория
- работа с большими репозиториями

Почему это интересно
Оригинальный gitk:
- старый стек
- медленный на больших репозиториях
- сложен в доработке

gitk-go решает эти проблемы:
- быстрее рендеринг
- современный язык и экосистема
- проще в поддержке и развитии
- хороший пример desktop-приложения на Go

Кому полезно
- тем, кто часто анализирует историю Git
- Go-разработчикам как реальный пример GUI-приложения
- тем, кто хочет легкий и простой Git viewer без IDE

github.com/thiagokokada/gitk-go

#golang #go
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔178🔥6👍4
👣 Go Concurrency Exercises

Если ты думаешь, что “я знаю Go concurrency”, потому что запускал go func(){} - вот тебе реальный чек.

go-concurrency-exercises - это набор задач, которые заставляют врубиться в конкурентность :
не по книжке, а через боль, race conditions и дедлоки 😅

Что внутри:
задачи на goroutines / channels / select
fan-in / fan-out, worker pool, pipeline
rate limiting, timeouts, context cancel
типичные ловушки: race, deadlock, leak горутин
решения и объяснения - можно сверяться

Подойдет:
- для подготовки к собесам
- для мидлов, которые хотят стать сеньорами
- для тех, кто хочет писать конкурентный Go и разбираться в нем

📎 GitHub: github.com/loong/go-concurrency-exercises

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
54👍20🥰7
👻 gh-ost - инструмент для миграций схемы MySQL без даунтайма.

Если тебе надо сделать ALTER TABLE на большой продовой таблице и не положить сервис - gh-ost это прям must-have.

Большинство online-schema-change тулов используют триггеры и создают лишнюю нагрузку.
А gh-ost идёт по другому пути:

Triggerless - вообще без триггеров
Читает изменения через binlog stream и асинхронно применяет их к “ghost table”
Даёт полный контроль над процессом миграции:
- пауза/резюм
- throttle (снижение нагрузки)
- аудит и статус
- безопасный cut-over

Как это работает (по-простому):
1) создаётся “ghost table” с новой схемой
2) данные копируются постепенно
3) параллельно изменения ловятся из binlog
4) в конце таблицы меняются местами почти мгновенно

Идеально для:
🔥 таблиц на десятки миллионов строк
🔥 production-систем
🔥 миграций без блокировок

📌 Репо: github.com/github/gh-ost
Please open Telegram to view this post
VIEW IN TELEGRAM
15👍7🔥7😁1
🎊 Вышли Go 1.25.6 и Go 1.24.12

В релизах закрыли важные уязвимости в ключевых пакетах:

🔐 Security fixes:
- `archive/zip` (CVE-2025-61728)
- `net/http` (CVE-2025-61726)
- `crypto/tls` (CVE-2025-68121, CVE-2025-68121, CVE-2025-61730)
- `cmd/go` (CVE-2025-61731, CVE-2025-68119)

То есть патчи затрагивают:
HTTP, TLS/SSL, ZIP - всё, что потенциально имеет дыры.

Рекомендация простая:
обнови Go runtime
пересобери сервисы
прогоняй CI

Анонс: https://groups.google.com/g/golang-announce/c/Vd2tYVM8eUc/m/pQP7Bk0aCQAJ
Скачать: https://go.dev/dl/#go1.25.6

@Golang_google
👍288🔥5
👣 Go можно “компилировать” в TypeScript. Ну, почти 😂

Идея такая: ты пишешь логику на Go, а инструмент переводит её в нормальный, читаемый TS.

Без магии “всё тащим в браузер”, как это делал GopherJS, а через аккуратную работу с AST - то есть код реально переписывается структурно.

Зачем это нужно:
Чтобы не дублировать одну и ту же бизнес-логику в двух местах:

- на бэкенде на Go
- и на фронте на React/Vue

Что умеет:

- алгоритмы/структуры данных можно переиспользовать напрямую
- горутины и каналы превращаются в async/await
- работают дженерики и интерфейсы
- поддерживается encoding/json и многое из стандартной библиотеки

Если коротко: меньше переписывания руками, больше реюза кода. Экономит недели.

https://github.com/aperturerobotics/goscript

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥25😁22👍108🤬8
🏙️ gastown - культовый сборник мыслей о софте от Steve Yegge

Если ты любишь тексты уровня “после прочтения мозг зашевелился и начал генерировать идеи”, то это отличный репо.

Это репозиторий-архив постов и эссе Steve Yegge (экс-Amazon/Google) - одного из самых известных тех-блогеров в инженерной тусовке.

Там не “очередной туториал”.
Там мысли, которые реально формируют инженерное мышление:
- как компании принимают технические решения
- почему продукты побеждают технологии
- как рушатся архитектуры и процессы
- чем отличается хороший инженер от просто кодера
- как выглядит реальный мир внутри BigTech

Что особенно круто
Тексты читаются как личные заметки человека, который видел всё изнутри: политика крупной ит-компании, рабочие процессы, ошибки, битвы платформ и технологий.

И да - если ты когда-то слышал про легендарный пост “Platforms”, то он тоже оттуда.

GitHub: github.com/steveyegge/gastown

@Golang_google
20🔥9👍5🤔4🥰1
👣 Go Developer Survey 2025 - главные выводы

Команда Go опубликовала результаты Go Developer Survey 2025 (опрос проходил в сентябре 2025, ответили 5 379 разработчиков).

Главная мысль отчёта: Go продолжает ощущаться практичным языком для продакшена, а ключевые запросы сообщества - это не «модные фичи», а стабильность, удобство разработки и улучшение опыта работы.

Топ-3 вывода (по версии Go Team):
1) Go нравится разработчикам и хорошо подходит для продакшена
Язык выбирают за простоту, предсказуемость и удобство поддержки.

2) Болевые точки остаются примерно теми же
Больше всего обсуждают:
- обработку ошибок
- `nil`/nil-паники
- отсутствие “нормальных” sum types / более выразительных типов

3) AI-инструменты в Go уже используют, но отношение к ним сдержанное
Видно рост использования AI-помощников, но доверие и «любовь» заметно ниже, чем к классическим инструментам разработки.
Идея простая: пробуют многие, но относятся осторожно.

Почему это важно:
- Go остаётся языком «для работы», а не экспериментов
- комьюнити больше ценит улучшения tooling/экосистемы, чем радикальные изменения языка
- AI-помощники становятся стандартом, но пока не воспринимаются как полностью надёжная замена голове

📌 Полный опрос: go.dev/blog/survey2025
📌 Видео: https://www.youtube.com/watch?v=nMmLMo4lmgA

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4516🔥7
🚀 SaaS Starter Kit для Основателей

Готовый шаблон для создания SaaS-приложений с использованием Next.js и Go. Включает современные технологии для фронтенда и бэкенда, обеспечивая безопасность, многоуровневую архитектуру и интеграцию с AI.

🚀 Основные моменты:
- Полная поддержка аутентификации и управления ролями
- Интеграция с системой биллинга и подписок
- Многоуровенная архитектура с изоляцией данных
- Готовые решения для AI и обработки документов
- Мобильный интерфейс с адаптивным дизайном

📌 GitHub: https://github.com/moasq/production-saas-starter

#go
🔥16😁12👍73🥰1
🔒 semantic_firewall: инструмент для “семантической” проверки кода на Go

Это open-source инструмент и GitHub Action, который создаёт детерминированные семантические отпечатки (fingerprints) для функций Go. В отличие от обычных дифф-средств, он сравнивает не байты или синтаксис, а поведение и логику кода — так можно обнаружить скрытые изменения логики при рефакторинге или внедрении неочевидных изменений в PR. :

🔍 В основе лежат:
- анализ кода через SSA (Static Single Assignment),
- нормализация управления потоком,
- математический анализ циклов (Scalar Evolution).

📌 Это помогает:
- отслеживать изменения логики, а не только синтаксиса,
- включать проверки в CI/CD (GitHub Actions),
- блокировать PR, где поведение изменилось, даже если код выглядит как “рефакторинг”.

Проект написан на Go и распространяется под MIT-лицензией - подходит для интеграции в рабочие процессы.

https://github.com/BlackVectorOps/semantic_firewall
👍12😁129🔥4🤔2
👣 Понимание выравнивания памяти в Go

В Go важно понимать, как компилятор размещает данные в памяти - это напрямую влияет на скорость работы и объём используемой памяти.

Что такое выравнивание?

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

Например:
- int64 требует выравнивания по 8 байтам
- int32 - по 4 байтам
- byte - по 1 байту

Если значение лежит “неудобно”, CPU делает несколько операций вместо одной - это медленнее.

Почему появляется padding

Компилятор Go автоматически вставляет пустые байты (padding) между полями структуры, чтобы соблюсти правила выравнивания.

Размер структуры - это не просто сумма размеров полей.

Пример:


type Example struct {
a byte // 1 байт
b int64 // 8 байт (нужно выравнивание по 8)
c byte // 1 байт
}



Хотя “полезных” данных тут 10 байт, структура занимает больше из-за вставленного паддинга.

Почему это важно

Если структура используется миллионы раз (в кэше, массивах, базах, сетевых пакетах), лишние байты превращаются в:

• большее потребление памяти
• худшее попадание в CPU cache
• падение производительности

Как оптимизировать

• Порядок полей имеет значение.
• Крупные типы лучше ставить первыми:


type Optimized struct {
b int64
a byte
c byte
}



Так компилятору нужно меньше padding, и структура становится компактнее.

Главное правило

В Go порядок полей в структуре влияет на производительность.

Выравнивание памяти - это не микроскопическая оптимизация.
В высоконагруженных системах это даёт реальный прирост скорости и экономию памяти.

Сохрани себе - пригодится при проектировании структур данных.

Больше примеров
Видео
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4117🔥14
🧠 Gollem - LLM-агенты на Go, но “по-взрослому”: безопасно, расширяемо, удобно

Нашёл интересный проект: gollem - фреймворк для агентных LLM-приложений на Golang.

GitHub: https://github.com/m-mizutani/gollem

Что делает gollem
Это не просто “обёртка над API”.
Gollem помогает собирать агентов, которые:
- вызывают инструменты (tools)
- выполняют цепочки действий
- работают по workflow
- и при этом не превращают код в кашу

Почему это важно
Когда начинаешь делать агента, быстро появляется боль:
- как безопасно запускать tools
- как хранить контекст
- как логировать шаги и ошибки
- как делать повторяемое поведение (детерминизм)
- как ограничивать права и доступы

И gollem как раз про это - архитектура агента, а не “ещё один чат”.

Если ты пишешь бэкенд на Go и хочешь:
- агента, который реально выполняет задачи
- и чтобы это можно было деплоить в прод

то gollem - прям в копилку.

https://github.com/m-mizutani/gollem

@Golang_google
1🔥31👍95
🔑 Простое управление паролями без хранилища

gokey — это менеджер паролей, который генерирует пароли на лету, используя ваш мастер-пароль и строку области. Это избавляет от необходимости управлять хранилищем паролей, обеспечивая доступ к вашим паролям в любое время и в любом месте.

🚀Основные моменты:
- Генерация паролей и криптографических ключей.
- Не требует хранения паролей в хранилище.
- Поддержка различных типов ключей (ECC, RSA).
- Использование seed-файлов для повышения энтропии.
- Простой и безопасный способ управления паролями.

📌 GitHub: https://github.com/cloudflare/gokey

#go

@Golang_google
120👍5🔥5
🐳 dockerpool: простой и надёжный пул Docker-контейнеров для Go

- Без тяжёлых оркестраторов.
- Без ручного lifecycle.
- Прямо из кода.

Пул заранее созданных Docker-контейнеров
Переиспользование контейнеров между задачами
Простой lifecycle: acquire / release
Гибкая конфигурация
Минимальный overhead и понятный API

💡 Как это работает:
dockerpool поднимает набор контейнеров заранее и управляет их жизненным циклом внутри приложения.
Вместо постоянного docker run / rm ты просто берёшь контейнер из пула, выполняешь задачу и возвращаешь его обратно.

⚙️ Где подходит:
CI/CD пайплайны, автоматизация тестов, параллельное выполнение задач, dev-утилиты и внутренние инструменты.

🔧 Главное отличие от альтернатив:
Никаких внешних сервисов, никакой магии - только Go-код и Docker API. Лёгкий, предсказуемый и удобный для встраивания.

🔗 https://github.com/bermanf/dockerpool

@Golang_google
1👍388🔥7🤔4
Перезагрузи карьеру с Mayflower ☀️

Мы нанимаем senior-инженеров в направлениях: Backend, Frontend и QA.

Почему Mayflower 🚀
• 10+ лет на рынке — стабильная, прибыльная и легальная фантех-компания
• Продукт входит в топ-50 сайтов мира по трафику 🌍
• Миллионы активных пользователей и 500+ сотрудников
• Современный технологический стек: PHP 8.2, Go, React, TypeScript, Kubernetes, CI/CD, automation
• Команда опытных инженеров и зрелые процессы разработки

Задачи: проектирование сервисов, масштабирование платформы, решение ежедневных хайлоад-задач.
200k+ RPS, распределённые системы, event-driven архитектура.

Релокация на Кипр — all inclusive 🇨🇾
• EU-контракт и рабочая виза
• Авиабилеты для всей семьи и трансфер из аэропорта
• Жильё на первый месяц
• Курсы греческого
• Полное сопровождение релокации и иммиграции

Откликнуться → https://offer.mayflower.work/
7👍7🔥5🤬3👏1
📦 go-kata - это коллекция ежедневных задач для языка Go.

Цель: не просто написать работающий код, а отточить идиоматичные шаблоны Go через регулярную практику.

🧠 Здесь собраны небольшие самостоятельные задания по разным темам:
• работа с контекстом и отменой
• конкуррентность и отказоустойчивость
• производительность и аллокации
• HTTP и middleware
• семантика ошибок
• файловые операции и тестирование

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

📍 Репозиторий: https://github.com/medunes/go-kata
👍51🔥119
🎉 Вышли обновления: Go 1.25.7 и Go 1.24.13

🔐 В этих патч-релизах ключевые исправления безопасности:

• фикс для cmd/cgo (CVE-2025-61732)
• обновление криптографии в crypto/tls (CVE-2025-68121)

📣 Релиз: https://groups.google.com/g/golang-announce/c/K09ubi9FQFk/m/oQiZUMk9AQAJ

📦 Скачать: https://go.dev/dl/#go1.25.7

@Golang_google

#golang #go
🔥2313👍9