Golang-дайджест № 14 (1 – 28 февраля  2022)

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Свежая подборка новостей и материалов

Интересное в этом выпуске

  • Выпущены 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 Tim‪e‬

  • ▶ Go Get Podcast - Выпуск #1: Обсуждаем Дженерики

  • ▶ Pointers or !Pointers, stack, and heap

Сообщества

  • Вопросы по языку на русскоязычном StackOverflow

  • Страница Go на stackoverflow

  • Информация о митапах

  • Форум в группах Google

  • https://t.me/vseins_tech

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

GolangStack

Источник: https://habr.com/ru/post/653955/


Интересные статьи

Интересные статьи

Привет! Меня зовут Саша Шутай, я тимлид в AGIMA. В прошлой статье я рассказывал, что делать, если на проекте Bitrix сожительствует с Vue.js и поисковые боты не видят контента сайта. А в этой помогу ра...
Рано или поздно, каждый пэхапешник, пишущий на битриксе, начинает задумываться о том, как бы его улучшить, чтобы и всякие стандарты можно было соблюдать, и современные инструменты разработки использов...
В этой статье мы расскажем, как оптимизировать крупный проект в «Битрикс24» и увеличить его производительность в 3 раза, изменяя настройки MySQL и режим питания CPU. Дано Корпоративн...
Компании растут и меняются. Если для небольшого бизнеса легко прогнозировать последствия любых изменений, то у крупного для такого предвидения — необходимо изучение деталей.
Одной из «киллер-фич» 12й версии Битрикса была объявлена возможность отдавать статические файлы из CDN, тем самым увеличивая скорость работы сайта. Попробуем оценить практический выигрыш от использова...