Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
Свежая подборка новостей и материалов
Интересное в этом выпуске
Выпущены версии 1.18.2 и 1.17.10
Результаты опроса разработчиков в Go GUI
TinyGo v0.23.0: теперь с поддержкой Go 1.18
Go является любимым и быстрорастущим языком на GitHub
Заметки о практическом параллелизме в Go
Приятного чтения!
Новости, события
Выпущены версии 1.18.2 и 1.17.10 - эти второстепенные выпуски включают одно исправление безопасности.
syscall: при вызове с ненулевым параметром flags функция syscall.Faccessat могла неправильно сообщить, что файл доступен.
Go является любимым и быстрорастущим языком на GitHub
Результаты опроса разработчиков в Go GUI
TinyGo v0.23.0: теперь с поддержкой Go 1.18
Robert Griesemer экспериментировал с давним предложением о внедрении коротких литералов функций в Go
func x, y, z { ... } // func style (x, y, z) => { ... } // arrow style
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
Отчет об опыте после 6 месяцев использования Go
Нежное введение в дженерики в Go
Разрушение монолита в Twitch
Ложь, которую мы говорим себе, чтобы продолжать использовать Go
Создание бессерверной серверной части для Slack на AWS Lambda
Изменение одного символа резко улучшило производительность приложения
Как использовать go run для управления зависимостями инструментов
О неправильном использовании интерфейса Ducks и Go
Testscript, определение тестов на основе файловой системы путем создания сценариев
Заметки о практическом параллелизме в Go
Вычисление наборов типов сложнее, чем вы думаете
Давайте создадим распределенный Postgres Proof of Concept
Краткий обзор практического применения Generics в Go
Создание управляемых событиями распределенных систем с помощью gRPC, NATS JetStream и CockroachDB
Команда переписала сервис на Go из Node.js и получила прирост производительности в 5 раз и уменьшение объема оперативной памяти на 40 %
Шаблон функциональных параметров медленный
Go Nulls и SQL - работа с нулевыми значениями, может привести к ошибкам
ArcticDB встраиваемая база данных столбцов
Экспортируем модули из Go-сервиса: сотворение директории pkg
Создание секретного туннеля с помощью Go
Go против Rust — производительность вне конкуренции
Пишем консольную утилиту на Go для добычи гифок с котами
Разработка навыка для «Алисы» на основе Google Keep заметок
Go в API для мобильного приложения. Создаем совместный список покупок с мгновенными уведомлениями
Потоковая обработка данных в go
R*-tree в Go, немного геймдева и поиска элементов в пространстве
Четыре простых лайфхака при написании тестов на Go + testify
Go в браузер. Создание веб-приложений с использованием Web Assembly на Go
GOAPPLE: быстрая настройка I3-wm
Спроси меня про Go. Отвечаем на распространённые вопросы
Signum Explorer Telegram Bot — разработка open-source pet-project телеграм бота для блокчейна Signum
Инструменты
Bud v0.1.4 — новый полнофункциональный веб-фреймворк
Cover Treemap — создание древовидных карт для профилей Go Cover
Generic v1.0 — набор общих структур данных
avl: дерево AVL.
btree: B-дерево.
cache: оболочка map[K]V, которая использует максимальный размер и удаляет элементы, используя LRU, когда они заполнены.
hashmap: хэш-карта с линейным зондированием.
hashset: хэш-набор, который использует хэш-карту в качестве базового хранилища.
mapset: набор, который использует встроенную карту Go в качестве базового хранилища.
multimap: ассоциативный контейнер, допускающий несколько записей с одним и тем же ключом.
interval: дерево интервалов, реализованное как расширенное дерево AVL.
list: двусвязный список.
stack: стек LIFO.
trie: тернарный поиск.
queue: очередь «первым пришел — первым обслужен» (FIFO).
heap: бинарная куча.
Go-mysql 1.5 — библиотека для сетевого протокола MySQL
Cast v1.5 — инструмент для безопасного преобразование из одного типа в другой
RoseDB v1.0 — высокопроизводительная база данных NoSQL на основе Bitcask, поддерживающая различные структуры данных, такие как string, list, hash, set и sorted set.
FerretDB v0.3 — альтернатива MongoDB
Rqlite v7.5.0 — распределенная реляционная база данных, построенная на SQLite
SH v3.5 — Парсер shell, средство форматирования и интерпретатор. Поддерживает POSIX Shell , Bash и mksh
Weron v0.2.1 — инструмент для создания простых, быстрых и безопасных оверлейных сетей на основе WebRTC
Roaring v1.1 — cтруктуры данных растровых изображений
Sneller — это высокопроизводительный векторизованный механизм SQL для JSON, который работает непосредственно в объектном хранилище, оптимизирован для обработки больших JSON размером в ТБ
Cardrank — библиотека типов, функций и утилит для работы с игральными картами, колодами карт и оценки рангов покерных комбинаций
Typioca v1.2.3 — Минимальный тестер скорости печати на базе терминала.
concurrent map v2.0 — многопоточная параллельная карта
God — инструмент для развертывания и управления сервисами Go с помощью systemd
Sonic v1.3 — быстрая библиотека JSON
Kratos v2.3 — платформа для микросервисов на основе gRPC
immudb v1.3 — неизменяемая база данных на основе нулевого доверия, SQL и Key-Value
Plow v1.2 — инструмент для тестирования HTTP
Traefik v2.7.0 — обратный прокси и балансировщик нагрузки
Oak v4.0 — игровой 2D-движок
Fiber v2.34.0 — веб-фреймворк на основе Express.js
WAL v2.0 — архивация и восстановление Postgres