40K subscribers
1.75K photos
53 videos
5 files
1.87K links
Download Telegram
🚀 Go 1.26 ускоряет работу с памятью

В новом релизе Go команда сильно оптимизировала выделение памяти для малых объектов (1–512 байт).
Теперь рантайм использует специализированные версии allocator’а и таблицы переходов — чтобы быстрее подбирать нужную функцию под размер объекта, а не полагаться на одну универсальную реализацию.

📈 Что это даёт

- до 30% экономии на выделении маленьких объектов;

- примерно ~1% ускорения в реальных программах, где много аллокаций (что на масштабе — очень ощутимо).

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

При необходимости поведение можно отключить флагом сборки:
GOEXPERIMENT=nosizespecializedmalloc.

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

@golang_interview
👍7016🔥13
This media is not supported in your browser
VIEW IN TELEGRAM
🎮 Server Survival - браузерная игра, которая обучает облачной архитектуре через механику tower-defense.

Что это:
Server Survival - это 3D-симулятор, где вы строите устойчивую инфраструктуру, выдерживаете растущий трафик и отбиваетесь от атак, следя при этом за бюджетом и репутацией.

Ключевые особенности:
- Реалистичные концепции облачных систем: балансировщики нагрузки, кэш, очереди, базы данных, WAF, хранилище.
- Нужно одновременно обрабатывать легитимный трафик и защищаться от DDoS-подобных атак.
- Каждый компонент имеет стоимость, пропускную способность и расход на обслуживание — всё как в настоящей архитектуре.
- Два режима: Survival (рост нагрузки) и Sandbox (свободная настройка параметров).

Технологии:
- Игра работает прямо в браузере.
- Сделана на JavaScript + Three.js.
- Не требует сборки — достаточно открыть index.html.

Кому подойдёт:
- Начинающим DevOps/Backend разработчикам,
- Всем, кто хочет наглядно понять, как масштабируются реальные сервисы,
- Тем, кто любит игры, но хочет попутно изучать архитектуру.

Репозиторий: github.com/pshenok/server-survival

@Golang_google
37👍22🔥10
👣 Опенсорсный игровой движок на Go

Это 2D/3D-движок на базе Vulkan, разрабатываемый с акцентом на производительность, предсказуемость поведения и простоту интеграции. Автор, ранее работавший с C, отмечает, что Go в данном случае демонстрирует существенно более высокую эффективность, чем обычно ожидают от языка со сборщиком мусора.

Ключевые особенности:
— Высокая производительность: пустая сцена в тестах достигает ≈5400 FPS (против ≈1600 FPS у Unity), а полноценный рендер с PBR-материалами и тенями выдаёт до ≈2700 FPS;
— Экономное использование памяти и более быстрые сборки по сравнению с популярными конкурентами;
— Поддержка нескольких платформ: Windows, Linux, Android (в рабочем состоянии), macOS - в активной разработке;
— Возможность интегрировать локальные LLM непосредственно в движок.

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

https://github.com/KaijuEngine/kaiju
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6912🥰5
Go 1.26 «всё стало быстрее»

Go 1.26 - это не просто минорное обновление, а заметный прирост скорости почти во всём:
- более быстрый GreenTea GC
- ускоренные аллокации памяти
- плюс 20–30% скорости на cgo-вызовах

🔎 Что именно изменили внутри

В рантайме Go есть сущность processor (P) — ресурс, который нужен, чтобы поток мог выполнять горутины.
Каждый P может быть в одном из состояний:
- running - выполняет код
- idle - ждёт работу
- gcstop - остановлен для сборки мусора

Раньше было ещё состояние syscall:
оно использовалось, когда горутина выполняла системный вызов или cgo.

Теперь это состояние убрали.
Вместо него рантайм просто проверяет состояние самой горутины, закреплённой за процессором.

Что это даёт

- меньше внутреннего оверхеда
- более простые и прямые код-пути
- заметное ускорение системных и cgo-вызовов

Красиво и элегантно: упрощение кода сделало работу быстрее.
🔥98👍3615🤔3
👣 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
72🔥37👍20👏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
👍30🔥104🤔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
🎉44👍2414🔥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🔥3611👍10🥰1
This media is not supported in your browser
VIEW IN TELEGRAM
Route 256 — это бесплатные курсы для разработчиков и тестировщиков от инженеров Ozon Tech. За два месяца ты получаешь бесценный опыт в бигтехе: с реальными задачами и под присмотром опытных тьюторов. А лучшим выпускникам предлагают оффер в команду.

Подписывайся на канал Route 256, чтобы не пропустить анонс нового запуска и другие новости команды. Например, недавно у них вышла новогодняя аркада, и ты ещё успеваешь пройти её и поучаствовать в розыгрыше мерча. Разбивай шары с багами и продлевай праздники: можешь выиграть кружку, плед или толстовку.
🤔109👍3🥰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
🤔168🔥6👍3
👣 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
46👍14🥰4
⚛️ Читаете канал про Go и ловите себя на мысли: «Что вообще происходит?»

Это нормально: без базы даже полезные материалы кажутся сложными. Хорошая новость: за 4 месяца можно выйти на уровень, когда все эти обсуждения станут понятными — и даже полезными для работы.

На курсе «Go-разработчик с нуля» от Нетологии вы:

- Освоите Golang на продвинутом уровне, даже если никогда не писали код: научитесь писать и запускать программы, использовать Go-модули.
- Изучите основы DevOps, поймёте, как работать с данными, создавать веб-приложения и REST API.
- Попрактикуетесь на реальных задачах и добавите в портфолио 5 больших проекта.
- Пройдёте тестовые собеседования и получите возможность стажировки у партнёров курса.

👉 Записаться со скидкой 45%

Реклама. ООО “Нетология” ОГРН 1207700135884 Erid: 2VSb5x9E5Vs
😁13🤬63🤔1
👻 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
12🔥7👍5😁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
👍175🔥4