Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
Свежая подборка новостей и материалов
Интересное в этом выпуске
Выпущены Go 1.17.5 и Go 1.16.12
Выпущен GoLand 2021.3
Доступна первая бета-версия Go 1.18 (с дженериками)
Monovania 2D платформер-головоломка, созданный с помощью Ebiten
Zinc альтернатива Elasticsearch
Map-Reduce в Go
Приятного чтения!
Новости, события
Выпущены Go 1.17.5 и Go 1.16.12 - с исправлениями безопасности, связанными с проблемой неограниченного роста памяти с HTTP/2 и с исчерпанием файловых дескрипторов.
Выпущен GoLand 2021.3 - Встроенная поддержка WSL, многочисленные исправления, новый рефакторинг, а HTTP-клиент GoLand теперь поддерживает запросы gRPC.
Доступна первая бета-версия Go 1.18 (с дженериками)
Замена
interface {}
наany
— не беспокойтесь об этом синтаксическом сахаре, пока не начнете работать над 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 — список уроков
Статьи
Дженерики в Go Viva La Revolution!
Автоматически созданные диаграммы архитектуры C4 в Go
Более быстрое извлечение доменных имен верхнего уровня с помощью Go
Тестирование на основе свойств в Go - опишите свойства, которые вы хотите протестировать, и для вас будут созданы конкретные кейсы
Пишем приложение с использованием Go и Postgres - пошаговое руководство по продуктивной работе с системой баз данных Postgres из Go с использованием
pgx
драйвера.Когда использовать дженерики в Go? — когда вы можете и не можете использовать дженерики, а также некоторые обсуждения соответствующих вариантов использования.
Rust vs. Go: почему они лучше вместе
Мысли о том, как структурировать код Go
Как Go рассчитывает len()? — Обзор компилятора, показывающий, что len() это не настоящий вызов функции, поэтому он должен обрабатываться по-разному для каждого типа, имеющего длину.
Руководство по Go Profiling, Tracing, and Observability
Несколько байтов здесь, несколько байтов там, довольно скоро вы говорите о настоящей памяти
Антипаттерны в веб-приложениях Go
Простейший сервер на Gorilla WebSocket
React Apollo, Gqlgen – авторизация. Часть 1
React Apollo, Gqlgen – авторизация. Часть 2
Что плохого в пакете логирования на Go?
Автореконнекты к RabbitMQ в Go
IO_URING. Часть 2. Let's GO
Go после Python: как я учу новый язык
Почему я перешёл с Python на Go: choose your fighter
Нарезаем массивы правильно в Go
Интерфейсы в Go — как красиво выстрелить себе в ногу
profile-guided поиск по коду
gRPC и приведение числовых типов
Как реализовать DDD в Go
SAGA на golang
gocorpus: открытый корпус Go кода, поддерживающий запросы
Пишем сервис на GO. Backend для апплета
Микрооптимизация кода на Go на примере простого веб-сервиса
Инструменты
Библиотека для создания интерактивных подсказок в приложениях командной строки - promptui v0.9
Библиотека обработки и управления PDF-файлами - pdfcpu v0.3.13
Библиотека изменения размера изображения с учетом содержимого - caire v1.4.1
DNS-прокси - grimd v1.1
Библиотека для вычисления расстояния между двумя географическими точками - geodist v1.0.0
Альтернатива MongoDB на базе Go - FerretDB v0.0.5
CLI-инструмент «Швейцарский армейский нож» для Kafka, RabbitMQ и других систем обмена сообщениями - plumber v1.0
Библиотека для воспроизведения звука на нескольких платформах, Windows, macOS, Android, iOS - oto v2.0.0
Cетевая библиотека событийного цикла «Она делает прямые системные вызовы epoll и kqueue, а не использует стандартный net пакет Go , и работает аналогично libuv - gnet v1.5.0
Альтернатива Elasticsearch в Go - zinc v0.1.3
Платформа Map-Reduce для Go - MapReduce v1.0.0
Быстрая база данных, построенная на модели нулевого доверия. Система базы данных с защитой от несанкционированного доступа - immudb v1.2.1
Любишь
gofmt
правила?gofmt
недостаточно строго?gofumpt
имеет еще более строгие правила - gofumpt v0.2.1Библиотека Pure Go для сетевого протокола MySQL - go-mysql v1.4.0
Библиотека для создания авторизации, использует политики Polar (DSL для политики авторизации) - oso v0.25.1
Библиотека индексации текста для Go - bleve v2.3.0
Низкоуровневый доступ к сокетам - netlink v1.5.0
Библиотека для чтения и записи файлов XLSX (Excel) - xlsx v3.2.4
2D платформер-головоломка, созданный с помощью Ebiten - monovania
Модуль для улучшения вывода консоли - pterm v0.12.33
Библиотека для создания мощных современных приложений CLI- cobra v1.3.0
Библиотека обнаружения естественного языка - lingua-go v1.0.5
Видео
GopherCon UK 2021
Go Code Roast - рассказчик попросил Gophers предоставить ему код для «жарки», что означает, что он просматривает код, говорит, что ему нравится, а что не нравится, и будет ли он нанимать их, основываясь только на коде!
Подкасты
GenericTalks
Go Time
Mat Ryer ▶️ задал команде Go множество вопросов о многих вещах, от сборки мусора и дженериков до Go 2 и о том, как опросы сообщества влияют на их работу.
Сообщества
Вопросы по языку на русскоязычном StackOverflow
Страница Go на stackoverflow
Информация о митапах
Форум в группах Google
https://t.me/vseins_tech
Go дайджест в телеграм