
Zver
08.09.2016
06:46:32

Rinat
08.09.2016
09:55:32
кто подскажет по каналам в го?
https://github.com/Gasoid/bugzilla_report/blob/master/report.go#L171
все работает хорошо если 2 воркера делаю
если 3 например, то зависает

Google

Rinat
08.09.2016
11:58:11
конечно я там сейчас поменял на 10 потоков, чтобы понять. но гы может кто знает в чем причина)

Zver
08.09.2016
11:58:15

Rinat
08.09.2016
11:58:36
ааа
понял
короче воркер нужен который будет читать

Zver
08.09.2016
11:59:30
Совершенно верно.

Rinat
08.09.2016
12:37:15
мдас, походу не до конца понял как реализовать))
теперь выполняет только заданное кол-во потоков изначально, но не все джобы
вопрос почему в примере нету такой блокировки?
https://play.golang.org/p/y12QxBsKtT

Anton
08.09.2016
13:16:18
В этом примере тоже могла бы случиться блокировка, т.к. из канала results никто не читает, пока всё не отослано в канал jobs.
Вот пример https://play.golang.org/p/q0oCNUq3OU
Если сделать джобов побольше (100), а каналы поменьше (10).

Zver
08.09.2016
13:19:19

Anton
08.09.2016
13:20:39
Ага, и я объяснил, почему так лучше не делать — буфера может не хватить.
Чтение из results нужно запустить отдельной горутиной до записи в jobs.

Google

Zver
08.09.2016
13:23:46

Rinat
08.09.2016
13:28:08
ну да сделал,
https://github.com/Gasoid/bugzilla_report/blob/master/report.go#L170
только теперь как выше написал один результат получается

Zver
08.09.2016
13:37:03
Я вообще не понял что вы сделали. горутина у вас пустая. В принципе нужно было обернуть код, который у вас извлекал данные из результирующего канала, горутиной. И переместить выше запихивания данных в джоб. Так же создать один канал для ожинания окончания получения данных из результирующего канала.

Rinat
08.09.2016
13:37:53
о теперь яснее
похоже с каналами никак не пойму)
https://github.com/Gasoid/bugzilla_report/blob/master/report.go#L151

Zver
08.09.2016
14:04:29
Вообще вот неплохое разжевывание материала
https://blog.golang.org/pipelines

Rinat
08.09.2016
14:38:20
о спс)) теперь норм

Мерлин
08.09.2016
17:58:35
Кто-то смотрел "net/textpoto"?
Зачем оно?

Kirill
08.09.2016
17:59:38
для базовой поддержки текстовых протоколов

Yuri
08.09.2016
20:54:05
https://groups.google.com/forum/m/#!topic/golang-ru/skJaXfAsxs8

Dima
08.09.2016
21:10:09
Ребята, можно поделиться ссылкой на моего опенсорц-go-powered бота, чтобы его потестили?
Вы же не против? https://telegram.me/DokkyBot

Anton
08.09.2016
21:19:34
Он content в виде картинки показывает?

Dima
08.09.2016
21:20:30
Ага.

santa
09.09.2016
03:26:00
Прикольно

Kirill
09.09.2016
19:53:48
да вот не получается туда это пронести, блин. придется на уровне кастомного пакета это все делать.

Yuri
10.09.2016
07:22:25
Да

santa
10.09.2016
07:22:47
Поллбот так и не умеет инлайн кнопок?

Google

santa
10.09.2016
07:23:06
Мдауж
Хотя это имеет определенный смысл

Valery
10.09.2016
07:36:25
Зачем он нужен, когда есть @vote

Мерлин
10.09.2016
07:36:49

Vasily
10.09.2016
08:10:02
Да

Daniil
10.09.2016
10:57:03
/2

Мерлин
11.09.2016
07:58:36
[last news]
Persistent cookies in GO
[last news]
Pr0n Android app written in Go

Constantine
11.09.2016
11:40:37
ахаха
нормально ))

vktr
13.09.2016
13:38:25
посмотрел видосик про то как стоило бы хэндлить ошибки в go. Не могу избавиться от ощущения костыльности: ощущение, что переизобретают исключения...надо обрабатывать один раз, стектрейс, в чем отличие от исключений? https://youtu.be/lsBF58Q-DnY

Anatolii
13.09.2016
13:50:48
от ошибок в го двоякое ощущение
с исключениями беда что люди их просто выше пробрасывают
и забывают что нужно сделать с ними
и если вдруг в исключении есть какая-то логика
а не просто логирование то со всем этим тяжко жить
с ошибками - ты явно видишь где произошла ошибка и каков контекст
мне такой подход кажется бодее правильным
https://danluu.com/postmortem-lessons/
просто в го это через чур явно сделано:)

Google

Anatolii
13.09.2016
13:53:30
довольно таки часто мы пишем код в котором при ошибке нам нужно вернуть ее
и ничего не делать
если тебе интересно, можешь глянуть как в хаскеле сделаны Maybe/Either монады
не надо писать if err на каждом шагу
но если нужно обработать ошибку
ты рядом пишешь обработку, именно в той строке в которой она возникнуть может

vktr
13.09.2016
14:58:28
Я не о ошибках вообще, а о этом докладе. Просто идеология "прокидывай на верх и обрататывай один раз" - как раз идеология исключений. И посему - у меня ощущение костыльности. Ибо не вижу разницы с исключениями при таком подходе.

Anatolii
13.09.2016
14:59:00
я понял, я доклад не смотрел

vktr
13.09.2016
14:59:02
Ты уже ответил и запорол мой указатель ????

Anatolii
13.09.2016
15:00:03
все, я понял
я думал ты там или фак или петлю поставил
и не могу понять:)

vktr
13.09.2016
15:01:13
Ой реально ?, а хотел ???? получился наглый указатель

Zver
13.09.2016
15:06:25
Один раз обработать это хорошо. А то по десять раз на одну ошибку IFов писать приходится. Надо глянуть в живую на подход. А ошибку все равно обрабатывать придется. Под исключением она просто может затеряться, может банально забыть, что где-то там внутри может сгенериться исключение, особенно с чужой либой.

vktr
13.09.2016
15:38:50

Daniel
13.09.2016
15:39:52
а затеряться может RuntimeException, который аналог нашего panic

Zver
13.09.2016
15:40:55
Еу тут хотя бы видно, что что-то проглотил, а с исключением не видно, а если оно там вообще в глубине сидит, то и забудется, пока не случится.

vktr
13.09.2016
15:41:07
Го поговорочка номер последняя от пайка "don't Panic" ??? кстати, его доклад прикольный был

Google

Daniel
13.09.2016
15:41:54
еще раз - все эксепшены, кроме Runtime, нельзя забыть, ты должен или поймать его, или объявить в контракте метода

Zver
13.09.2016
15:42:47

Daniel
13.09.2016
15:42:49
да

Zver
13.09.2016
15:42:58
А в других не так.

Daniel
13.09.2016
15:43:12
в других эксепшены фуфло

vktr
13.09.2016
15:44:28
в других эксепшены фуфло
в C++ вообще std::unexpected хэндлер есть, который необработанные исключения получает. Но мало кто о нем знает и это еще один способ отстрелить себе всё

Zver
13.09.2016
15:47:11
Это не решение не обработанные получать, может там ошибка раз в год вылазить будет, только тогда и обнаружится, что где-то эксепшн какой-то не обработали.