Go дайджест #9: GopherCon 2019, дженерики уже близко, try не пройдёт
В выпуске: видео докладов с конференций, Yaegi — интерпретатор Go от создателей Traefik, Caddy 2 по-правильному.
Новости
Core команда Go отклонила try proposal после негативной реакции комьюнити. Этот кейс очень хорошо показывает, насколько сильное у нас комьюнити, и частично дает ответ на вопрос: принадлежит ли Go его комьюнити или все решает Google (смотрите прошлый дайджест, там есть ссылки, где этот вопрос поднимался). Также можно взглянуть на twitter тред Расса Кокса об этом.
На прошедшем GopherCon 2019 в Сан-Диего Ян Ленс Тейлор представил новый proposal по дженерикам. Конспект его доклада с конференции можно почитать в блоге ребят из SourceGraph. Так же есть развернутый пост в официальном Go блоге.
Но дженерики — это не единственное интересное событие с конференции. Пока мы ждем видеозаписей, можно ознакомится со всеми конспектами докладов.
Также стоит отметить блогпост Расса Кокса об упрощении многих вещей в процессе эволюции языка. И пост Роберта Грисимера о пути навстречу Go 2.
Мэтью Холт, создатель популярного веб-сервера Caddy, написал огромный пост о том, что хочет, чтобы следующая версия — Caddy 2, полностью принадлежала его комьюнити. Больше никаких игр с перетасовкой лицензий и попыток заработать деньги странным путем.
Ребята из Contanious (создатели Traefik) представили Yaegi — интерпретатор Go, написаный на Go.
Новый брендинг языка добрался и до официального сайта Go. Также запустили онлайн-магазин с футболками и плюшевыми гоферами. Почитать блогпост об этом можно здесь.
Читаем
Go Binary Sizes Are Relatively Stable — о том, как с эволюцией языка и его версий менялся размер сбилдженых бинарников.
Немного о testing.B.ReportMetric в Go 1.13
О том, что такое финализаторы в Go
Интересный кейс про итерейшн ордер в Go map
Про поддержку новых фич Go 1.13 в GoLand 2019.2
Тред на Hacker News о том, как Go микросервисы живут в Twitch.tv
10 распостраненных ошибок в написании Go кода
Немного о том, как устроен компилятор на примере реализации нового ключевого слова:
Go compiler internals: adding a new statement to Go — Part 1
Go compiler internals: adding a new statement to Go — Part 2
One Program Written in Python, Go, and Rust
Elastic сделали библиотеку для валидации Go структур, по принципу JSON Schema
Go: Vet command is more powerful than you think
Ребята из Stripe о правильном логировании
Write Maintainable Integration Tests with Docker
Смотрим
Плейлист GopherCon EU 2019 с солнечных Канарских островов
Для себя я выделил такие доклады:
- GopherCon Europe 2019: Egon Elbre — Psychology of Code Readability, который отлично дополняет следующий доклад от Вани Данилюка из украинского Go комьюнити.
- GopherCon Europe 2019: Ivan Daniluk — Rethinking Visual Programming
Ну и взорвал все чарты доклад GopherCon Europe 2019: Mat Ryer — How I Write HTTP Web Services After 8 Years
Go Design Patterns — The Decorator Pattern
Go Design Patterns — Generator Pattern and Observer Pattern
Go Design Patterns — Factory and Abstract Factory Pattern
Щупаем
yaegi — интерпретатор Go на Go
errors — пакет для работы с ошибками в распределенных системах
go-lookslike — валидация Go структур по принципу JSON Schema
monday — прокси между локальными сервисами и удаленным Кубером
bild — коллекция алгоритмов обработки изображений
fastrand — генератор псевдорандомных чисел, в 10 раз быстрее math/rand
frand — такой же генератор, но быстрее в 10 раз предыдущего
memguard — безопасно храним секреты в памяти
owlcache — очередной распределенный кеш
Также я веду канал в Telegram об интересном в Golang. Подписывайтесь!
← Предыдущий выпуск: Go дайджест #8.