С февраля пытался написать сюда о годе, прошедшем с предыдущего поста. Не смог. Отчасти, потому что давно уже привык разделать разные сферы своей жизни по разным местам (что особенно полезно с учётом онлайн слежки в России). Но главное – потому что писал и не вывозил. Если какие-то моменты были даже в чём-то забавными (например, договор с инвесторами FerretDB я подписывал прямо из автозака), то в основном – полный ужас. Ужас от происходящего в Украине, от происходящего в России, от попыток бежать быстрее несущегося в пропасть поезда, который вот-вот догонит.
Сейчас моя ситуация немного стабилизировалась – поезд относительно далеко, и можно нормально работать, а не постоянно думать о выживании. Поэтому я продолжу писать в этот канал про Go и связанные темы, чтобы отвлечь и себя, и вас. Но не воспринимайте это как полную отрешённость от войны: нет, она никуда не делась, и я продолжаю делать, что могу, чтобы она скорее закончилась – но не здесь.
Слава Украине!
Россия будет свободной!
Сейчас моя ситуация немного стабилизировалась – поезд относительно далеко, и можно нормально работать, а не постоянно думать о выживании. Поэтому я продолжу писать в этот канал про Go и связанные темы, чтобы отвлечь и себя, и вас. Но не воспринимайте это как полную отрешённость от войны: нет, она никуда не делась, и я продолжаю делать, что могу, чтобы она скорее закончилась – но не здесь.
Слава Украине!
Россия будет свободной!
🎉12👎7👍3
How to Go wrong pinned «С февраля пытался написать сюда о годе, прошедшем с предыдущего поста. Не смог. Отчасти, потому что давно уже привык разделать разные сферы своей жизни по разным местам (что особенно полезно с учётом онлайн слежки в России). Но главное – потому что писал и…»
Ну что, поехали!
https://blog.ferretdb.io/ferretdb-1-0-ga-opensource-mongodb-alternative/
Плюсаните нас на https://news.ycombinator.com (поищите FerretDB в new)
Лайк и ретвит: https://twitter.com/ferret_db
Стар и рe🐘 : https://techhub.social/@ferretdb
Лайк и шер: https://www.linkedin.com/company/ferretdb/
Закиньте в любимые sub-reddit’ы и так далее.
https://blog.ferretdb.io/ferretdb-1-0-ga-opensource-mongodb-alternative/
Плюсаните нас на https://news.ycombinator.com (поищите FerretDB в new)
Лайк и ретвит: https://twitter.com/ferret_db
Стар и рe
Лайк и шер: https://www.linkedin.com/company/ferretdb/
Закиньте в любимые sub-reddit’ы и так далее.
Please open Telegram to view this post
VIEW IN TELEGRAM
blog.ferretdb.io
Announcing FerretDB 1.0 GA - a truly Open Source MongoDB alternative | FerretDB Blog
After many months of development, FerretDB is now production-ready. We are excited to announce the general availability of FerretDB v1.0.
👍1
How to Go wrong pinned «Ну что, поехали! https://blog.ferretdb.io/ferretdb-1-0-ga-opensource-mongodb-alternative/ Плюсаните нас на https://news.ycombinator.com (поищите FerretDB в new) Лайк и ретвит: https://twitter.com/ferret_db Стар и рe🐘 : https://techhub.social/@ferretdb Лайк…»
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