Golang
admin - @haarrp https://t.me/golangl - golang чат https://t.me/golangtests go тесты https://t.me/ai_machinelearning_big_data машинное обучение @itchannels_telegram РКН: clck.ru/3Fmx3s #VRHSZ
Больше📈 Аналитический обзор Telegram-канала Golang
Канал Golang (@golang_google) языкового сегмента Русский является активным участником. Сейчас сообщество объединяет 40 453 подписчиков, занимая 3 321 место в категории Технологии и приложения и 15 578 место в регионе Россия.
📊 Показатели аудитории и динамика
С момента создания невідомо проект демонстрирует стремительный рост, собрав аудиторию из 40 453 подписчиков.
Согласно последним данным от 07 ноября, 2026, канал показывает стабильную активность. За последние 30 дней изменение числа участников составило 8, а за последние 24 часа — -22, при этом общий охват остаётся высоким.
- Статус верификации: Не верифицирован
- Уровень вовлечённости (ER): Средний показатель вовлечённости аудитории составляет 17.62%. В первые 24 часа после публикации контент обычно набирает 8.98% реакций от общего числа подписчиков.
- Охват публикаций: В среднем каждый пост получает 7 129 просмотров. В течение первых суток публикация набирает 3 634 просмотров.
- Реакции и взаимодействия: Аудитория активно поддерживает контент: среднее количество реакций на один пост — 25.
- Тематические интересы: Контент сосредоточен на ключевых темах, таких как golang, api, devops, github, аллокация.
📝 Описание и контентная политика
Автор описывает ресурс как площадку для выражения субъективного мнения:
“admin - @haarrp
https://t.me/golangl - golang чат
https://t.me/golangtests go тесты
https://t.me/ai_machinelearning_big_data машинное обучение
@itchannels_telegram
РКН: clck.ru/3Fmx3s
#VRHSZ”
Благодаря высокой частоте обновлений (последние данные получены 08 ноября, 2026) канал поддерживает актуальность и высокий уровень охвата публикаций. Аналитика показывает, что аудитория активно взаимодействует с контентом, что делает его важной точкой влияния в категории Технологии и приложения.
encoding/json/v2 и encoding/json/jsontext. Новые пакеты теперь доступны в Go 1.27 без экспериментальных флагов.
Старый encoding/json существовал ещё до Go 1.0, но за годы накопил проблемы с производительностью, безопасностью и обработкой данных.
Что изменилось:
- JSON с повторяющимися ключами теперь по умолчанию вызывает ошибку.
- Некорректный UTF-8 больше не принимается молча.
- Сопоставление JSON-ключей с полями структур стало чувствительным к регистру.
- nil`-срезы сериализуются в `[], а nil`-map в `{}, вместо null.
- Появилась полноценная потоковая обработка JSON без необходимости буферизовать значение целиком.
Новый API также позволяет передавать настройки непосредственно в Marshal и Unmarshal.
Например:
import "encoding/json/v2"
type User struct {
Name string `json:"name"`
Age int `json:"age"`
}
data, err := json.Marshal(User{
Name: "Alex",
Age: 25,
})
Для потоковой работы добавили MarshalWrite, UnmarshalRead и отдельный пакет jsontext, который умеет читать и записывать JSON на уровне токенов.
А что с производительностью?
По измерениям разработчиков, скорость Marshal примерно соответствует старой реализации. Основные улучшения связаны с декодированием, потоковой обработкой и сокращением лишних аллокаций.
Старый encoding/json никуда не исчезает и продолжит поддерживаться. Переход на v2 добровольный, но стоит учитывать изменившееся поведение при сериализации и разборе JSON.
Разработка нового API заняла около шести лет.
Технический разбор: https://go.dev/blog/jsonv2//go:embed, позволяющий включать HTML, CSS, SQL-миграции и другие файлы непосредственно в исполняемый файл.
import "embed"
//go:embed static/*
var files embed.FS
После сборки приложению не нужна отдельная папка со статикой. Но как это реализовано?
В статье разобрали весь путь файла через Go 1.27.1.
Сначала go build находит директивы //go:embed и определяет подходящие файлы. Затем формирует JSON-конфигурацию embedcfg и передаёт её компилятору.
Компилятор записывает содержимое файлов в статические данные, а линкер собирает их вместе с кодом в исполняемый файл. При запуске embed.FS позволяет читать эти данные через привычный интерфейс fs.FS.
Есть несколько нюансов:
- //go:embed static рекурсивно включает каталог, но пропускает файлы с префиксами . и _.
- //go:embed all:static включает и скрытые файлы.
- Данные не сжимаются автоматически.
- Изменения файлов после сборки не отражаются в бинарнике.
Автор прошёлся по исходникам компилятора и линкера Go, показал устройство embed.FS и объяснил, как данные попадают в память.
https://internals-for-interns.com/posts/how-go-embed-works/.tldr, совместимые с tldraw, хотя некоторые возможности пока не поддерживаются.
Попробовать можно одной командой:
go run . examples/showcase.tldr
Для Go-разработчиков репозиторий интересен ещё и как пример реализации canvas-редактора с undo/redo, кешированием отрисовки и собственной системой документов без веб-стека.
https://github.com/egoist/godraw📂 Дима проведёт собес с разработчиком-добровольцем и предложит ему вопросы и задачи из реальных технических интервью. Участник не будет знать их заранее 📂 После каждого ответа разберёт его сильные и слабые стороны и объяснит, что важно для интервьюера 📂 В конце сможешь задать Диме свои вопросы и получить развёрнутые ответыЭфир проходит в рамках менторской программы ШОРТКАТ для Go-разработчиков, которые хотят сменить работу, вырасти в грейде и зарплате 🎁 За регистрацию подарим файл с эталонными ответами на 50 сложных вопросов с Go-собеседований Переходи в бота, чтобы зарегистрироваться на эфир и забрать подарок 👉 @shortcut_go_bot Реклама. О рекламодателе.
net.Listen("tcp", ":8080") может задействовать этот механизм без явного включения разработчиком.
Ошибка находится в ядре Linux, а Go может создавать условия для показанного варианта атаки.
Отключить MPTCP по умолчанию для Go-приложения можно так:
GODEBUG=multipathtcp=0 ./server
Но явный SetMultipathTCP(true) переопределяет настройку. Кроме того, сама уязвимость не ограничена MPTCP, поэтому это не полноценная замена исправлению ядра.
Патч уже внесён в поддерживаемые стабильные ветки Linux. Для дистрибутивов нужно проверить наличие исправленного пакета именно для своей ветки и загрузиться с обновлённым ядром. На момент публикации разбора для Ubuntu и RHEL обновления ещё ожидались.
https://thehackernews.com/2026/10/linux-kernel-tcp-flaw-with-98-cvss.html
//noalloc:root
func Process(buf []byte) {
// ...
}
Затем запустить проверку:
go install github.com/theconsensuslabs/noalloc/cmd/noalloc@latest
noalloc
Проверяется всё дерево вызовов, а не только тело функции. Инструмент указывает строки с потенциальными аллокациями: конкатенацией строк, записью в map, вызовами других функций и уходом данных в кучу.
Если найдена проблема, CLI завершается с ненулевым кодом - проверку можно поставить в CI, чтобы ловить регрессии.
В комплекте есть контейнеры с ограниченной ёмкостью, переиспользуемые буферы и JSON-кодировщик и декодировщик, рассчитанные на работу без новых аллокаций.
Проверка допускает некоторые исключения, включая первоначальную инициализацию и завершающие вызов пути ошибок. Поэтому это контроль заданных правил, а не безусловная гарантия отсутствия любых выделений памяти.
Нужен Go 1.27+.
https://github.com/theconsensuslabs/noalloc
go version -m ./app
Проверить бинарник на известные уязвимости:
govulncheck -mode=binary ./app
https://go.dev/blog/emudhra-incident crypto/x509, связанная с проверкой цифровых сертификатов.
Что изменилось:
- Ограничено доверие к небезопасным промежуточным сертификатам.
- Verify больше не возвращает цепочки с такими сертификатами.
- Повышена безопасность проверки TLS-сертификатов.
Анонс: https://groups.google.com/g/golang-announce/c/66pojueaQek/m/tmWX2Pq9AgAJ
Скачать: https://go.dev/dl/
@Golang_google