devcenter.upsun.com/posts/go-124/
#golang #программирование
@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍22❤8🤔3🔥2😱2
@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15❤6🤬5🔥4
@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
❤27👍9🔥5
@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥9❤4
@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18❤5🔥5
@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16❤4🔥3🤔2
@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍3🔥2🤬1
Эти нововведения делают язык 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
❤53👍34🔥10🥰1🎉1
@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤6🔥2
@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍31❤4🔥4😁4🤔3🤯2😱1
@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11🔥9👍3🥰2
@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍22❤5🔥4
@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19🔥7❤6
🎄 С Новым годом!
Желаем всем гофферам самого лучшего в году
@golang_google
Желаем всем гофферам самого лучшего в году
1³ + 2³ + 3³ + 4³ + 5³ + 6³ + 7³ + 8³ + 9³.
@golang_google
1👍47❤12🔥9
@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥7❤6
This media is not supported in your browser
VIEW IN TELEGRAM
@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥60👍22❤11😁2👏1🤬1
Мощный OSINT-инструмент для поиска цифровых следов и утечек паролей людей в различных социальных сетях, написанный на языке Go.
▪️ GitHub
@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍29🤬14🔥7❤5
This media is not supported in your browser
VIEW IN TELEGRAM
@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔24👍11❤6😁4🤯4🔥3
@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
❤20👍9😁7🤬4🥰1
@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10👍5🥰4
@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13❤5👍3🥰1