Golang-дайджест № 10 (1 – 31 октября  2021)

9b86c9e62c138636c1ed12fd2b61f904.png

Руководство Generics in Go

awesome-go-style: Коллекция руководств по стилю Go 

Правильная упаковка ошибок 

Разница между Go и Rust

Основы: WebAssembly в golang 

genqlient: действительно типобезопасный клиент Go GraphQL

Изменение AWS Lambda для создания австралийской поисковой системы

Переписывание исходного кода Go с помощью AST

Какой роутер Go мне использовать? — Автор рассматривает четыре популярных варианта маршрутизации, цитирует плюсы и минусы каждого и завершает их красивой блок-схемой принятия решений и списком других вариантов маршрутизации.

Три вещи нужны сейчас больше, чем дженерики?

Более быстрый анализ времени 

Емкость и длина фрагмента в Go — в этом объяснении часто сравниваемых и смешанных типов данных есть несколько хороших визуальных элементов.

«Hey linker, can you spare a meg?» — Основной код Tailscale, службы VPN, написан на Go, но в iOS их сетевое расширение ограничено всего 15 МБ памяти. Чтобы убедиться, что они не превышают этот предел, инженеры Tailscale глубоко погрузились в среду выполнения Go, сборщик мусора и многое другое, что в конечном итоге привело к улучшениям для всех пользователей Go

GoReleaser теперь может создавать универсальные бинарные файлы macOS

Более безопасные перечисления в Go

Где сталкиваются Go и GraphQL: за кулисами с genqlient

В этом пошаговом руководстве показано, как реализовать в Go дизайн, управляемый предметной областью (DDD).

Tyler Bui-Palsulich показывает нам,  как искать и исправлять утечки памяти в Go.

Как использовать структурированное ведение журнала JSON в приложениях Go — первый шаг к тому, чтобы сделать ваши журналы более доступными для поиска.

Sam Lewis создал в Go инструмент VPN, чтобы понять,  как работает VPN

Анализ производительности базы данных с помощью Ent и Google Sqlcommenter

Создание многофункциональных приложений CLI с помощью встроенных шаблонов Go

Вам не нужна библиотека для просмотра файлов в Go

Как запланировать задачу на определенное время в Go

Почему вы должны использовать выделенные конструкторы в Go 

Почему сетевые инженеры должны учить golang

Полное руководство по go generate — основы генераторов Go, применения, а также команды и расширенные функции генерации кода.

Первые впечатления от Raspberry Pi Zero 2 W — Автор, создатель OpenFaaS , играет с новейшим устройством Raspberry Pi — крошечной четырех ядерной 64-битной платой за 15$. Он пробовал использовать на нем Go, включая компиляцию программ, и производительность, безусловно, значительно улучшилась по сравнению с предыдущими платами.

Что может пойти не так с mutex, или история профилирования Go — как выявлять проблемы в производственной среде без таких инструментов, как pprof, просто используя дамп стека и инструменты с открытым исходным кодом.

Сортировка графа зависимостей в Go — ориентированные ациклические графы (DAG) имеют множество приложений, поэтому их понимание может стать основой вашей способности решать проблемы более высокого порядка (или говорить о них в интервью …)

Организация запросов Postgres с использованием шаблонов в Go — здесь они хранят запросы SQL в файлах шаблонов, которые считываются двоичным файлом, разделяя исходный код SQL и Go. У этого есть несколько плюсов и минусов, и, вероятно, они вызывают сильные мнения.

Подробное объяснение создания pipelines

Как написать собственный прокси-сервер для модуля Go

Введение в информеры Go Kubernetes , которые позволяют вам индексировать и получать отображение ваших ресурсов k8s.

Go: как изменяется размер стека горутины?

Зачем и как хранить объекты на примере MinIO

Автоматизация тестирования микросервисов: плюсы и минусы тестов на Go

CQRS на golang

Синхронизация системных настроек

Разработка системы заметок с нуля. Часть 2: REST API для RESTful API Service + JWT + Swagger

Система заметок с нуля. Часть 4: разработка микросервисов NoteService, TagService и UserService

Система заметок с нуля. Часть 5: знакомство с объектным хранилищем MinIO и разработка микросервиса на Golang

Тёмный маршрутизатор из Raspberry Pi

Go и MySQL: настраиваем пул соединений

Перестаньте врать себе. Я middle, а вам нужен senior

Линтер для поиска HTTP-запросов — noctx

Пакет для запуска команд распределенной оболочки Linux через SSH — mash v1.13.0

Инструмент для создания Go ORM — SQLBoiler v4.7.1

Ultimate Service: начальный код для написания веб-сервисов на Go

Библиотека одновременных ограничителей скорости — RateLimiter v1.1.0

Одноразовый сервер веб-почты со встроенным SMTP, POP3 и др. — Inbucket v3.0.0

Быстрый и гибкий HTTP-маршрутизатор — BunRouter v1.0.3

Инструмент запуска, сборки задач — task v3.9.0

Синтаксический анализатор, форматировщик и интерпретатор оболочки — sh v3.4.0

Фреймворк TUI — bubbletea v0.18.0

GoPlus (Go +) для инженерии, образования и науки о данных — gop

Десятичные числа с фиксированной запятой произвольной точности — decimal v1.3.1

Framework Microservices — Kratos v2.1.1

Truthy Condition Testing с помощью Go Generics — Хотя это «немного шутка»

Библиотека позволяет отправлять повторяющиеся уведомления нескольким горутинам с гарантированной доставкой — broadcast v0.0.6

Инструмент для работы с hosts файлом — hostsfile v1.4

TCP-прокси для имитации «хаотического» состояния сети и системы — toxiproxy v2.2.0

Инструмент синтаксического анализа и отладки Panic Stack Trace — panicparse v2.2.0

Инструмент для создания URL-адресов Slug Creator с поддержкой нескольких языков — slug v1.11.0

Бибилиотека генерации UUID RFC-4122 — uuid v4.1.0

Сервер приложений PHP с высокой производительностью и балансировщик нагрузки — roadrunner v2.5.0

Набор инструментов для работы с API Apple/Mac и фреймворками в Go, состоящий как из привязок для Objective C, так и из упакованных версий определенных фреймворков — macdriver v0.2.0

Присоедините хуки к любому драйверу базы данных/sql — sqlhooks v2.0.0

Инструмент для сбора и отображения статистики с запущенных серверов Postgres — pgmetrics v1.12.0

Библиотека IMAP4 для клиентов и серверов — go-imap v1.2.0

Шахматный движок, написанный на go — blunder v7.1.0

K-сортируемые глобально уникальные идентификаторы (KSUID) — своего рода глобальный уникальный идентификатор, подобный RFC 4122 UUID, созданный для «естественной» сортировки по меткам времени генерации без какой-либо специальной логики с учетом типов — ksuid

Инструмент для создания интерфейса командной строки — gofire v0.1.0

Платформа для разработки облачных микросервисов — micro v3.6.0

Пакет валидаторов и дезинфицирующих средств для строк, структур и коллекций. На основе validator.js — https://github.com/asaskevich/govalidator v11.0.0

© Habrahabr.ru