@gogolang

Страница 834 из 1630
Alfred
18.02.2018
21:37:20
Сложная задачка?
сейчас скину тз личным сообщением, минуту

Александр
18.02.2018
22:15:14
у них что ошибка в документации?

делаю: req, err := http.NewRequest("GET", "http://httpbin.org/user-agent", nil) ... response, err := client.Do(req) req.Body.Close()

оно логично падает

Google
Constantine
18.02.2018
22:16:03
м?

Александр
18.02.2018
22:16:05
странно что в доке не проверили на nil

м?
https://golang.org/pkg/net/http/#example_Get

тут нет проверки что боди пустая в примере

хотя по хорошему обертка над гет делает - req, err := NewRequest("GET", url, nil)

тоесть должно все рухнуть

Slava
18.02.2018
22:20:21
А зачем ты тело реквеста закрываешь?

Александр
18.02.2018
22:21:50
потому что там может быть буффер, его надо закрыть

после запроса

Slava
18.02.2018
22:22:59
В примере респонс закрывается

Александр
18.02.2018
22:23:53
упс

не внимательно глянул ?

Google
Constantine
18.02.2018
22:25:34
ай яй яй

Александр
18.02.2018
22:27:48
ех понеслась!

только надо sync.Map прикрутить щаз и кааак

или через каналы сделать...

у меня паук тут на парсер, в 5 потоков пока что. Что быстрее через каналы кормить в гоурутину и там сохранять в мапу или через sync.Map сразу писать в мапу...

Marlik
18.02.2018
22:37:40
sync.Map грят не так производительно, может я что путаю.

Александр
18.02.2018
22:38:55
нашел бенч

https://gist.github.com/cyfdecyf/4562635

Александр
18.02.2018
22:52:15
но таки сделал через каналы ?

контроля больше

хотя один хрен мне надо этот мап читать, в каждом потоке. Что бы исключить дубли

Aleksandr
18.02.2018
23:03:52
краулер делаешь?

Александр
18.02.2018
23:08:06
ага

Aleksandr
18.02.2018
23:08:21
что умеет?

Александр
18.02.2018
23:08:24
переделал через мапы, работает вроде ?

что умеет?
грабить корованы ?

сайт один специализированный парсит

Marlik
18.02.2018
23:09:00
грабить корованы ?
Парсишь страницы?

Google
Александр
18.02.2018
23:09:06
json

Marlik
18.02.2018
23:09:08
Александр
18.02.2018
23:09:28
стандартный http.Client + json.marchal + sync.Map

Aleksandr
18.02.2018
23:09:43
сайт один специализированный парсит
а. я делал краулер, который сайт зеркалирует

Александр
18.02.2018
23:09:47
результаты пихаю в GOB

Marlik
18.02.2018
23:09:47
стандартный http.Client + json.marchal + sync.Map
Я не вовремя спросил, я думал страницы парсишь.

Александр
18.02.2018
23:10:07
прямо всю коллекцию в бинаре ?

3731 запись за час

медленно конечно, но на каждую сущность надо субзапрос делат

Max
19.02.2018
00:33:27
привет а кто подскажет почему gorm Where("smth_id in ?", []int{1,2,3}) делает такое: where smth_id in ['1', '2', '3'] ?

Andrey
19.02.2018
00:34:00
Насколько увеличивается время компиляции?
оно не увеличивается, оно констатно 30 секунд.

Andrey
19.02.2018
00:38:52
замени на Where("smth_id in ?", 1,2,3)

Max
19.02.2018
00:39:45
замени на Where("smth_id in ?", 1,2,3)
у меня переменное количество в слайсе

sql := "select * from foo where id=? and name in (?" + strings.Repeat(",?", len(stuff)-1) + ")" ?

Andrey
19.02.2018
00:40:28
slice...

такое не провернёшь через prepare, я думаю

возможно, есть другой способ

Daniel
19.02.2018
00:41:32
такое не провернёшь через prepare, я думаю
на постгресе - можно, там есть функция any

Google
Daniel
19.02.2018
00:42:12
на остальных - придется сделать запрос с нужным количеством вопросиков

Andrey
19.02.2018
00:46:27
https://github.com/golang/go/issues/16235

