Golang вопросы собеседований
13.9K subscribers
663 photos
7 videos
1 file
474 links
@notxxx1 - админ

@Golang_google - Golang для разработчиков

@itchannels_telegram - 🔥лучшие из ит

@golangl - chat

@golangtests - golang tests

@golang_jobsgo - go chat jobs

@ai_machinelearning_big_data - AI

@data_analysis_ml

РКН: clck.ru/3FmtKd
加入频道
Forwarded from Golang
🌀 Go 1.25 приносит мощный апгрейд JSON-библиотеки: encoding/json/v2 — переработанная с нуля система сериализации с гибкой настройкой, высокой скоростью и новым API

Что изменилось:

● Прямая работа с io.Writer и io.Reader
Новые функции MarshalWrite и UnmarshalRead позволяют писать и читать JSON напрямую, без создания Encoder/Decoder. Это упрощает потоковую работу и уменьшает аллокации.

● Потоковая обработка JSON
Появился модуль jsontext с функциями MarshalEncode и UnmarshalDecode, которые читают и пишут JSON по одному объекту за раз. Это критично для систем, обрабатывающих большие JSON-потоки, например, в Kubernetes.

● Гибкая настройка
Теперь функции Marshal и Unmarshal принимают опции, напрямую влияющие на формат вывода и поведение парсера:
- OmitZeroStructFields(true) — пропускать нулевые поля
- StringifyNumbers(true) — числа как строки
- MatchCaseInsensitiveNames(true) — имена полей без учёта регистра
- FormatNilMapAsNull(true)nil`-карты как `null
- WithIndent(" ") — отступы в JSON

Пример:

json.Marshal(
user,
json.OmitZeroStructFields(true),
json.StringifyNumbers(true),
jsontext.WithIndent(" "),
)


● Новое поведение по умолчанию
Теперь:

JSON-парсинг чувствителен к регистру

Дублирующиеся ключи запрещены

Неизвестные поля игнорируются, если не указано иное

Можно включить прежнее поведение опциями (например, MatchCaseInsensitiveNames)

● Ускорение десериализации
Внутренний движок полностью переписан — ускорение десериализации в 2.7–10.2 раз. При использовании потоковых API (UnmarshalJSONFrom) — прирост до 40×.

● Экспериментальный статус
API ещё может меняться. По умолчанию encoding/json использует новый движок, но json/v2 доступен отдельно и требует флага:



GOEXPERIMENT=jsonv2


Это — один из самых масштабных апдейтов стандартной библиотеки Go за последние годы. Подходит для тех, кто работает с тяжёлыми JSON-структурами, большими потоками или требует строгого контроля сериализации.

📌 Полный разбор и примеры

@golang_google

#golang #go #JSON
🔥26👍76
🔬 Go-HEP — библиотеки и инструменты для анализа данных в физике высоких энергий

go-hep — это набор библиотек на языке Go, созданных для упрощения и ускорения HEP-анализа (High Energy Physics). Проект предоставляет всё необходимое, чтобы читать, обрабатывать и визуализировать физические данные — и всё это с помощью удобного, параллельного и надёжного кода на Go.

🧩 Что входит:
• Чтение/запись ROOT-файлов
• Построение гистограмм
• Event loop системы
• Матричные и векторные вычисления
• Нативная реализация на Go без C/C++-биндингов

📚 Документация: доступна через GoDoc
📬 Форум: ~sbinet/[email protected]
💡 Подробнее: [go-hep.org](https://go-hep.org)

🎯 Зачем это нужно:
Анализ данных в HEP требует мощных инструментов. Одно из ключевых условий — это работа с форматом ROOT. Go-HEP предоставляет этот уровень совместимости, позволяя встраивать свои анализы в существующие пайплайны HEP-сообщества.

Почему Go:
Go даёт:
• высокую скорость
• удобный параллелизм через goroutines
• развитую экосистему и простую поддержку CI/CD
• чистую архитектуру и масштабируемый код

🧠 Go-HEP позволяет физикам сосредоточиться на анализе, а не на инфраструктуре.

🔗 GitHub: github.com/go-hep/hep
📜 Лицензия: BSD-3
🤝 Как помочь: go-hep.org/contributing

#golang #HEP #science #physics #opensource
9👍2🌚1