@gogolang

Страница 1114 из 1630
Nik
30.05.2018
16:13:12
ты пробовал гуглить вообще?
не поверишь. и из стандартного - проверка есть толкьо при чтении из канала. при записи в закрытый - всегда паника и разруливать через рековер

Kirill
30.05.2018
16:16:07
ну - гляди. ладно, ща подскажу.

Nik
30.05.2018
16:18:59
суть песни - забродкастить один http запрос в 5 бекендов, и взять ответ от того, кто первый ответит.

https://play.golang.org/p/eNiJrklDh2Q

Google
Kirill
30.05.2018
16:26:30
https://play.golang.org/p/1vqsgeE25tE работает на amd64

Kirill
30.05.2018
16:28:45
это еще красивый способ

главное - не удаляй анонимные поля перед closed

а то проверять будешь по части значения длины данных в очереди

Nik
30.05.2018
16:30:51
понял

спасибо

Kirill
30.05.2018
16:31:28
пойду-ка запихну в либу эту дичь

Nik
30.05.2018
16:31:37
не уверен что это тредсейф, но попробую

Nazary
30.05.2018
16:31:44
мб мне повезет, признак вейерштрасса никто не может кинуть доказательство?)0) или книжечку

Kirill
30.05.2018
16:37:50
не уверен что это тредсейф, но попробую
но это гарантированно не вычитает данные

ты, конечно, можешь попробовать вытащить ссылку на сам .closed и сделать atomic.LoadUint32()

Google
Nik
30.05.2018
16:39:41
тред а читает данные и закрывает канал полчив их| тред б проверяет что канал не закрыт и пишет в него. А после проверки он успел закрыться. Наверно надо делать запись с проверкой на закрытость

Kirill
30.05.2018
16:47:55
технически, запись в некоторых случаях является прямой передачей значения ресиверу, обходя буфер канала

так что под вопросом, сможешь ли ты проверить и сразу записать что-то

Daniel
30.05.2018
16:50:27
коллега. нахера в ыпоказываете эти картинки детям?

чтобы что?

Kirill
30.05.2018
16:52:44
какой вопрос - такой ответ. без вычитывания из канала и без defer recover() (благо под коробкой не throw()) я знаю разве что этот вариант

Daniel
30.05.2018
16:53:16
а хорошо бы не знать ни одного, и обойтись без проверок на закрытость

Kirill
30.05.2018
16:54:38
не знать я уж давно не могу, так или иначе

иногда уже вообще не ясно, где начинаются картинки, которые показывать не надо

Daniel
30.05.2018
17:00:08
там, где unsafe - уже точно они

Kirill
30.05.2018
17:00:12
если детям не показывать такое, в итоге дойдут сами, еще и до некорректных вариантов типа closedAddr := unsafe.Pointer(uintptr(unsafe.Pointer(&c)) + uintptr(unsafe.Offsetof((hchan{}).closed))) return atomic.LoadUint32((*uint32)(closedAddr)) > 0

даже на стековерфлоу, дожили, говнокодят с одновременно (!) использованием unsafe и reflect: https://stackoverflow.com/a/38836546

Алексей
30.05.2018
17:02:55
Kirill
30.05.2018
17:03:35
А когда это он был/стал показателем хороших практик?)
он всегда был показателем того, до чего доползли так называемые "дети"

разбанил, но банхаммер на готове, так что без спама впредь

Kirill
30.05.2018
17:32:46
и сутки ты в рестрикте - не сможешь в стикеры и гифки. я видел, какое полотно стикеров было удалено.

Кратко о том, как выглядит программирование на го со стороны

Google
Daniel
30.05.2018
18:50:14
А как проверить, закрыт канал или нет перед записью в него, не читая из него ничего?
никак. стройте свое приложение так, чтобы такая проверка вам не требовалась

Nik
30.05.2018
18:51:44
никак. стройте свое приложение так, чтобы такая проверка вам не требовалась
Кейс. Запускаю пять работ, все дают результат. Мне нужно подучить один результат, остальные работы сжечь и не ждать их завершения

Daniel
30.05.2018
18:52:00
ну

при чем тут проверка закрытия перед записью

Nik
30.05.2018
18:55:11
Сделал канал до начала работ. Кто первая отработала - положила результат в этот канал. После работ читаю из канала.

И вопрос - как остальные работы прервать

Daniel
30.05.2018
18:56:48
перрвать есть классическая техника - передаете туда канал, внутри из него читатете в селекте. как только вы этот канал закроете - из него везде, наконец, что-то прочтется, и это будет означать, что пора закрываться

Nik
30.05.2018
18:57:26
https://play.golang.org/p/eNiJrklDh2Q

Daniel
30.05.2018
18:58:25
https://play.golang.org/p/eNiJrklDh2Q
prog.go:30:1: syntax error: unexpected EOF, expecting }

Nik
30.05.2018
18:58:37
Весь код на плейграунд не влезет

