@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
devcenter.upsun.com/posts/go-124/
#golang #программирование
@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Эти нововведения делают язык Go ещё более мощным и эффективным инструментом для разработки современных приложений.
▫️ Повышение производительности
Общий прирост производительности составляет 2–3%, благодаря снижению нагрузки на процессор в ряде репрезентативных тестов.
Достигнуто это за счёт новой встроенной реализации map, более эффективного выделения памяти для мелких объектов и обновлённой внутренней реализации мьютексов времени выполнения. Однако результаты могут различаться в зависимости от конкретного приложения.
▫️Постквантовая криптография
Новый пакет crypto/mlkem, реализующий механизмы ML-KEM-768 и ML-KEM-1024.
ML-KEM — это система постквантового обмена ключами, которая раньше была известна как Kyber и стандартизирована в FIPS 203. Данное обновление готовит Go к будущим вызовам в области криптографии.
▫️Улучшенное шифрование TLS
Теперь поддерживается Encrypted Client Hello (ECH) в протоколе TLS. Для активации этой функции необходимо заполнить поле Config.EncryptedClientHelloKeys, что повысит уровень конфиденциальности и безопасности при установлении TLS-соединений.
▫️Новая Swiss Table Map
Для повышения производительности map введена новая реализация на основе Swiss Tables. Её можно отключить с помощью флага сборки GOEXPERIMENT=noswissmap.
▫️Обновление Sync Map
Повышена эффективность модификации данных в sync.Map. Модификации непересекающихся наборов ключей гораздо менее склонны к конфликтам на больших map, и больше не требуется никакого времени на разгон для достижения низкой загрузки от map. Если вы столкнетесь с проблемами, вы можете вернуться к старой реализации, используя GOEXPERIMENT=nosynchashtriemap.
### Расширенная поддержка JSON-маршалинга
▫️Добавлен новый тег omitempty для более гибкого пропуска нулевых значений полей структур при сериализации в JSON. Поле с этим тегом будет пропускаться, если его значение равно нулю. Если у типа поля есть метод IsZero() bool, он будет использован для проверки значения.
▫️Расширенное маршалирование JSON
Новая опция тега omitempty для более интеллектуального пропуска полей структуры во время маршалирования JSON. При маршалировании поле структуры с опцией omitempty будет пропущено, если его значение равно нулю. Если тип поля имеет метод IsZero() bool, он будет использоваться для определения того, равно ли значение нулю.
▫️Очистка времени выполнения
Введение функции AddCleanup для замены SetFinalizer для лучшего управления ресурсами. В отличие от SetFinalizer, она не воскрешает объект, к которому прикреплена для финализации, и к одному объекту может быть прикреплено несколько очисток. Новый код должен предпочитать AddCleanup вместо SetFinalizer.
Директивы Tool в go.mod
Улучшено отслеживание исполняемых зависимостей с использованием директив tool в go.mod. Это устраняет необходимость в предыдущем обходном решении добавления инструментов в виде пустых импортов в файл, условно названный “tools.go”.
▫️Доступ с ограничением по каталогу
Новый тип os.Root для контролируемых операций с файловой системой.
Тип os.Root предоставляет возможность выполнять операции с файловой системой в пределах определенного каталога, предотвращая доступ за пределы указанного пути.
Улучшения тестирования
Новый пакет testing/synctest для тестирования параллельного кода. Функция synctest.Run запускает группу горутин в изолированном "пузыре", а функция synctest.Wait ожидает, пока все горутины в текущем пузыре не заблокируются. Этот пакет является экспериментальным и должен быть включен путем установки GOEXPERIMENT=synctest во время сборки.
▫️Кэш сборки
Исполняемые файлы go run теперь кэшируются для более быстрого выполнения. Это делает повторные выполнения быстрее за счет увеличения размера кэша.
@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
🎄 С Новым годом!
Желаем всем гофферам самого лучшего в году
@golang_google
Желаем всем гофферам самого лучшего в году
1³ + 2³ + 3³ + 4³ + 5³ + 6³ + 7³ + 8³ + 9³.
@golang_google
@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Мощный OSINT-инструмент для поиска цифровых следов и утечек паролей людей в различных социальных сетях, написанный на языке Go.
▪️ GitHub
@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM