Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
Свежая подборка новостей и материалов
Интересное в этом выпуске
Выпущены Go 1.17.2 и Go 1.16.9
Выпущен Ebiten 2.2.0 с поддержкой Nintendo Switch
Анонс опроса разработчиков Go в 2021 году
Какой роутер Go мне использовать?
GoPlus (Go +)
Приятного чтения!
Новости, события
Выпущены Go 1.17.2 и Go 1.16.9
устранены проблемы безопасности при вызове функций из модулей WASM.
Ebiten 2.2.0 выпущен с поддержкой Nintendo Switch
Предложение: не добавлять Generics в базовые библиотеки Go в версии 1.18 - Rob Pike предлагает разместить новые версии базовых библиотек в экспериментальном пространстве имен
Анонс опроса разработчиков Go в 2021 году - поделитесь своими мыслями и помогите сформировать язык - ваши ответы очень ценятся командой Go
Ожидания для Generics в Go 1.18 - Расс объясняет, как общий код карт и фрагментов будет в экспериментальном пакете для запуска, а также соответствующие предупреждения о слишком раннем использовании дженериков в продакшене.
Go 1.18 будет встраивать информацию о версии исходного кода в двоичные файлы - добавляет информацию о состоянии источника, из которого был создан двоичный файл, приводя ее в соответствие с информацией о модуле, уже хранящейся там.
Предложения по улучшению языка
Proposal: x/net/http2: add Transport.WriteByteTimeout
предлагают добавить обнаружение разорванного соединения http/2
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
Статьи
Руководство 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
Видео
Вебинар "Golang против скриптов"
Golang обучение с нуля | Паттерны проектирования
Подкасты
GenericTalks
Go Time
Сообщества
Вопросы по языку на русскоязычном StackOverflow
Страница Go на stackoverflow
Информация о митапах
Форум в группах Google
https://t.me/vseins_tech
Go дайджест в телеграм
telegram: @GolangStack