Свежая подборка новостей и материалов.
Новости, события
Оптимизация на основе профиля (PGO) — это новая (в предварительной версии ) функция, использующая запуск профиля вашего приложения для оптимизации его будущей компиляции.
Правила преобразования типов Go были расширены, чтобы разрешить прямое преобразование из среза в массив
Команды
go build
,go install
, и другие команды, связанные со сборкой, теперь принимают-pgo
флаг, позволяющий выполнять оптимизацию на основе профиля, а также-cover
флаг для анализа покрытия всей программыНовый crypto/ecdh пакет обеспечивает явную поддержку обмена ключами Диффи-Хеллмана на эллиптических кривых по кривым NIST и Curve25519
Новая функция errors.Join возвращает ошибку, упаковывающую список ошибок, который может быть получен снова, если тип ошибки реализует Unwrap() []error метод
Новый тип http.ResponseController обеспечивает доступ к расширенным функциям для каждого запроса, которые не обрабатываются интерфейсом http.ResponseWriter
Прокси-сервер httputil.ReverseProxy включает новую Rewrite функцию ловушки, заменяющую предыдущую Director
Новая функция context.WithCancelCause предоставляет способ отменить контекст с заданной ошибкой. Эту ошибку можно получить, вызвав новую context.Cause функцию
В os/exec.Cmd добавлены поля Cancel и WaitDelay - определяют поведение контекста
Улучшения Perf в сборщике мусора.
1.20 — это последний выпуск, который будет работать на macOS 10.13/10.14 или Windows 7/8.
Добавлен пакет Arena - экспериментальное решение для управления памятью (пример использования)
Awesome
Материалы для обучения
Статьи
Бесит, что err != nil: главные инсайты из опроса Go-разработчиков
Автоматизация go get — больше не нужно запоминать названия библиотек
Бардак в main, стандартизация и uber.fx. Как сделать структуру кода понятнее для всех
Как построить WaitGroup на основе 32-разрядного целого числа
Amazon IVS: как быстро добавить видеотрансляции в приложение или на сайт
Инструменты
gopher-lua 1.1.0 — виртуальная машина и компилятор для Lua в Go
dicom 1.0.5 — анализ медицинских изображений DICOM с Go
ov 0.14.2 — многофункциональный терминальный пейджер
conc 0.2.0 — Более структурированный параллелизм.
bob 0.15.6 — SQL Query Builder и ORM/Factory Generator с поддержкой Postgres, MySQL и SQLite
vald 1.7.1 - Распределенная векторная поисковая система
d2 0.1.6 — система декларативного построения диаграмм.
permify 0.3.0 — служба авторизации для создания и поддержки детальной авторизации в ваших приложениях.
gobgp 3.11.0 — реализация протокола Border Gateway Protocol (BGP).
notify 0.38.0 — библиотека Go для отправки уведомлений в различные службы обмена сообщениями.
fiber 2.42.0 — веб-фреймворк вдохновлён Express.js.
imagor 1.4.0 — сервер обработки изображений с поддержкой Docker.
ebitengine 2.4.16 — игровой движок с открытым исходным кодом 2D-игр.
mirrord 3.24.0 — инструмент для запуска локальной службы в облачном (Kubernetes) контексте.
go-wiki 1.0.1 — клиент API Википедии Golang.
script 0.21.4 — библиотека для выполнения задач, чтение файлов, выполнение подпроцессов, подсчет строк, строгие строки и т.д.
yaegi 0.15.0 — интерпретатор, позволяющий использовать Go для написания сценариев в других приложениях.
yao 0.10.2 — движок с открытым исходным кодом, написанный на Golang в виде инструмента командной строки. Он подходит для разработки бизнес-систем, API веб-сайтов/приложений, панели администратора, самодельных платформ
cloudquery 1.0.3 — высокопроизводительная платформа интеграции данных с открытым исходным кодом , созданная для разработчиков.
chatgpt 0.2.1 — консольный клиент chatGPT
zitadel 2.19.2 — система управления пользователями, которая быстро настраивается, мультитенантность с настройкой фирменного стиля, безопасный вход в систему, самообслуживание, OpenID Connect, OAuth2.x, SAML2, беспарольный доступ с FIDO2 (включая пароли), OTP, U2F и неограниченный контрольный журнал
phoneinfoga 2.10.2 — инструмент для сканирования международных телефонных номеров. Это позволяет вам сначала собрать базовую информацию, такую как страна, регион, оператор связи и тип линии, а затем использовать различные методы, чтобы попытаться найти провайдера VoIP или идентифицировать владельца