Ilia
19.02.2018
01:12:54
Написал array to string функцию для таких случаев... Вообщем то не напрягает она меня, и используется во многих местах

Admin
ERROR: S client not available

Pawel
19.02.2018
06:21:52
kv на sql не совсем верно - там kv это индексы. а индексы сами по себе не живут, там еще балласта вагон
ключи в kv, внезапно, тоже индекс. Но в том же постгресе можно выбрать тип индекса, а в монге - нет

tsov
19.02.2018
06:46:09
да, с таким подходом в финансовом секторе вам не место. Идите в космическую отрасль.
куда то ходить мне уже поздно, могу только другим помогать ходить :) и да, осознание ущербности перфекционизма в лице acid приходит только с годами :))

Andrey
19.02.2018
06:48:25
у любой технологии есть ограничения. Любые абстракции текут.

Pawel
19.02.2018
06:51:01
ну так есть случаи когда acid не нужен. Картинки с котегами хранить например. подумаешь отрубили электичество, сервер грохнулся, пара котиков пропала, делов то. А есть опердни, для которых падение сервера - катастрофа.

tsov
19.02.2018
06:53:30
не о падении говорим, а о рассогласованности данных в течение конечного отрезка данных, на котором эти данные доступны (в отличие от acid, где доступ к ним в ходе транзакции запрещен)

отрезка времени

ключи в kv, внезапно, тоже индекс. Но в том же постгресе можно выбрать тип индекса, а в монге - нет
в sql движке индексы это вспомогательная технология, в отличие от kv. между клиентом и данными sql вставляет балласт: сетевой протокол с преобразованием типов, транслятор в план запросов, интерпретатор плана запросов, кэш запросов, балансировщик и т.д. вся эта хрень жрет ресурс в то время как тебе всего то надо найти данные по ключу

Pawel
19.02.2018
07:51:01
сэнкъю, кэп

Michael
19.02.2018
07:51:23
sql over kv

гы

Илья
19.02.2018
07:53:41
только придётся vals пересобирать в []interface{}

s3rj1k
19.02.2018
08:22:25
https://gist.github.com/cyfdecyf/4562635
Так и что быстрее?

Google
Pawel
19.02.2018
09:13:03
есть годный сабж для обсуждения. надо сделать SQL запросы с фильтацией по динамическому набору полей. ORMы на подобие hibernate это решают более или менее Я по религиозным соображениям ORM не использую, пишу отдельные запросы на каждую комбинацию полей. Это писец конечно. Внимание вопрос. 1) А как это вообще сделать нормально в Го без ORM? 2) Есть пример для gorm? я чет не понял из доков

Timur
19.02.2018
09:14:21
Ох

Уже ничего не поможет?

squirrel

https://github.com/Masterminds/squirrel

Pawel
19.02.2018
09:16:22
спасибо, я подумаю

Dmitry
19.02.2018
10:50:08
Подскажите, пожалуйста для чего нужна переменная окружения GOPATH. Никак не пойму из документации. Она обязательно должна быть в системе? Проекты не могут располагаться по другому пути?

Виктор
19.02.2018
10:53:34
Ага. Чтобы отделить основу от твоего рабочего окружения

Айбелив
19.02.2018
10:54:41
в документации в первой же строчке написано что это такое: The GOPATH environment variable specifies the location of your workspace.

Dmitry
19.02.2018
10:55:28
Ага, может вам и понятно, а я только открыл доку и это ничего не говорит новичку )

Понятно только, что есть какие-то воркспейсы, но на каждый проект или глобальный должен быть хз

Aleksandr
19.02.2018
10:58:49
переменная окружения носит глобальный характер. и хоть ее можно и переопределять контекстно, но удобнее держать в одном месте. прописать куда следует и забыть

Andrei
19.02.2018
11:00:34
Ага, может вам и понятно, а я только открыл доку и это ничего не говорит новичку )
как правило мы делаем следующим образом: GOPATH=~/golang где ~/golang/src/… папка для исходного кода ваших проектов, в идеале для своих проектов нужно придумать какой нибудь namespace, чтобы их можно было красиво импортировать import "namespace/myawesomelib/package", соответственно лежать этот проект будет в ~/golang/src/namespace/myawesomelib ~/golang/bin - папка с бинарниками, которую желательно включить в PATH системы

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