☕️ Мерлин заваривает τσάι 🐌
Любопытный, но довольно бесполезный пример полиморфизма в Go В гошечке есть несколько способов писать полиморфные функции: 1. интерфейсы; 2. тайп свитчи и тайп кастинг интерфейсов; 3. рефлексия; Недавно мне понял, что есть чётвёртый подход, который стал…
Чуть поясним. Прикол здесь в самом алиасе, для передачи
И на этом все. Как можете догадаться, если бы у Cat/Dog было еще 1 поле, то ничего бы не вышло, надо чтобы поля совпадали.
https://play.golang.org/p/xpyO7pE6ASv (уберите
Cat/Dog в printName их не надо явно приводить к named.И на этом все. Как можете догадаться, если бы у Cat/Dog было еще 1 поле, то ничего бы не вышло, надо чтобы поля совпадали.
https://play.golang.org/p/xpyO7pE6ASv (уберите
= и будем вам счастье)Мольбы были услышаны, вышел еще 1 пост с рецензиями от Данилы. Прочитайте хотя бы описание, этого уже достаточно для 2х IQ поинтов.
https://news.1rj.ru/str/experimentalchill/65
https://news.1rj.ru/str/experimentalchill/66
https://news.1rj.ru/str/experimentalchill/67
https://news.1rj.ru/str/experimentalchill/65
https://news.1rj.ru/str/experimentalchill/66
https://news.1rj.ru/str/experimentalchill/67
Telegram
Experimental chill
#рецензии
Ультракороткие рецензии на тoп инженерных находок 2020го года от @Danlark, которых не было в блоге. Часть 1.
1. Deterministic Aperture: A distributed, load balancing algorithm
Балансеры в компании Twitter красиво переплетают идеи consistent hashing…
Ультракороткие рецензии на тoп инженерных находок 2020го года от @Danlark, которых не было в блоге. Часть 1.
1. Deterministic Aperture: A distributed, load balancing algorithm
Балансеры в компании Twitter красиво переплетают идеи consistent hashing…
Что может быть лучше, чем начать год с проверенных технологий.
А за Gradle - метко. Может Maven с xml не самое радостное для редактирования, но хоть рабочее и понятное.
https://news.1rj.ru/str/nikitonsky_pub/37
А за Gradle - метко. Может Maven с xml не самое радостное для редактирования, но хоть рабочее и понятное.
https://news.1rj.ru/str/nikitonsky_pub/37
Telegram
Стой под стрелой
Стоит конечно признаться, я избалован Java. Казалось бы, самая немодная технология в мире, однако:
Когда хайпили контейнеры, я пожимал плечами. JVM ставится вообще без каких-либо зависимостей, просто копированием папки, и... все! Все работает. Хочешь в /home…
Когда хайпили контейнеры, я пожимал плечами. JVM ставится вообще без каких-либо зависимостей, просто копированием папки, и... все! Все работает. Хочешь в /home…
Блоу все пилит компилятор. Ждем дальше. https://twitter.com/jonathan_blow/status/1345083953187672064?s=28
Twitter
Jonathan Blow
Just shipped the 40th beta of the compiler to 62 beta participants, some newly added. Somehow the compiler is only still 54,067 lines of code. The Sokoban game is 149,194 lines and still compiles in 0.8 seconds on my laptop. Happy new year!
C + плюшки = Zig. Ну простой же как палка.
https://gist.github.com/ityonemo/769532c2017ed9143f3571e5ac104e50
Воодушевлено длиннопастой про Rust https://fasterthanli.me/articles/a-half-hour-to-learn-rust
(A half-hour to learn Rust, Jan 27, 2020 · 51 minute read. Нуда)
https://gist.github.com/ityonemo/769532c2017ed9143f3571e5ac104e50
Воодушевлено длиннопастой про Rust https://fasterthanli.me/articles/a-half-hour-to-learn-rust
(A half-hour to learn Rust, Jan 27, 2020 · 51 minute read. Нуда)
Gist
Zig in 30 minutes
Zig in 30 minutes. GitHub Gist: instantly share code, notes, and snippets.
Вы ведь знаете, что в го надо аккуратно с переменными из for-range обращаться, да?
Наверное каждый хоть раз обжигался о
Там забавный комент добавили, может слышали, Let's Encrypt недавно откатили 3М+ сертификатов. Угадайте из-за чего)))
https://github.com/letsencrypt/boulder/pull/4690/files#diff-d02067a9f9a2bed1110fd4e98641c2effcf5d1d5f18461e35d6ac1535f6e2c21L1411-R1414
Наверное каждый хоть раз обжигался о
for k, v := range foo {
go func() { run(k,v) }()
}
или что-то похожее, где "захватывается" значение в кложуре. Есть даже пропозал, что давайте от этого уйдём (в го2, когдатотам) https://github.com/golang/go/issues/20733Там забавный комент добавили, может слышали, Let's Encrypt недавно откатили 3М+ сертификатов. Угадайте из-за чего)))
https://github.com/letsencrypt/boulder/pull/4690/files#diff-d02067a9f9a2bed1110fd4e98641c2effcf5d1d5f18461e35d6ac1535f6e2c21L1411-R1414
oleg_log
А по случаю таких массовых гуляний - новый проект: @oleg_log_plus 🎉🎉🎉 Стало интересно вести патреоно-спонсируемый проект, на котором я буду делиться с вами постами, докладами и прочими видами информации, которые на мой взгляд пропускать не стоит, ведь все…
Подведём итоги ~1 месяца.
Все даже хорошо. Есть посты, за которые не стыдно. Есть приятные и критикующей-правильные отзывы. Есть желание продолжать дальше.
Хотя местами хочется уйти в дикие и непрактичные темы, но по большому счёту пользы от таких мало.
Для заинтересованных @oleg_log_plus
Все даже хорошо. Есть посты, за которые не стыдно. Есть приятные и критикующей-правильные отзывы. Есть желание продолжать дальше.
Хотя местами хочется уйти в дикие и непрактичные темы, но по большому счёту пользы от таких мало.
Для заинтересованных @oleg_log_plus
oleg_log
Вы ведь знаете, что в го надо аккуратно с переменными из for-range обращаться, да? Наверное каждый хоть раз обжигался о for k, v := range foo { go func() { run(k,v) }() } или что-то похожее, где "захватывается" значение в кложуре. Есть даже пропозал…
Внезапно многие не знали этой проблемы (кроме тех кто не пишут на го). Так вот.
Есть даж спец страница на вики про эту особенность (а сколько статей с пеной у рта это совсем другое).
Поэтому советую прочитать https://github.com/golang/go/wiki/CommonMistakes и включить scopelint (хотя мне кажется еще кто-то ругается) в golangci-lint
Есть даж спец страница на вики про эту особенность (а сколько статей с пеной у рта это совсем другое).
Поэтому советую прочитать https://github.com/golang/go/wiki/CommonMistakes и включить scopelint (хотя мне кажется еще кто-то ругается) в golangci-lint
:slowpoke: там слак прилёг. https://status.slack.com/#
на самом деле теперь все веселее, там всё красное, хотя днём были только сообщ.
на самом деле теперь все веселее, там всё красное, хотя днём были только сообщ.
Карантин в 2020 положительно повлиял на меня (спорт, хобби, отношения, скмья, работа, тд). Перед тем как отвечать - подумайте полминуты. Спасибо.
Anonymous Poll
21%
Да
25%
Скорее да
11%
Не знаю
26%
Скорее нет
17%
Нет
Такс, ушастики мои. Кто хочет канкаренси задачку на Go ?
Там нет явного бага, но кое-что там сделано неправильно. Мы нашли это в тестовом задании, точнее там бага не было, нам показалось) Вам конечно же версию с багом принёс.
Подсказка для тех, кто не уверены в себе
Ответы лучше в бота, если хотите потестить себя @oleg_log_bot
Там нет явного бага, но кое-что там сделано неправильно. Мы нашли это в тестовом задании, точнее там бага не было, нам показалось) Вам конечно же версию с багом принёс.
Подсказка для тех, кто не уверены в себе
ZXJyb3IgcmV0dXJuZWQgaW4gZ29yb3V0aW5l
Собственно код https://play.golang.org/p/KtcwsdlfyyjОтветы лучше в бота, если хотите потестить себя @oleg_log_bot
Понравился сборничек Rust Design Patterns. Чем-то (но точно не оформлением) напомнило go-advice, который я медленно веду к новой версии.
https://rust-unofficial.github.io/patterns/intro.html
Чем-то еще напоминает https://nnethercote.github.io/perf-book/ но тут скорее про перформанс и попытки выжать наносекунды, чем о идиоматичности кода (хотя не противоречит).
Еще подобные ридми-книги-сборники вспомните?
Хоть домен и кричит unofficial, но это ничего не значит)
https://rust-unofficial.github.io/patterns/intro.html
Чем-то еще напоминает https://nnethercote.github.io/perf-book/ но тут скорее про перформанс и попытки выжать наносекунды, чем о идиоматичности кода (хотя не противоречит).
Еще подобные ридми-книги-сборники вспомните?
Хоть домен и кричит unofficial, но это ничего не значит)
rust-unofficial.github.io
Introduction - Rust Design Patterns
A catalogue of Rust design patterns, anti-patterns and idioms
(не моя) Цитата из чата @generictalkschat
Привет всем. Я тут запилил небольшой сайтик-поисковик по рассылке Golang Weekly. Это пока что больше проверка гипотезы, но работает сносно. Надеюсь кому-то сможет помочь 😊
http://golangweeklysearch.com
Все на го в одном бинарнике, лайк (обещали опенсурс)
Привет всем. Я тут запилил небольшой сайтик-поисковик по рассылке Golang Weekly. Это пока что больше проверка гипотезы, но работает сносно. Надеюсь кому-то сможет помочь 😊
http://golangweeklysearch.com
Все на го в одном бинарнике, лайк (обещали опенсурс)
oleg_log
Такс, ушастики мои. Кто хочет канкаренси задачку на Go ? Там нет явного бага, но кое-что там сделано неправильно. Мы нашли это в тестовом задании, точнее там бага не было, нам показалось) Вам конечно же версию с багом принёс. Подсказка для тех, кто не уверены…
Долгожданный для некоторых ответ.
Проблема в утекающих горутинах при возврате ошибки из функции
В оригинальном коде канал
Один из проверяющих это тестовое не заметил, что канал с буффером и заявил, что там будет дедлок. Но чуть подумав и проверим убедились в его отсутствии.
Там по коду можно еще чуть докопаться, но это выходит за рамки поста и вопроса.
Меня удивило, сколько людей не заметили этого. Было много опытных людей, кстати. Я даже задумался, а может какой-то курс по канкаренси в го (и не только) провести 🤔
(а вообще спасибо ответившим)
Проблема в утекающих горутинах при возврате ошибки из функции
do.В оригинальном коде канал
data был объявлен буфферезированным (значением count), соотв все бы горутины в итоге все дописали бы (даже если бы 1я вернула ошибку), и любимый GC все бы почистил.Один из проверяющих это тестовое не заметил, что канал с буффером и заявил, что там будет дедлок. Но чуть подумав и проверим убедились в его отсутствии.
Там по коду можно еще чуть докопаться, но это выходит за рамки поста и вопроса.
Меня удивило, сколько людей не заметили этого. Было много опытных людей, кстати. Я даже задумался, а может какой-то курс по канкаренси в го (и не только) провести 🤔
(а вообще спасибо ответившим)