@gogolang

Страница 1597 из 1630
some_random_anonymous
21.10.2018
18:45:29
да я привык
Оно развивается ещё хоть?

Vladimir
21.10.2018
18:45:42
если ухо с помощью селекта может не блочиться то рот будет однозначно ждать ухо

Google
Vladimir
21.10.2018
18:48:08
можешь идти к вейтгруппам и воркерам

ivan
21.10.2018
18:49:55
да, весьма давно правда это было, и на udemy еще курс, но тоже достаточно давно ;)

Daniel
21.10.2018
18:51:31
тогда вы должны понимать, что вопрос "каналы блокируют основной поток?" смысла не имеет

Vladimir
21.10.2018
18:51:50
да, весьма давно правда это было, и на udemy еще курс, но тоже достаточно давно ;)
нельзя отпускать .... нужно практиковаться еженедельно (а лучше ежедневно) чтоб все уходило в руки и утрясалось в голове

ivan
21.10.2018
18:53:09
Не всегда выходит, го не для работы использую а так, для себя, непривычно работть с такой моделью асинхронного выполнения

Vladimir
21.10.2018
18:54:34
Roman
21.10.2018
19:05:43
Камрады, подскажите go deb это теперь официальна тулза?

Daniel
21.10.2018
19:06:15
:)

для начала - dep

потом - нет, и уже не станет

и, наконец, официальным будет vgo, но пока он на стадии эксперимента

Roman
21.10.2018
19:15:20
Извините, буква перевернулась

Google
Roman
21.10.2018
19:15:28
А что не так с dep ?

Daniel
21.10.2018
19:16:07
ну - он он оказался не в русле

с ним все хорошо, просто go team взяла курс на отказ от вендоринга

Roman
21.10.2018
19:19:19
Хм, значит и сам каталог vendor тоже не в русле ?

Pavel
21.10.2018
19:20:16
Фигово быть go team. ? Отказаться от вендоринга до 2 версии все равно не смогут.

Мерлин
21.10.2018
19:21:23
"Fuzzing, the new unit testing", Dmitry Vyukov, The Bug Slaughterer https://go-talks.appspot.com/github.com/dvyukov/go-fuzz/slides/fuzzing.slide

Alexey
21.10.2018
19:47:23
С dep на данный момент проблем нет, а вот с vgo... не так просто полностью на него перейти, только с нуля не используя сторонних пэкэджей

Daniel
21.10.2018
19:50:09
это правда

Alexey
21.10.2018
20:19:41
что это значит?
Ну, может это со мной проблемы. Но я пробовал несколько раз на vgo перейти полностью, у меня только с простым проектом без зависимостей это получилось. И то я всё время забываю как это пишеца это GO111VENDOR... или как там правильно, на ноуте поставил на постоянно, всё сломал пару раз :)

Aleksandr
21.10.2018
20:22:55
ну конкретики нет. У меня есть опыт около десятка проектов. Не все миграции гладко прошли, но проблем, связанных именно с go modules не было.

Alexey
21.10.2018
20:25:28
Нужно опытом поделиться с другими, может?

Vladimir
21.10.2018
20:26:41
воздушно капельным?

Aleksandr
21.10.2018
20:26:55
так чем делиться? все по инструкции. Размещаешь вне GOPATH, go mod init и смотришь ошибки все просто

генераторы? линтеры?
это да. но есть косвенные косяки когда dep понимает github.com/Package как github,com/package а go mod нет

Aleksandr
21.10.2018
20:29:33
я так понимаю github.com/sirupsen/logrus раньше был github.com/Sirupsen/logrus и в старых либах он фигурирует под вторым именем. dep кушает такое, а go mod нет. go mod replace спасает

Я симлинк папки gopath во внешнюю делал
зачем gopath трогать, если go mod призван его заменить?

Google
Alexey
21.10.2018
20:30:42
зачем gopath трогать, если go mod призван его заменить?
Чтобы существующее работало в обоих случаях

Aleksandr
21.10.2018
20:31:36
поясни

Serg Podtynnyi
21.10.2018
20:37:28
Привет всем, для программирования на других языках использую Atom, но на го у меня там как-то не пошло, теперь использую GoLand, есть какие-нибудь советики или известные проблемы с этим?

Alexey
21.10.2018
20:38:02
Есть проекты зависящие от моих же пэкэджей, я боюсь вот так вот просто выносить эти пэкэджи наружу. Но видимо это проблема от того что я на домашнем окружении полностью хотел на vgo перейти, а на рабочем оставлял как есть, а правки рабочие нужно делать срочно, прямо сейчас.

Serg Podtynnyi
21.10.2018
20:41:01
Нет проблем, по моему лучшее, если нет лицензии, то можно EAP пользовать
так пока и делаю, чтобы понять, нормально ли вообще

Serg Podtynnyi
21.10.2018
20:42:01
Я чуть-чуть пока не разобрался как правильно настраивать билд таргеты, но дебагер вроде работает и это супер.

