Size: a a a

Go (Golang) Дайджест

2021 March 05
Go (Golang) Дайджест
Переслано от Roman
Здесь говорится, будто у switch O(N) сложность. На самом деле, компилятор на 3+ кейса оптимизирует свич, сортируя кейсы (если они известны на стадии компиляции) и юзает бинарный поиск (https://github.com/golang/go/blob/8ee9bca2729ead81da6bf5a18b87767ff396d1b7/src/cmd/compile/internal/gc/swt.go#L375)

Так что, сложность O(logN)
источник
Go (Golang) Дайджест
Очень интересная история о причинах миграции с C# на Go, но мне кажется что чуваки просто в C# нормально не умели. 🤨

https://aluma.io/resources/blog/switching-from-c-to-go-for-backend-development
источник
2021 March 10
Go (Golang) Дайджест
Dropbox заопенсорсили свой L4 лоад балансер. 👇

https://github.com/dropbox/kglb
источник
2021 March 11
Go (Golang) Дайджест
Бред Фитспатрик из Tailscale написал пост об их пакете для работы с IP адресами.

https://tailscale.com/blog/netaddr-new-ip-type-for-go
источник
2021 March 12
Go (Golang) Дайджест
Результат сюрвея Go 2020 🤓

https://blog.golang.org/survey2020-results
источник
Go (Golang) Дайджест
Пропоузал по изменению секьюрити полиси от Филипо. 🥸

https://github.com/golang/go/issues/44918
источник
Go (Golang) Дайджест
Немного 🤏 упустил из виду изменения в пакете encoding/xml и новые патчи.

https://golangtutorial.dev/news/go-1.16.1-and-go-1.15.9-versions-released/
источник
Go (Golang) Дайджест
источник
2021 March 16
Go (Golang) Дайджест
Тут я пишу о своих наблюдениях и поделках. 👇
источник
Go (Golang) Дайджест
С выходом Go 1.16 появился пакет embed. Теперь файлы миграций не нужно таскать в контейнере рядом с бинарником, их можно зашить внутрь него.

Для миграций SQLite я использую свой велосипед 🚴‍♀️, который успешно скопировал с https://github.com/jackc/tern 🤫

Реализация довольно проста. 😏

Файлы с разрешением .sql сортируются, потом каждый файл читается, и в нём ищется дивайдер, который разбивает файл миграции на up/down.

Потом проверяется наличие специальной таблицы, которую мигратор создаёт, для того что бы держать информацию об актуально состоянии схемы.

Проверяем версию схемы, открываем транзакцию и начинаем накатывать. В случае фейла пытаемся откатить назад.

#db #sqlite #go
источник
Go (Golang) Дайджест
источник
2021 March 17
Go (Golang) Дайджест
В копилочку любителям терминальных апок.

https://github.com/jwalton/gchalk
источник
Go (Golang) Дайджест
А вот хорошая либа для сравнения различных объектов. 🤓Используется для тестов. 👌

https://github.com/maxatome/go-testdeep
источник
Go (Golang) Дайджест
источник
Go (Golang) Дайджест
Монитор горутин в терминале.

https://github.com/becheran/roumon
источник
Go (Golang) Дайджест
Отличная статья о том как Go и Rust могут дополнять друг друга. 🤝

https://thenewstack.io/rust-vs-go-why-theyre-better-together
источник
2021 March 21
Go (Golang) Дайджест
Про текст ошибок, и что стоит писать ✍️.

https://blog.mediocregopher.com/2021/03/20/a-simple-rule-for-better-errors.html
источник
Go (Golang) Дайджест
Квери билдер для Монги. 🍃

https://github.com/slavabobik/greenleaf
источник
Go (Golang) Дайджест
Какой-то странный подход, выдумывать такие велики 🚲 для мутации одной структуры. 🤷‍♀️🤷‍♂️

https://lucas-henry.com/posts/go_tx/
источник
2021 March 23
Go (Golang) Дайджест
источник