🏁Александр
не внимательно глянул 🙂
Constantine️
ай яй яй
🏁Александр
ех понеслась!
🏁Александр
только надо sync.Map прикрутить щаз и кааак
🏁Александр
или через каналы сделать...
🏁Александр
у меня паук тут на парсер, в 5 потоков пока что. Что быстрее через каналы кормить в гоурутину и там сохранять в мапу или через sync.Map сразу писать в мапу...
🎉
🎉
sync.Map грят не так производительно, может я что путаю.
🏁Александр
нашел бенч
🏁Александр
https://gist.github.com/cyfdecyf/4562635
Vasily
🏁Александр
но таки сделал через каналы 🙂
🏁Александр
контроля больше
🏁Александр
хотя один хрен мне надо этот мап читать, в каждом потоке. Что бы исключить дубли
Aleksandr
краулер делаешь?
🏁Александр
ага
Aleksandr
что умеет?
🏁Александр
переделал через мапы, работает вроде 🙂
🏁Александр
сайт один специализированный парсит
🏁Александр
json
🎉
🏁Александр
стандартный http.Client + json.marchal + sync.Map
🏁Александр
результаты пихаю в GOB
🎉
🏁Александр
прямо всю коллекцию в бинаре 🙂
🏁Александр
3731 запись за час
🏁Александр
медленно конечно, но на каждую сущность надо субзапрос делат
Andrey
MXLTN
привет а кто подскажет почему gorm Where("smth_id in ?", []int{1,2,3}) делает такое: where smth_id in ['1', '2', '3'] ?
Andrey
Andrey
замени на Where("smth_id in ?", 1,2,3)
MXLTN
MXLTN
sql := "select * from foo where id=? and name in (?" + strings.Repeat(",?", len(stuff)-1) + ")"
😰
Andrey
slice...
Andrey
такое не провернёшь через prepare, я думаю
Andrey
возможно, есть другой способ
Daniel
на остальных - придется сделать запрос с нужным количеством вопросиков
Andrey
https://github.com/golang/go/issues/16235
Ilia
Написал array to string функцию для таких случаев... Вообщем то не напрягает она меня, и используется во многих местах
Pawel
Andrey
Pawel
Pawel
Andrey
у любой технологии есть ограничения. Любые абстракции текут.
Pawel
ну так есть случаи когда acid не нужен. Картинки с котегами хранить например. подумаешь отрубили электичество, сервер грохнулся, пара котиков пропала, делов то.
А есть опердни, для которых падение сервера - катастрофа.
Roman
не о падении говорим, а о рассогласованности данных в течение конечного отрезка данных, на котором эти данные доступны (в отличие от acid, где доступ к ним в ходе транзакции запрещен)
Roman
отрезка времени
Pawel
сэнкъю, кэп
Michael
sql over kv
Michael
гы
Илья
Илья
только придётся vals пересобирать в []interface{}
Anonymous
Pawel
есть годный сабж для обсуждения.
надо сделать SQL запросы с фильтацией по динамическому набору полей.
ORMы на подобие hibernate это решают более или менее
Я по религиозным соображениям ORM не использую, пишу отдельные запросы на каждую комбинацию полей. Это писец конечно.
Внимание вопрос.
1) А как это вообще сделать нормально в Го без ORM?
2) Есть пример для gorm? я чет не понял из доков
Timur
Ох
Timur
Уже ничего не поможет😂
Timur
squirrel
Timur
https://github.com/Masterminds/squirrel
Pawel
спасибо, я подумаю
Denis
Pawel
Pawel
Dmitry
Подскажите, пожалуйста для чего нужна переменная окружения GOPATH. Никак не пойму из документации. Она обязательно должна быть в системе? Проекты не могут располагаться по другому пути?
Салтыдык
Васильев Виктор
Ага. Чтобы отделить основу от твоего рабочего окружения
Салтыдык
в документации в первой же строчке написано что это такое:
The GOPATH environment variable specifies the location of your workspace.
Dmitry
Ага, может вам и понятно, а я только открыл доку и это ничего не говорит новичку )
Dmitry
Понятно только, что есть какие-то воркспейсы, но на каждый проект или глобальный должен быть хз
Aleksandr
переменная окружения носит глобальный характер. и хоть ее можно и переопределять контекстно, но удобнее держать в одном месте. прописать куда следует и забыть
Andrei 🦉
Ага, может вам и понятно, а я только открыл доку и это ничего не говорит новичку )
как правило мы делаем следующим образом:
GOPATH=~/golang
где ~/golang/src/… папка для исходного кода ваших проектов, в идеале для своих проектов нужно придумать какой нибудь namespace, чтобы их можно было красиво импортировать
import "namespace/myawesomelib/package", соответственно лежать этот проект будет в ~/golang/src/namespace/myawesomelib
~/golang/bin - папка с бинарниками, которую желательно включить в PATH системы
Andrei 🦉
и да, шорткат ~/ в GOPATH не работает, нужно прописывать абсолютный путь везде
Васильев Виктор
Это грубо говоря папка в которой ты работаешь