41.2K subscribers
1.76K photos
52 videos
5 files
1.88K links
Download Telegram
👣 Go 1.26: что нового

Опубликовал подробный тур по предстоящему релизу Golang. Часть функций мы уже успели обсудить, другие ещё разберём — а если хотите сразу всю картину целиком, заглядывайте.

Версия Go 1.26 выходит в феврале 2026 года и приносит сразу несколько важных улучшений от языка до производительности и инструментов.

В официальных релиз-нотах (сухих по стилю) мало примеров, поэтому ниже главное в понятной форме с примерами.


🆕 1. new(expr) - новый синтаксис, упрощающий код

Раньше new принимал только тип:


p := new(int)


Теперь можно передавать выражение, и это создаёт указатель на значение:



p := new(42) // *int со значением 42


Это особенно полезно, когда вы используете указатели на поля в структурах (например, для опциональных значений в JSON).


💡 2. Улучшенное проверочное API для ошибок

Появилась функция errors.AsType, которая делает проверку ошибок типобезопасной и без рефлексии:


if target, ok := errors.AsType[*net.OpError](err); ok {
fmt.Println("Network error:", target.Op)
}



Это удобнее и безопаснее, чем errors.As.

🧠 3. Green Tea garbage collector

Сборщик мусора получил значительные оптимизации:
— работает быстрее и эффективнее за счёт лучшего использования кеша и многопоточной обработки,
— снижает накладные расходы в программах с интенсивной аллокацией.


🚀 4. Быстрее cgo, системные вызовы, аллокация

— Существенно уменьшена стоимость cgo вызовов — до ~30% в сторону ускорения.
— Улучшено время системных вызовов.
— Улучшена производительность аллокации небольших объектов.


🧬 5. Experimental: SIMD и безопасное стирание секретов

В Go 1.26 появляются эксперименты, которые можно включить через GOEXPERIMENT:

• simd/archsimd — доступ к векторным (SIMD) операциям на amd64.
• runtime/secret — безопасное стирание временных данных, используемых, например, в криптографии.


📊 6. Новые метрики и инструменты

Пакет runtime/metrics расширен:
— можно отслеживать количество горутин по состояниям,
— появились дополнительные показатели для диагностики.


📦 7. Мелкие, но важные изменения

— go fix переработан на основе анализа кода (Modernizers).
— go doc становится «одной командой» для документации.
— Улучшены стандартные библиотеки, включая работу с ошибками и кодированием.

Go 1.26 не ломает обратную совместимость, но приносит:
более выразительные языковые конструкции,
ускорение выполнения и сборки,
улучшенные инструменты разработчика,
экспериментальные механизмы для высокопроизводительных и безопасных систем.

Если вы используете Go в продакшене - стоит начать тестировать ранние сборки и готовиться к обновлению.

Тур: https://antonz.org/go-1-26
Видео: https://www.youtube.com/watch?v=TxqTwSx-rI4

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
74🔥38👍22👏2😁1
👣 Гибкая библиотека для дашбордов и виджетов на Go в терминале

gotui - это современная TUI-библиотека на Go, построенная поверх tcell. Проект является обновлённым и доработанным форком termui с фокусом на производительность и возможности современных терминалов.

Основные возможности:
- Поддержка TrueColor (24-битный цвет)
- Быстрый и эффективный рендеринг без лишних перерисовок
- Гибкие flex-layoutы для адаптивных интерфейсов
- Закруглённые рамки и аккуратный внешний вид
- Обработка пользовательского ввода
- Полная функциональная совместимость с termui

Где пригодится:
- Терминальные дашборды
- Мониторинг сервисов
- DevOps и SRE инструменты
- Админки и внутренние утилиты
- Интерактивные CLI-приложения

Отличный выбор, если хочется писать красивые, современные и быстрые TUI-приложения на Go без боли и устаревших ограничений.

github.com/metaspartan/gotui

#golang #go
Please open Telegram to view this post
VIEW IN TELEGRAM
👍31🔥116🤔3🤯2🥰1
🖥 На Stepik вышел курс, который учит работать с Docker на реальных проектах.

Владение Docker - навык, который отличает новичка от профи,

Сегодня почти всё разворачивается в контейнерах.

Если ты не умеешь работать с Docker, ты медленнее, зависим от чужих настроек и постоянно ловишь баги «у меня локально работает».

• как упаковывать проекты в контейнеры
• как поднимать целые системы за минуты
• как избегать типичных ошибок в продакшене
• как делать стабильные и повторяемые окружения
•в нем разобраны все возможные ошибки

Только практика и реальные кейсы от авторов Docker Академии - с нуля до уверенного уровня.

🎁 Скидка 40 процентов действует 48 часов


👉 Записывайся и сделай Docker своим настоящим рабочим инструментом.
Please open Telegram to view this post
VIEW IN TELEGRAM
25👍7🤬7😁4🔥3
👣 Не самое заметное в 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
🎉49👍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🔥3712👍12🥰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
56👍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
16👍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😁23👍108🤬8
🏙️ gastown - культовый сборник мыслей о софте от Steve Yegge

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

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

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

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

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

GitHub: github.com/steveyegge/gastown

@Golang_google
21🔥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
🔥17😁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
👍4518🔥14