
Свежая подборка новостей и материалов
Интересное в этом выпуске
Выпущены Go 1.17.7 и 1.16.14
Go 1.18 Release Candidate 1: Заметки
Самомодифицирующийся исполняемый файл на Go
Go Workspaces в Go 1.18
Gambit - шахматы в терминале
Подкаст - обсуждаем дженерики от Go Get Podcast
FQ - Инструмент для работы с бинарными данными
Приятного чтения!
Новости, события
Выпущены Go 1.17.7 и 1.16.14 - включает исправлениями безопасности в cmd/go, math/big и crypto/elliptic
crypto/elliptic: исправление IsOnCurve для значений big.Int, которые не являются допустимыми
Некоторые значения big.Int, которые не являются допустимыми могут привести к тому что Curve.IsOnCurve неправильно вернет значение, работа с этими значениями могут вызвать панику или недопустимую операцию с кривой
math/big: потребления памяти в Rat.SetString
может вызвать неограниченный рост памяти в программе, использующей (*Rat).SetString
cmd/go: исправление версии веток
Ветка имя которой напоминает тег версии (например, "v1.0.0" или "subdir/v2.0.0-dev") go может считать действительной версией
Предложение по улучшению go/doc форматирования
proposal: arena: new package providing memory arenas
Предложение добавить пакет arena в стандартную библиотеку Go. Пакет арены позволит выделить любое количество арен. Объекты произвольного типа могут быть выделены из памяти арены, а арена автоматически увеличивается в размерах по мере необходимости. Когда все объекты в арене больше не используются, арена может быть явно освобождена для эффективного освобождения памяти без общей сборки мусора.
runtime: Не пора ли улучшить планировщик Go?
Russ Cox: Разбирает статью от ZDNet «Устойчивое развитие с Rust» - почему эта статья вводит в заблуждение о Go
Что будет в Go 1.18 — краткий обзор, в основном посвященный дженерикам и фаззингу на высоком (хотя и техническом) уровне.
Awesome
https://awesome-go.com/
https://github.com/guardrailsio/awesome-golang-security
https://github.com/Binject/awesome-go-security
https://gist.github.com/hbt/d6ab942b882d5b94f331c5257076d05e
https://github.com/avelino/awesome-go
Материалы для обучения
Уроки для изучения Golang
Ссылки на учебные пособия по Go
The Darker Corners of Go — список уроков
Серии видео уроков по Golang - Николай Тузов
Статьи
Go 1.18 Release Candidate 1: Заметки
Производительность Go от Go 1.2 до 1.18
Внутреннее устройство новой системы фаззинга в Go
Оптимизация GoAWK с помощью компилятора байт-кода и виртуальной машины.
Создание игрушечного преобразователя DNS с помощью Go
Создание быстрого графического интерфейса с помощью Fyne
Проверка TLS: внедрение верификаторов OCSP и CRL в Go
Как мы пишем GitHub Actions
Различные способы инициализации структур Go
История контроля версий Go.
Непрерывная сборка и развертывание приложений Go с помощью Google Cloud Build
Файловое тестирование в Go
Шаблоны проектирования GoF, которые все еще имеют смысл в Go
Как использовать даты и время в Go
Самомодифицирующийся исполняемый файл на Go
Встраивание NATS в Go
RabbitMQ Streams для сбора и обработки телеметрии умного дома
Как выбрать подходящий Go-роутер? (с блок-схемой)
Go, я создал: интегрируем Allure в Go красиво
Беглый взгляд на Go Workspaces в Go 1.18
Чистые транзакции в гексагональном Go
Как не выстрелить себе в ногу, обрабатывая ошибки в голанге
Какие тесты выбрать для облака? Сравниваем варианты
Go-контексты и микросервисы. Как решить проблему с соединениями к базе при помощи контекстов
Колокол — система событий в Go или очередная event-system библиотека
Golang пощупаем дженерики
Анализируем bound checks в Go по CPU профилю
Proof-of-Union — алгоритм консенсуса в блокчейн системах базируемый на сотрудничестве узлов
Continuous integration в Go с GitHub Actions
Как можно тестировать платформенные сервисы
IO_URING. Часть 3
Инструменты
Платформа для создания приложений с удаленным доступом по ssh - wish v0.3.0
Библиотека которая генерирует краткие, URL-безопасные UUID - shortuuid v4.0.0
Сервер обработки изображений с поддержкой Docker - imagor v0.8.11
Форк Cobra с большинством функций, но только с 4 зависимостями - coral v1.0.0
Распределенная реляционная база данных, построенная на SQLite - rqlite v7.3.1
Telegram Bot Framework - telebot 3.0
Игровой движок Pure Go - oak v3.3.0
Официальный клиент Go для Elasticsearch - go-elasticsearch v8.0
DNS-сервер, объединяющий плагины в цепочку - CoreDNS v1.9
Расширенный автономный планировщик заданий для PostgreSQL - pg_timetable v4.4.0
Играйте в шахматы в своем терминале - gambit v0.1.0
Библиотека логирования - zap v1.21.0
Инструмент для работы с бинарными данными - fq v0.05
Платформа TUI, вдохновленная Elm - bubbletea v0.20.0
Инструмент для рендеринга монохромной графики в терминале с помощью специальных блочных символов Unicode - tcg v0.0.2
Библиотека для размещения значка/меню в области уведомлений - systray
Утилита для сканирования некоторых новостных сайтов или других ресурсов и загрузки контента в pdf - newser
Инструмент SAST для обнаружения секретов, паролей, ключей API и токенов в репозиториях git - gitLeaks v8.3
Платформа для создания облачных микросервисов - kratos v2.2.0
Фреймворк для создания сервисов LDAP - gldap
Отслеживание позиций на биржах в терминале - ticker v4.5.0
Видео
Unit Testing RESTful APIs
Fuzz Testing in Go
Подкасты
▶ GenericTalks
▶ Go Time
▶ Go Get Podcast - Выпуск #1: Обсуждаем Дженерики
▶ Pointers or !Pointers, stack, and heap
Сообщества
Вопросы по языку на русскоязычном StackOverflow
Страница Go на stackoverflow
Информация о митапах
Форум в группах Google
https://t.me/vseins_tech

Eжедневный дайджест в телеграм
GolangStack
