Forwarded from Golang вопросы собеседований
🚀 Go 1.26 ускоряет работу с памятью
В новом релизе Go команда сильно оптимизировала выделение памяти для малых объектов (1–512 байт).
Теперь рантайм использует специализированные версии allocator’а и таблицы переходов — чтобы быстрее подбирать нужную функцию под размер объекта, а не полагаться на одну универсальную реализацию.
📈 Что это даёт
- до 30% экономии на выделении маленьких объектов;
- примерно ~1% ускорения в реальных программах, где много аллокаций (что на масштабе — очень ощутимо).
Техническая деталь: компилятор всё ещё вызывает общий mallocgc, но на этапе выполнения он перенаправляется к новым специализированным функциям.
При необходимости поведение можно отключить флагом сборки:
GOEXPERIMENT=nosizespecializedmalloc.
Go продолжает аккуратно выжимать производительность не ломая экосистему - маленькие изменения, большой эффект.
@golang_interview
В новом релизе Go команда сильно оптимизировала выделение памяти для малых объектов (1–512 байт).
Теперь рантайм использует специализированные версии allocator’а и таблицы переходов — чтобы быстрее подбирать нужную функцию под размер объекта, а не полагаться на одну универсальную реализацию.
📈 Что это даёт
- до 30% экономии на выделении маленьких объектов;
- примерно ~1% ускорения в реальных программах, где много аллокаций (что на масштабе — очень ощутимо).
Техническая деталь: компилятор всё ещё вызывает общий mallocgc, но на этапе выполнения он перенаправляется к новым специализированным функциям.
При необходимости поведение можно отключить флагом сборки:
GOEXPERIMENT=nosizespecializedmalloc.
Go продолжает аккуратно выжимать производительность не ломая экосистему - маленькие изменения, большой эффект.
@golang_interview
👍70❤16🔥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
Что это:
Server Survival - это 3D-симулятор, где вы строите устойчивую инфраструктуру, выдерживаете растущий трафик и отбиваетесь от атак, следя при этом за бюджетом и репутацией.
Ключевые особенности:
- Реалистичные концепции облачных систем: балансировщики нагрузки, кэш, очереди, базы данных, WAF, хранилище.
- Нужно одновременно обрабатывать легитимный трафик и защищаться от DDoS-подобных атак.
- Каждый компонент имеет стоимость, пропускную способность и расход на обслуживание — всё как в настоящей архитектуре.
- Два режима: Survival (рост нагрузки) и Sandbox (свободная настройка параметров).
Технологии:
- Игра работает прямо в браузере.
- Сделана на JavaScript + Three.js.
- Не требует сборки — достаточно открыть index.html.
Кому подойдёт:
- Начинающим DevOps/Backend разработчикам,
- Всем, кто хочет наглядно понять, как масштабируются реальные сервисы,
- Тем, кто любит игры, но хочет попутно изучать архитектуру.
Репозиторий: github.com/pshenok/server-survival
@Golang_google
❤37👍22🔥10
Это 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
👍69❤12🥰5
⚡ Go 1.26 «всё стало быстрее»
Go 1.26 - это не просто минорное обновление, а заметный прирост скорости почти во всём:
- более быстрый GreenTea GC
- ускоренные аллокации памяти
- плюс 20–30% скорости на cgo-вызовах
🔎 Что именно изменили внутри
В рантайме Go есть сущность processor (P) — ресурс, который нужен, чтобы поток мог выполнять горутины.
Каждый P может быть в одном из состояний:
- running - выполняет код
- idle - ждёт работу
- gcstop - остановлен для сборки мусора
Раньше было ещё состояние syscall:
оно использовалось, когда горутина выполняла системный вызов или cgo.
Теперь это состояние убрали.
Вместо него рантайм просто проверяет состояние самой горутины, закреплённой за процессором.
✅ Что это даёт
- меньше внутреннего оверхеда
- более простые и прямые код-пути
- заметное ускорение системных и cgo-вызовов
Красиво и элегантно: упрощение кода сделало работу быстрее.
Go 1.26 - это не просто минорное обновление, а заметный прирост скорости почти во всём:
- более быстрый GreenTea GC
- ускоренные аллокации памяти
- плюс 20–30% скорости на cgo-вызовах
🔎 Что именно изменили внутри
В рантайме Go есть сущность processor (P) — ресурс, который нужен, чтобы поток мог выполнять горутины.
Каждый P может быть в одном из состояний:
- running - выполняет код
- idle - ждёт работу
- gcstop - остановлен для сборки мусора
Раньше было ещё состояние syscall:
оно использовалось, когда горутина выполняла системный вызов или cgo.
Теперь это состояние убрали.
Вместо него рантайм просто проверяет состояние самой горутины, закреплённой за процессором.
✅ Что это даёт
- меньше внутреннего оверхеда
- более простые и прямые код-пути
- заметное ускорение системных и cgo-вызовов
Красиво и элегантно: упрощение кода сделало работу быстрее.
🔥98👍36❤15🤔3
Опубликовал подробный тур по предстоящему релизу 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
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🔥10❤4🤔3🤯2🥰1
Владение Docker - навык, который отличает новичка от профи,
Сегодня почти всё разворачивается в контейнерах.
Если ты не умеешь работать с Docker, ты медленнее, зависим от чужих настроек и постоянно ловишь баги «у меня локально работает».
• как упаковывать проекты в контейнеры
• как поднимать целые системы за минуты
• как избегать типичных ошибок в продакшене
• как делать стабильные и повторяемые окружения
•в нем разобраны все возможные ошибки
Только практика и реальные кейсы от авторов Docker Академии - с нуля до уверенного уровня.
🎁 Скидка 40 процентов действует 48 часов
👉 Записывайся и сделай Docker своим настоящим рабочим инструментом.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤25👍7🤬7😁4🔥3
Раньше ограничения типов не могли напрямую или косвенно ссылаться на параметр типа.
Например, такое объявление интерфейса:
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👍24❤14🔥4😱4🤯3😁2
Go на Nintendo 64 🎮⚡️
Наткнулся на мощный туториал: как начать писать под Nintendo 64 на Go и собрать свой первый ROM.
Автор пошагово показывает путь “с нуля”:
- установка EmbeddedGo toolchain
- сборка ROM через утилиту
- запуск в эмуляторе
- вывод графики прямо в framebuffer
- чтение геймпада
- базовый звук и ассеты
Самое кайфовое - это не теория ради теории.
Ты реально быстро приходишь к результату: вывод на экране + управление, можно самому запилить мини-игру или демку.
Если любишь ретро, low-level и Go - must read.
📌Источник: timurcelik.de/posts/n64go-1-getting-started/
📌 Код: https://github.com/clktmr/n64tutorial
@Golang_google
Наткнулся на мощный туториал: как начать писать под 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🔥36❤11👍10🥰1
This media is not supported in your browser
VIEW IN TELEGRAM
Route 256 — это бесплатные курсы для разработчиков и тестировщиков от инженеров Ozon Tech. За два месяца ты получаешь бесценный опыт в бигтехе: с реальными задачами и под присмотром опытных тьюторов. А лучшим выпускникам предлагают оффер в команду.
Подписывайся на канал Route 256, чтобы не пропустить анонс нового запуска и другие новости команды. Например, недавно у них вышла новогодняя аркада, и ты ещё успеваешь пройти её и поучаствовать в розыгрыше мерча. Разбивай шары с багами и продлевай праздники: можешь выиграть кружку, плед или толстовку.
Подписывайся на канал Route 256, чтобы не пропустить анонс нового запуска и другие новости команды. Например, недавно у них вышла новогодняя аркада, и ты ещё успеваешь пройти её и поучаствовать в розыгрыше мерча. Разбивай шары с багами и продлевай праздники: можешь выиграть кружку, плед или толстовку.
🤔10❤9👍3🥰1
Проект нацелен на более современный, быстрый и поддерживаемый просмотр истории 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
🤔16❤8🔥6👍3
Если ты думаешь, что “я знаю 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
Это нормально: без базы даже полезные материалы кажутся сложными. Хорошая новость: за 4 месяца можно выйти на уровень, когда все эти обсуждения станут понятными — и даже полезными для работы.
На курсе «Go-разработчик с нуля» от Нетологии вы:
- Освоите Golang на продвинутом уровне, даже если никогда не писали код: научитесь писать и запускать программы, использовать Go-модули.
- Изучите основы DevOps, поймёте, как работать с данными, создавать веб-приложения и REST API.
- Попрактикуетесь на реальных задачах и добавите в портфолио 5 больших проекта.
- Пройдёте тестовые собеседования и получите возможность стажировки у партнёров курса.
👉 Записаться со скидкой 45%
Реклама. ООО “Нетология” ОГРН 1207700135884 Erid: 2VSb5x9E5Vs
😁13🤬6❤3🤔1
Если тебе надо сделать
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:
То есть патчи затрагивают:
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
В релизах закрыли важные уязвимости в ключевых пакетах:
🔐 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
👍17❤5🔥4