Daniel
30.05.2018
18:59:47
ну вот именно эту горутину у вас прервать не выйдет - в ней нет ничего для прерывания

Vladimir
30.05.2018
19:03:48
https://play.golang.org/p/eNiJrklDh2Q
https://play.golang.org/p/CShKusmIV7Q можешь так сделать например

Vladimir
30.05.2018
19:06:25
@elvis_live в целом можно и без контекста, сделать канал синхронизации какой-нибудь и при его закрытии прерывать работу (также если ты в цикле тока работает)

Nik
30.05.2018
19:07:52
@elvis_live в целом можно и без контекста, сделать канал синхронизации какой-нибудь и при его закрытии прерывать работу (также если ты в цикле тока работает)
Ну так же склеритами будет, но контекст мне больше люб. И вроде его можно пропихнуть в http клиента и прервать запрос

(Че я сразу то не подумал)

Daniel
30.05.2018
19:08:32
(Че я сразу то не подумал)
я думаю - просто не думал вообще

Google
Kirill
30.05.2018
19:09:23
я думаю - просто не думал вообще
Почему я всё ещё полагаю, что люди сначала думают, перед тем, как делают?

https://dave.cheney.net/2018/05/29/how-the-go-runtime-implements-maps-efficiently-without-generics

Антон
30.05.2018
21:08:29
Зачем сюда жгучий перец, в го и так предостаточно причин для слёз

MVP
30.05.2018
21:48:17
скажите можно делать glide install <МОЯ_ПАПКА> а не в /vendor ?

Admin
ERROR: S client not available

Kirill
30.05.2018
22:04:57
нет

более того - зачем?

anton
30.05.2018
22:15:19
коллеги, вопрос (возможно болезненный, но что-то не нашел здесь обсуждения) имеем sqlx и всячески избегаем ORM и для примера, пусть будет: type User struct { ID int64 `db:"id"` Name string `db:"name"` Group *Group `db:"Group"` } type Group struct { ID int64 `db:"id"` Name string `db:"name"` } вытаскиваем пользователей и left join на группы, и естественно присутствуют пользователи без групп. кто какие варианты использует, для случая, когда Select сразу в &user? дефолтное поведение - ругнется Scan error, из-за того что не смог nil в int64

Wingman
30.05.2018
22:20:01
int64 -> sql.NullInt64 ?

Vlad
30.05.2018
22:20:01
Указатель на int64

Wingman
30.05.2018
22:20:10
или да

anton
30.05.2018
22:20:56
то есть других способов за последнее время не выработалось?

Kirill
30.05.2018
22:21:11
нет, конечно

nullable типы как представлялись, так и представляются, как ссылочные

Wingman
30.05.2018
22:25:36
только ссылки потом умучаешься сейвить обратно в БД null`ами

проще sql.Null`Type

anton
30.05.2018
22:25:53
sqlboiler тащить не хочется пойду наверное напишу генератор, для всего этого бойлерплейта

Wingman
30.05.2018
22:27:33
можно разово https://github.com/xo/xo нагенерить и дальше править под себя

Google
anton
30.05.2018
22:27:44
и помимо сейва в бд, где естественно ненулабл id, есть боль с маппингом в структуры улетающие через rest api

можно разово https://github.com/xo/xo нагенерить и дальше править под себя
угу, как раз он за основу и был взят и немного подправлен под себя.. пойду еще подпилю немного. пасиб!

‎‎‎‎
31.05.2018
07:56:20
fasthttp реально быстрее работает чем дефолтный net/http?

Pawel
31.05.2018
07:58:03
а тебе реально это надо?

‎‎‎‎
31.05.2018
07:58:15
Если можно сделать быстрее, то почему бы и нет?))

Pawel
31.05.2018
08:01:05
Если можно сделать быстрее, то почему бы и нет?))
потому что в 99.99999...% случаев это не является узким местом ?

‎‎‎‎
31.05.2018
08:03:35
потому что в 99.99999...% случаев это не является узким местом ?
Эмм Что то я тебя не так понял Видимо я слишком испорчен

Как понять "не является узким местом"?

Daniel
31.05.2018
08:04:58
Как понять "не является узким местом"?
Родина дала тебе профайлер, прометеус дала...

‎‎‎‎
31.05.2018
08:06:08
?

Alexander
31.05.2018
08:08:36
в сеть или в диск есть больше шансов уперется, чем в роутер

Andrei
31.05.2018
08:08:52
Как понять "не является узким местом"?
У fasthttp есть кое какие ограничения, которых нет у стандартного net/http, так что если нет реальной необходимости выжимать все соки из железа, лучше использовать стандартный

Kendr
31.05.2018
09:40:32
Daniel
31.05.2018
09:40:49
но есть и недостатки

Kendr
31.05.2018
09:40:59
но есть и недостатки
Иначе было бы все слишком радужно

Страница 1114 из 1630