Golang-дайджест № 18 (1 – 30 июня 2022)
Свежая подборка новостей и материалов
Интересное в этом выпуске
Выпущены версии 1.18.3 и 1.17.11;
Go 1.19 Beta 1 Released;
Обнаружен еще один ботнет на GO;
Собеседование Часть II что там с конкурентностью?
Приятного чтения!
Новости, события
Выпущены версии 1.18.3 и 1.17.11 — второстепенные выпуски, которые включают четыре исправления безопасности для проблем с:
crypto/rand - зависает с очень большими буферами;
crypto/tls - сессионных билетах, сгенерированных crypto/tls, не было случайно сгенерированного ticket_age_add. Это позволяет злоумышленнику, который может наблюдать рукопожатия TLS, сопоставлять последовательные соединения, сравнивая сроки действия билетов во время возобновления сеанса;
os/exec - пустой Cmd.Path может привести к запуску непредусмотренного двоичного файла в Windows. каталоге есть двоичные файлы с именами «..com» или «..exe», они будут выполнены;
path/filepath - Clean(.\c:) возвращает c: в Windows . В Windows функция filepath.Clean может преобразовать недопустимый путь в действительный абсолютный путь. Например, Clean(.\c:) вернул c:.
Что Go грядущий нам готовит? Разбираем долгожданный релиз 1.19
Предложение по языку: внедрите прямую поддержку SIMD в Go - предлагается simd библиотека для использования SIMD (Single Instruction, Multiple Data) инструкций ЦП.
Исследовательская группа Akamai по безопасности обнаружила ботнет, написанный на Go
Awesome
Материалы для обучения
The Darker Corners of Go — список уроков
Статьи
Что сделало Go таким популярным? Создатели языка оглядываются назад
(В основном) Автоматическое обновление зависимостей Go с помощью GitHub Actions
Как статический анализ кода не дает вам проснуться в 3 часа ночи
Деплой, базы данных и мониторинг: жизнь после перехода на Go
Что читать Golang-разработчику. Семь главных книг: от Донована и Кернигана до МакДауэлл
Зоопарк в Golang MSA. Protobuf, MessagePack, Gob – что выбрать?
Go, Allure и HTTP, или Как мило тестировать HTTP-сервисы на Go
Эй, пс, Gopher! Хочешь немного секретности? Стеганография для Маши и Вити
Go ebiten: разбираемся с рендерингом и позиционированием текста
Собеседование Golang разработчика (теоретические вопросы), Часть II. Что там с конкурентностью?
Материалы бэкенд-митапа. MongoDB, оптимизация алгоритмов и диагностика проблем в больших проектах
Следующий уровень автоматизации Kubernetes. Создаем свой оператор
Триггернутые, или Как безболезненно встроить нагрузочное тестирование в ваш пайплайн
Инструменты
Zinc v0.2.5 - поисковая система, которая выполняет полнотекстовое индексирование, альтернатива Elasticsearch;
Bluemonday v1.0.19 - быстродействующий HTML-санитайзер;
Compose Transporter v1.1 - синхронизация данных между Persistence Engines;
Fyne v2.2.2 - это простой в использовании инструментарий GUI;
GoPlus (Go+) v1.1.2 - более скриптовый вариант Go;
Mo v1.0 - monads and Popular FP Abstractions for Go 1.18+;
Benthos 4.3 - это высокопроизводительный и отказоустойчивый потоковый процессор, способный подключать различные источники и приемники в различных шаблонах посредников и выполнять гидратацию, обогащение, преобразование и фильтрацию полезной нагрузки;
Ddosify v0.8 - инструмент для нагрузочного тестирования HTTP;
gta - это приложение, которое находит пакеты Go, которые отклонились от исходного кода в git;
garr v0.1.1 - высокопроизводительные, потокобезопасные, безблокировочные механизмы данных;
SyMon v1.1.1 - простой инструмент мониторинга и оповещения;
Chroma v2.2 - подсветка синтаксиса общего назначения Pure Go;
Trie - реализация Trie, ориентированная на варианты использования автозавершения;
Validate v1.4.2 - библиотека проверки и фильтрации данных;
Viddy v0.3.6 - современная альтернатива go watch;
Render v1.5 - простой рендеринг ответов JSON, XML, двоичных данных и HTML-шаблонов;
phonenumbers v1.1 — Анализ и проверка телефонных номеров;
Hertz v0.1 — платформа Go для микросервисов HTTP;
go-nanoid v1.0 - быстрый и эффективный генератор уникальных идентификаторов;
span-terminal - Библиотека позволяет отслеживать вложенный прогресс всех запущенных задач CLI и записывать их журналы в один контейнер;
go-arch-lint v1.7.2 - Линтер используется для обеспечения хорошей структуры проекта и проверки архитектуры верхнего уровня (уровней кода).
Видео
? Взгляд на Go с точки зрения 2053 года с довольно футуристически выглядящим Роном Эвансом из TinyGo
? Как на самом деле устроен тип Map в Golang? - от пользователя @JustSkiv