How to Go wrong
1.57K subscribers
11 photos
1 video
191 links
Download Telegram
Готовьтесь обновлять гошечку на проде
https://github.com/golang/go/milestone/240
Дженерики крутые, можно написать любую дженерик функцию. Давайте напишем дженерик функцию сравнения двух объектов через Equal(T) bool (если есть) или ==.

Полчаса спустя…


type Equaler[T any] interface { Equal(T) bool }

func Equal[T comparable](expected, actual T) bool { ... }

func EqualEqualers[T any](e1 Equaler[T], e2 T) bool { ... }

func EqualSlices[T comparable](s1, s2 []T) bool { ... }

func EqualMaps[M1, M2 ~map[K]V, K, V comparable](m1 M1, m2 M2) bool { ... }


И даже этого недостаточно для сравнения map[string]net.IP: net.IP – слайс, а слайсы не comparable.
Последние несколько недель в части интернета не прекращается дискуссия, косвенно связанная с новостями выше: как зарабатывать / нужно ли платить за open source. Хотел поделиться с вами постом, которые очень чётко отражает мою позицию и как мейнтейнера, и как CTO open source startup’а, и как автора канальчика в Telegram:

https://apenwarr.ca/log/20211229

(Если сравнение с коммунизмом вызывает у вас рвотные рефлексы, то можно эту часть пропустить без больших потерь)
👍3
Forwarded from oleg_log (Oleg Kovalov)
The right path forward for NPM and package managers like it is to stop preferring the latest possible version of all dependencies when installing a new package. Instead, they should prefer to use the dependency versions that the package was actually tested with, or versions as close as possible to those. I call that a high-fidelity build.

https://research.swtch.com/npm-colors
👍5
Несколько дней назад вместе со всеми угорал над Object, Object, Object, […], а сегодня для доклада написал такое:


func MakeDocument3[T1, T2, T3 BSONType](key1 string, value1 T1, key2 string, value2 T2, key3 string, value3 T3) *Document
😱5👍2
Мой стартап, FerretDB Inc., нашёл денег и нанимает двух senior разработчиков на Go, чтобы вместе со мной писать FerretDB: полный remote, open source, $$$. Формальное описание вакансии у нас на сайте и в Go Get a Job.

Неформально хочу сказать, что пока ищу людей не только сильных технически, но и близких по культуре и опыту. Очень не хотелось бы сейчас тратить время на непродуктивные и плохо аргументированные споры про чистую архитектуру и предметно-ориентированное проектирование.

Как предложить себя написано на сайте. В комментариях можно задать вопросы. Флудить лучше в Go Get a Job. В личку просьба не писать – ответы на общие вопросы будут интересны и другим людям.
👍30🎉11
Никак не связано с предыдущим постом, просто так совпало 😂
😁22🔥5
Друзья, а дайте фидбэк по вакансии :)
How to Go wrong
Я не подался/подалась на вакансию, потому что…
(множественный выбор)
Короткое обновление для 50%, испугавшихся 5+ лет опыта на Go – теперь мы просим только 3+.
В принципе, если вы не уверены, что senior, но уж точно middle – подавайтесь, пообщаемся. 🙂

Завтра подробнее напишу как и почему так решили.

P.S. Подалось меньше, чем 17 человек, проголосовавших за последний пункт. Давайте-давайте, вакансия не вечная 🙂
Dgraph — всё.

(много мыслей про open source стартапы и потерю контроля при привлечении инвестиций)

Update: 🔥 в комментариях на Hacker News.
😢6👍1
При всех минусах онлайн-митапов, у них есть и плюсы. Один из них – возможность выступить на двух в один день, прямо как Фил Коллинз на Live Aid. Вот и я буду выступать в субботу сначала в виртуальной Казани (на русском), а потом в виртуальном Брюсселе на FOSDEM (на английском).

Из менее хороших новостей, в процессе подготовки сейчас нашёл баг в фаззинге.
😱6🔥4👍32
Тут конференция HighLoad++ объявила накрутку голосование за лучшие Open Source-решения, победители которого выступят с короткими докладами. В настоящий момент у самого накрученного лучшего проекта 117 голосов. Давайте накрутим проголосуем за FerretDB, чтобы на конференции было ещё больше нашего любимого Go и любимой базы данных.

https://opensource.highload.ru/vote
👍14👎1
Что мы узнали из этого тикета:
1. Роб и Расс использую Маки.
2. Apple уже не торт.
3. Авторы go env не знают что в нём тормозит.