Alexey
21.10.2018
20:43:34
Вобщем про реплэйс надо посмотреть, я мало вникал, видимо

Я чуть-чуть пока не разобрался как правильно настраивать билд таргеты, но дебагер вроде работает и это супер.
В го нужно забыть как это было раньше, только алгоритмы, и то с ними можно/нужно по другому

Aleksandr
21.10.2018
20:51:10
Всмысле с относительным путём?
В смысле ты можешь один пакет на лету менять на другой, причем другой может быть локальными. Указываешь не репозиторий, а локальный путь

Pavel
21.10.2018
21:00:01
всем привет! подскажите, почему я получаю вот такую ошибку Unsolicited response received on idle HTTP channel starting with "HTTP/1.0 408 Request Time-out смотрел дамп трафика, там действительно была tcp сессия с сервером, но http запроса не было повторяется когда запускаю много поток, в один поток такой ошибки нет

Aleksandr
21.10.2018
21:02:48
не помню. навреняка можно

там же еще появилась новая фича goproxy. Можно с ее помощью вести разработку

https://github.com/zelenin/go-mod-proxy

я бойлерплейт сделал

Pavel
21.10.2018
21:04:55
это приходит на соедигнения из пула, когда они долго висят
а как этого избежать? почему приложение не может отправить get запрос?

Google
Alexey
21.10.2018
21:11:30
там же еще появилась новая фича goproxy. Можно с ее помощью вести разработку
Я во всю документацию не вникал , видимо, надеюсь на то, что кто-то разжуёт всё. Будет время свободное от текучки, попробую ещё раз.

Wingman
21.10.2018
21:11:44
гм а нормально ли, что потребление cpu с рейс детектором и без отличается на порядок?

иногда и почти на два

Wingman
21.10.2018
21:12:17
гм

=\

с -race в топе висят __tsan_read, racecall, __tsan_write, racecalladdr

что и навело на мысль убрать его нафиг

с -race жрёт ~2000% cpu (24 проца), без него - 80-150% :)

Alexey
21.10.2018
21:16:14
с -race жрёт ~2000% cpu (24 проца), без него - 80-150% :)
Может код так написан, но я такого не встречал

Pavel
21.10.2018
21:16:32
это я понял, я использую net/http и не могу понять что ему мешает сделать запрос

Vladimir
21.10.2018
21:17:53
Pavel
21.10.2018
21:22:01
я делаю так client := &http.Client{ Timeout: timeout, CheckRedirect: func(req *http.Request, via []*http.Request) error { return http.ErrUseLastResponse }} resp, err := client.Get(url)

Vladimir
21.10.2018
21:24:47
хотя бы поcледнюю строчку в рутину resp, err := client.Get(url)

Pavel
21.10.2018
21:25:26
ну у меня этот код в функции, а функцию я уже вызываю с go

Vladimir
21.10.2018
21:29:23
resp.Body.Close() не забываете?

выбираете все за раз htmlData, err2 := ioutil.ReadAll(resp.Body)

Pavel
21.10.2018
21:34:27
как то так func worker(id int, jobs <-chan string, results chan<- string) { for url := range jobs { client := &http.Client{ Timeout: timeout, CheckRedirect: func(req *http.Request, via []*http.Request) error { return http.ErrUseLastResponse }} resp, err := client.Get(url) if err != nil { fmt.Println(url, err) continue } defer resp.Body.Close() switch resp.StatusCode { // тут отлавливаю некоторые ошибки } results <- "done" } } func main() { for w := 1; w <= flow; w++ { go worker(w, jobs, results) } for _, url := range *l { jobs <- url } close(jobs) for a := 1; a <= len(*l); a++ { <-results } }

Vladimir
21.10.2018
21:37:37
то есть вы не читаете содержимое страниц?

Pavel
21.10.2018
21:38:15
нет, только код

Google
Vladimir
21.10.2018
21:38:38
body.Close() не желательно в defer, так как закрытие может быть по разным причинам

вставьте чтение тела иначе неисповедимы пути господни когда вы ооставляете в сокете непрочтенные данные

Pavel
21.10.2018
21:42:04
ок, попробую, спасибо

Vladimir
21.10.2018
21:44:23
хотя если последней командой будет resp.Body.Close() оно просигнализирует что непрочитанное удалить

ivan
21.10.2018
21:44:58
Динамически создавать каналы и затем обрабатывать каждый по отдельности это нормально? (типа такого https://codeshare.io/5MZeA3 )

Почему общий?

ivan
21.10.2018
21:48:44
нет, там слайс каналов

Vladimir
21.10.2018
21:58:54
зачем то res слайс , чтоб выводить не-по-человечески?

зачем то for i, fn := range funcs { channels = append(channels, make(chan int)) go fn(channels[i]) }

ivan
21.10.2018
21:59:44
это для примера, меня больше интересует делают ли так на практике

Vladimir
21.10.2018
22:00:04
если уже вы индекс ввели зачем вам range?

for i:=0;i<len(funcs);i++

ivan
21.10.2018
22:01:10
тогда зачем вообще эта конструкция?)

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