How to Go wrong
1.65K subscribers
12 photos
1 video
211 links
Download Telegram
GopherCon Russia 2021 стартует уже через полчаса, и бесплатная регистрация ещё открыта! Все на https://www.gophercon-russia.ru !

А ещё там можно купить билет на крутейшие воркшопы в субботу и воскресенье. Булат Замалутдинов и Николай Маржан расскажут как писать Kubernetes-операторы, чтобы всё работало и не ломалось; Искандер Шарипов расскажет как крафтить линтеры, чтобы самим всё не сломать; а Валерий Мелешкин и я расскажем как применять property-based тесты и фаззинг, чтобы самим ломать свой код до production. Места ещё есть!
This media is not supported in your browser
VIEW IN TELEGRAM
Опубликовано закулисное видео первого дня GopherCon Russia 2021
sync.Mutex.TryLock всё-таки будет: https://github.com/golang/go/issues/45435#issuecomment-853265255

Очень надеюсь, что сообщество воспримет этот метод как в своё время восприняли type alias’ы – специализированное средство для специализированных случаев, и не будет использовать его где попало. Лично мне, за много лет использования Go, ни разу TryLock не понадобился – всегда дизайн с каналами и select был легче для понимания.
Forwarded from oleg_log (Oleg Kovalov)
1.16.5 и 1.15.13 вышли, math/big, net/http/httputil & archive/zip пофиксили. Прям как-то много даже, не помню таких объемных патч версий за последнее время.

https://groups.google.com/g/golang-announce/c/RgCMkAEQjSI/m/r_EP-NlKBgAJ
Встроенная поддержка fuzzing’а в Go вышла в бету, но, к сожалению, не войдёт в Go 1.17. Эх. https://blog.golang.org/fuzz-beta

Если вы включаете fuzzing в свой CI (а вы должны), то можно сэкономить немного времени пользуясь уже собранной веткой dev.fuzz: https://github.com/AlekSi/golang-tip
Новый компилятор protobuf’а, духовный наследник gogoprotobuf: https://vitess.io/blog/2021-06-03-a-new-protobuf-generator-for-go/
Go 1.17 is deprecating the traditional use of go get: https://utcc.utoronto.ca/~cks/space/blog/programming/GoAndDeprecatingGoGet

На мой взгляд – хорошее изменение. Разное поведение go get внутри проекта с модулями и вне его было очень странным. Но да, старые инструкции нужно обновить.
Читать и умнеть: https://research.swtch.com/plmm
Загадка:


$ go list all | grep k8s.io/kubernetes

$ go list -m all | grep k8s.io/kubernetes
k8s.io/kubernetes v1.13.0

$ go mod why k8s.io/kubernetes
# k8s.io/kubernetes
(main module does not need package k8s.io/kubernetes)


Отгадка: https://github.com/golang/go/issues/27900
Оказывается, спецификация протокола MongoDB распространяется под лицензией СС Attribution-NonCommercial-ShareAlike, прямо запрещающей коммерческое использование, включая создание коммерческих СУБД и DBaaS’ов. Недавно они написали об этом явно: https://news.ycombinator.com/item?id=27908107 Но, как оказалось, эта лицензия была всегда.

Интересно, неужели Amazon DocumentDB и Azure CosmosDB делали чистую комнату?