Golang-дайджест № 4 (1 – 30 апреля 2021)
Свежая подборка новостей и материалов
Интересное в этом выпуске
Видео с GopherCon Russia 2021
Создание BitTorrent-клиента с нуля
Набор инструментов для работы с API Apple/Mac
Сетевой сканер ARP, TCP, UDP, ICMP
Приятного чтения!
Новости, события
Выпущены версии Go 1.16.3 и 1.15.11 Релизы с небольшими исправлениями ошибок
x/crypto/openpgp будет помечен как замороженный и устаревший из-за несовместимости с принципами криптографии Go
JetBrains поделилась своей дорожной картой для GoLand 2021. 2. Улучшенные модули Go и поддержка версии 1.17 – на повестке дня
GoLand 2021.1 Удаленная разработка на Docker, SSH и WSL 2, поддержка Go 1.16, улучшенная работа с JSON
Предложения по улучшению языка
Предложение добавить фаззинг в стандартную библиотеку Go принято. Нечеткость – это подход к тестированию, при котором вводимые данные изменяются/видоизменяются. Это нужно, чтобы попытаться найти проблемы с кодом, потребляющим указанные вводимые данные. Теперь приступим к реализации.
«Это нестандартный макет проекта Go». «Стандартный макет проекта Go» является репозиторием, представляющим себя как базовый макет для проекта Go. Но Russ Cox считает, что он не очень отражает реальность. За этим последовало много обсуждений, в результате которых сам проект Go надеется сформировать некую официальную документацию по макету проекта.
Существует ранняя стадия эскизного проекта для создания базы данных уязвимостей Go. Цель состоит в том, чтобы создать «собственную, тщательно подобранную и согласованную базу данных уязвимостей безопасности, открытую для комментариев сообщества».
Брэд Фитцпатрик вернулся, чтобы убрать ненужные ссылки на GNU из кодовой базы Go.
Go 1.17 позволит преобразовать срез в указатель массива. 1.17 добавляет эту способность без использования reflect или unsafe. Но следует принять во внимание некоторые предостережения.
Материалы для обучения
Введение в программирование на Go
Руководство для начинающих по разумным абстракциям с использованием Golang
Книга, посвященная синтаксису/семантике
Go-patterns (паттерны проектирования с примерами на Golang)
Статьи
Как группа разработчиков Google по обеспечению надежности сайтов использует Go – преимущества, которые команда Go SRE реализовала при переходе от Python и C ++ к Go. Вы, наверное, догадались, что в этом списке значатся простота и легкий параллелизм.
Google: «Go поддерживает корпоративных разработчиков» – команда Go опубликовала результаты опроса разработчиков Go Developer Survey 2020 в прошлом месяце. Но Google, похоже, подчеркивает, что Go продолжает видеть все большую роль в корпоративных сценариях, особенно в создании сервисов API/RPC.
Go HTTPS-серверы с TLS – прямое введение в запуск HTTPS-серверов, управляемых TLS, непосредственно из Go. Сюда включается то, как работает квитирование, как генерировать самоподписанные сертификаты непосредственно из Go, а также простой пример аутентификации клиента.
Приступая к работе с AWS Cloud Development Kit и Go – Go поддержка AWS CDK теперь находится в предварительной версии для разработчиков и готова к использованию. В этом посте рассказывается о настройке нового приложения AWS CDK и о развертывании стеков, синтезированных в Go.
Подходы к использованию context
Encore: Backend Framework Go API с «суперсилами» – Encore использует генерацию кода и статический анализ, чтобы позаботиться о многих шаблонах, которые обычно возникают при создании API. Версия 0.11.0 была только что выпущена, и это одна из тех вещей, которые вам нужно увидеть, чтобы получить.
Руководство по JSON в Go – по сути, набор рецептов для работы с JSON.
Написание хороших модульных тестов. Не имитируйте соединения с базой данных
Семь лет разработки баз данных с открытым исходным кодом: извлеченные уроки
Go Generics Beyond the Playground – автор пытается переписать библиотеку сопоставления тестов, используя дженерики. Углубляется в то, как решили проблему до дженериков и что возможно сейчас.
Шаблоны параллельного API в Go – пять простых правил (с использованием трех шагов), которым необходимо следовать для создания параллельного кода API без утечек.
Обзор Prisma ORM: как забыть об SQL и сосредоточиться на данных
Слабо поднять такой крошечный контейнер? Создаем контейнеризованный HTTP-сервер на 6kB
Инструменты
Быстрый кодировщик / декодер JSON, совместимый сencoding/json go-json
Библиотека анализа и проверки номеров версий go-version
XMPP-сервер, написанный на Go Jackal
Драйвер MySQL 1.6 Go-MySQL-Driver
Топовый интерфейс для показателей контейнера ctop
Реализация QUIC на Pure Go quic-go
Инструмент для создания каналов Linux с мгновенным предварительным просмотром в реальном времени ultimate plumber
Стили для терминала lip gloss
Набор инструментов для работы с API Apple/Mac mac driver
Реактивные расширения для языка Go. Если вы знакомы с RxJS в мире JavaScript, это та же идея RxGo 2.5.0
Основные функции LDAP V3 для разработчиков go-ldap 3.3
Симулятор 2D-системы частиц twodeeparticles
Создание макета клиента и сервера Go на основе спецификаций OpenAPI 3 oapi-codegen 1.6
Высокомасштабируемая распределенная Vector Search Engine vald
Cписок и диагностика текущих запущенных процессов Go gops
Система распределенной связи в реальном времени (RTC) ion 1.9
Проверка репозитория и истории Git на предмет секретов и ключей gitleaks 7.4
Популярное программное обеспечение git forge gitea 1.14.0
A Lock Free ID генератор на основе Твиттера Snowflake go-snowflake
Базовая строка выполнения, защищенная от потоков progressbar 3.7.5
Vue-Like Frontend в Pure Go, HTML и CSS vugu
Библиотека для создания и управления пулом горутин tunny
Совместимая библиотека XPath 1.0 xsek
Веб-фреймворк, вдохновленный Express, построенный на основе Fasthttp fiber 2.8.0
Сетевой сканер ARP, TCP, UDP, ICMP sx
Готовая реализация протокола консенсуса Raft raft 1.3.0
Быстрый анализатор выражений Cron без зависимостей gronx
Настраиваемая панель инструментов терминала для разработчиков devdash 0.5
Подсветка синтаксиса общего назначения chroma 0.9
Универсальный интерфейс командной строки для баз данных usql 0.9
Инструмент для создания триангулированного изображения triangle
Пользовательский интерфейс терминала Heroku htui
Привязка Go к API MagickWand C от ImageMagick go Imagick
Видео
Плейлист с GopherCon Russia 2021
Подкасты
Ardan Labs. Мастерство в облачных вычислениях
Создание стартапов с помощью Go
Разговор о TCP и UDP с Адамом Вудбеком