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
Show more📈 Analytical overview of Telegram channel Golang
Channel Golang (@golang_google) in the Russian language segment is an active participant. Currently, the community unites 40 453 subscribers, ranking 3 321 in the Technologies & Applications category and 15 578 in the Russia region.
📊 Audience metrics and dynamics
Since its creation on невідомо, the project has demonstrated rapid growth, gathering an audience of 40 453 subscribers.
According to the latest data from 07 November, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by 8 over the last 30 days and by -22 over the last 24 hours, overall reach remains high.
- Verification status: Not verified
- Engagement rate (ER): The average audience engagement rate is 17.62%. Within the first 24 hours after publication, content typically collects 8.98% reactions from the total number of subscribers.
- Post reach: On average, each post receives 7 129 views. Within the first day, a publication typically gains 3 634 views.
- Reactions and interaction: The audience actively supports content: the average number of reactions per post is 25.
- Thematic interests: Content is focused on key topics such as golang, api, devops, github, аллокация.
📝 Description and content policy
The author describes the resource as a platform for expressing subjective opinions:
“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”
Thanks to the high frequency of updates (latest data received on 08 November, 2026), the channel maintains relevance and a high level of publication reach. Analytics show that the audience actively interacts with content, making it an important point of influence in the Technologies & Applications category.
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