Свежая подборка новостей и материалов
Интересное в этом выпуске
Выпущены Go 1.17.1 и Go 1.16.8
Создание приложения с графическим интерфейсом Gio
I18n в Go: Управление переводами
Обновления кодекса поведения сообщества Go
Выпущены OpenTelemetry Go API и SDK 1.0
Приятного чтения!
Новости, события
Выпущены Go 1.17.1 и Go 1.16.8
устранена проблема безопасности
archive/zip
go.work появится в версии 1.18 - режим многомодульного рабочего пространства, при вызове в режиме рабочей области
go
всегда будет выбирать указанные модули и согласованный набор зависимостейКак обновить API для дженериков? - Расс и другие просят помощи с предложениями и вариантами миграции кода
go-test-trace теперь может участвовать в существующей распределенной трассировке
У Generics Go появился новый способ ограничения типов в виде наборов типов
Выпущены OpenTelemetry Go API и SDK 1.0 - набор API-интерфейсов для прямого измерения производительности и поведения вашего программного обеспечения и отправки этих данных на платформы наблюдения.
Встроенная поддержка тестирования фаззинга появится в Go 1.18. Подробнее о том, что это значит и как с этим играть, можно узнать здесь
Предложения по улучшению языка
slices: add Sort, SortStable, IsSorted, BinarySearch, and func variants
предлагают добавить новую универсальную функцию для сортировки фрагментов
doc comment revisions: headings, lists, and links
Russ Cox собирает идеи для улучшения Go doc комментов.
В Twitter Russ Cox, стоит ли Go беспокоиться о добавлении поддержки int128 или int256?
Awesome
Материалы для обучения
Статьи
Monkey: сатирический пакет Go, непреднамеренно используемый Arduino и SalesForce
Руководство для разработчиков по профилированию, отслеживанию и наблюдаемости GO
Пример использования Go, GopherJS и Three.js для создания базовой демонстрации трехмерной графики.
Когда идет передача по значению, когда по ссылке, а когда что-то… еще. У беспорядка есть свой метод, но чтобы его увидеть, нужны объяснение и опыт.
Создание приложения с графическим интерфейсом с помощью Go и Gio
Не бойтесь указателя - статья предназначена для тех, кто считает работу с указателями в Go пугающей или трудной для понимания.
Укрощение использования памяти в Go, или «Как мы избежали перезаписи нашего клиента в Rust»
Эффективная обработка изображений с помощью конвейеров Go и ограниченного параллелизма
Кодогенерация в GO на примере маршалинга и анмаршалинга интерфейсных типов данных
Первый стабильный выпуск низкоуровневого корректора раскладок в linux «xswitcher»
Применение двоичной логики в недвоичных операциях: оптимизируем производительность и ресурсы
Релиз Centrifugo v3 – и да пребудет с вами Центробежная Сила
Сборка собственного RPM-пакета, содержащего простую Go-программу
Инструменты
Кроссплатформенный и сверхбыстрый инструментарий для работы с файлами FASTA/Q - SeqKit v2.0
Масштабируемый сервер обмена сообщениями в реальном времени - Centrifugo v3.0.1
Инструмент статического анализа для защиты кода Go - GoKart v0.3.0
Брандмауэр веб-приложений, совместимый с ModSecurity - coraza-waf v1.2.0
Файловый сервер (реализация протокола NFSv3) - go-nfs
Инструмент для создания ретро-игр с помощью WebAssembly для фэнтезийной консоли - wasm4
Таймер обратного отсчета в терминале - countdown v1.1.0
Безопасное управление вашими файлами на нескольких машинах - Chezmoi v2.5.1
Инструмент шифрования - Age v1.0
Интерфейс командной строки для создания приложения - cli v3.1.0
Библиотека для чтения файлов PST (используются Microsoft Outlook) - go-pst
Библиотека чтения и записи файлов .INI - ini v1.63.2
Интерпретатор, линтер и форматтер Clojure - joker v0.17.2
HTTP/HTTPS и SOCKS-туннель - clash v1.7.1
Terminal UI для просмотра и редактирования баз данных SQLite - termdbms
Механизм шаблонов со встроенным интерпретатором Go - Scriggo v0.52.2
Библиотека HTML5 Переданных Events (SSE) - go-sse
Векторная база данных с открытым исходным кодом - Milvus v1.1.1
RSS-ридер - YARR v2.1
Сервер GraphQL - graphql-go 1.2.0
Библиотека для работы с несколькими видами пар (cryptographic keypairs) - go-multikeypair
Компилятор Go для небольших мест на основе LLVM - tinygo v0.20.0
Библиотека планирования с нулевой зависимостью - go-quartz v0.3.6
Платформа автоматизированного машинного обучения - Tangram
Высокопроизводительный минималистичный веб-фреймворк - Echo 4.6.1
Библиотека индексирования текста - Bleve 2.2.0
Распределенная реляционная база данных, построенная на SQLite - rqlite 6.6.0
Библиотека тестирования - go-testdeep v1.10.1
Библиотека одновременных ограничителей скорости - ratelimiter v0.3.0
Генератор кода командной строки, который генерирует структурный код типа-к-типу и от поля к полю без добавления в ваш проект каких-либо отражений или зависимостей - copygen v0.1.0
Библиотека контроллера gpio для raspberrypi - gopio v2.2.2
Видео
Подкасты
Обсуждение создания действительно обслуживаемого программного обеспечения - четыре разработчика обсуждают идею создания поддерживаемого программного обеспечения и то, что в Go делает его хорошо подходящим для этой задачи.