Please open Telegram to view this post
VIEW IN TELEGRAM
🎉12👎2
Forwarded from Путь Golang
🍺 Помню это был октябрь 2020. Я только устроился программистом в майнинг. Ездил от ст.м. Московская на 187 автобусе. И пытался слушать Go Time подкаст по дороге: https://changelog.com/gotime
🍺 Так вот. Еду я как-то, а там обсуждают, что из Golang удалить бы. И дядька один такой — я бы
🙅♂️ Первой моей реакцией было — как так можно-то? Жутко не удобно. На половине кейсов спотыкаешься и тратишь время на перестановки!!! switch ещё этот!!!
❤️ А где-то через пару месяцев я взглянул на код... И понял, что там где я заставил делать перестановки и выворачиваться из-за избегания
🍓 Я не знаю до сих пор как это работает, но почему-то очень неудобно делать вложенные
🫵 А ты используешь
👉 Да, конечно, неявно такая практика рекомендуется и передовыми животноводами. но явного избегания
• https://google.github.io/styleguide/go/index
• https://github.com/uber-go/guide/blob/master/style.md
🍺 Так вот. Еду я как-то, а там обсуждают, что из Golang удалить бы. И дядька один такой — я бы
else
удалил, я им не пользуюсь. И я такой наушники выронил — как это? Но решил для разнообразия попробовать.🙅♂️ Первой моей реакцией было — как так можно-то? Жутко не удобно. На половине кейсов спотыкаешься и тратишь время на перестановки!!! switch ещё этот!!!
❤️ А где-то через пару месяцев я взглянул на код... И понял, что там где я заставил делать перестановки и выворачиваться из-за избегания
else
— там код читаемый, тестируемый и расширяемый. А там, где я так не делал, в ряде случаев он был запутанный и зачастую с ошибками (логическими).🍓 Я не знаю до сих пор как это работает, но почему-то очень неудобно делать вложенные
if
, если избегать else
и как-то эти вложения автоматом исчезают🫵 А ты используешь
else
?👉 Да, конечно, неявно такая практика рекомендуется и передовыми животноводами. но явного избегания
else
там нет:• https://google.github.io/styleguide/go/index
• https://github.com/uber-go/guide/blob/master/style.md
Changelog
The Go Time podcast
Your source for wide-ranging discussions from all around the Go community.
👍15👎3
Who wants to write dirty code, unless maybe it's for a porn site?
https://bitfieldconsulting.com/golang/crisp-code
https://bitfieldconsulting.com/golang/crisp-code
Bitfield Consulting
Don't write clean code, write CRISP code — Bitfield Consulting
“Clean code” is so over: all the cool kids are switching to CRISP code . I’ll show you how to achieve it in five catchy, T-shirt-friendly slogans.
👍8👎1
Решение сначала добавить телеметрию в команду
go
, а потом решение сделать её opt-in, а не opt-out, вызвало целую бурю эмоций в сообществе. Ответы на этот твит показывают обе стороны: одни продолжают негодовать из-за всего связанного со злым Гуглом, другие хотят дать больше данных команде Go. Если вы пропустили, то очень советую почитать серию постов Расса Кокса целиком: https://research.swtch.com/telemetry Ну или послушать меня в недавнем DevZen, а потом – тоже прочитать.👍4👎1
func() {
f, err := os.Open("does-not-exist")
defer f.Close()
fmt.Println(err)
}()
👍3👎1
func() {
f, err := net.Dial("tcp", "1.1.1.1:443") // network is down
defer f.Close()
fmt.Println(err)
}()
How to Go wrong
func() { f, err := net.Dial("tcp", "1.1.1.1:443") // network is down defer f.Close() fmt.Println(err) }()
Что будет на экране?
Anonymous Quiz
12%
<nil>
47%
dial tcp 1.1.1.1:443: connect: no route to host
26%
panic: runtime error: invalid memory address or nil pointer dereference
15%
(╯°益°)╯彡┻━┻
👍10👎5
Просто ссылка, без комментариев: https://github.com/golang/go/issues/59968
GitHub
proposal: cmd/go: add .ʕ◔ϖ◔ʔ as an alternate spelling of .go in file names · Issue #59968 · golang/go
The new (apparently closed-source) programming language Mojo uses files named .mojo, but it allows .🔥 as an alternate spelling of .mojo, as in hello.🔥. Issue #45549 tracks handling of unicode in im...
👍16👎3
Кажется, ещё один pet-project можно будет никогда не доделывать: https://go.dev/blog/gonew
go.dev
Experimenting with project templates - The Go Programming Language
Announcing golang.org/x/tools/cmd/gonew, an experimental tool for starting new Go projects from predefined templates
👍14👎2
Не знаю как вас, а меня такие небольшие улучшения эргономики очень радуют: https://github.com/golang/go/issues/61372
GitHub
spec: add untyped builtin zero · Issue #61372 · golang/go
I propose to add a new predeclared identifier zero that is an untyped zero value. While nil is an untyped zero value restricted to chan/func/interface/map/slice/pointer types, zero would be an unty...
👍11
Как вы, наверное, знаете команда Go раз в полгода проводит опросы сообщества и публикует довольно интересные результаты. Но уже какое-то время не было таких же глубоких опросов русскоязычного сообщества. Чаще их делают крупные компании, но часто это замаскированный сбор контактов для хайринга или исследования рынка для себя, с очень ограниченными публичными результатами. Ребята из Podlodka / Podlodka Go Crew решили это исправить и запустили неплохой опрос, обещая глубокий анализ результатов. Давайте поможем и им, и себе: https://survey.alchemer.eu/s3/90588566/Go-2023
survey.alchemer.eu
Исследование рынка Go-разработчиков, 2023
Исследование рынка Go-разработчиков, 2023.
👍7👎3
tools.go
уйдёт в небытие: https://go.googlesource.com/proposal/+/refs/changes/55/495555/5/design/48429-go-tool-modules.md👍18👎1
OpenTelemetry ещё метрики с логами не доделали, а уже на профилирование замахнулись: https://github.com/open-telemetry/oteps/pull/237
GitHub
Introduces Profiling Data Model by petethepig · Pull Request #237 · open-telemetry/oteps
OTel Profiling SIG has been working on this for a while and we're ready to present our Data Model. So far we've done a number of things to validate it:
we've written a new profiles pr...
we've written a new profiles pr...
👍7👎1
Создатель Rubinius’а внезапно среди авторов нового поста: https://go.dev/blog/wasi
go.dev
WASI support in Go - The Go Programming Language
Go 1.21 adds a new port targeting the WASI preview 1 syscall API
👍2👎1