Telegram Web Link
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 делали чистую комнату?
Расс Кокс написал свои мысли про “make major versions optional in import paths”: https://github.com/golang/go/issues/44550#issuecomment-885324886

Но в этом большом вдумчивом сообщении мне больше всего понравился щелчок по носу Питеру Бургону:

> I have personally had what I consider to be substantial exposure to an enormous amount of Go code, due to my position in the OSS ecosystem, as well as my consulting work. That exposure includes, importantly, a huge amount of code maintained in private repositories. I have no way of knowing, but I suspect the only person in the Go community who may have seen more Go code than I have is Bill Kennedy. With that context, I can state without hesitation that the need to include two major versions of the same dependency in one compilation unit is extraordinarily rare, and in those rare circumstances that it does arise, it is almost always due to pathological conditions in the dependency graph.

This claim about needing multiple major versions being “extremely rare” is easily contradicted. Kubernetes depends on multiple major versions of github.com/russross/blackfriday and of gopkg.in/yaml. Even Peter's own Go-kit depends on both go.etcd.io/etcd/client/v2 and go.etcd.io/etcd/client/v3.
А давно у https://staticcheck.io такой весёлый подзаголовок на сайте?

EDIT: Он ещё и меняется. rm -rf $GOPATH – лучший.
2025/07/04 09:01:14
Back to Top
HTML Embed Code: