@gogolang

Страница 1412 из 1630
Roman
15.09.2018
20:10:46
Алексей
15.09.2018
20:11:21
А как тогда асинхроннщина разруливается?

Google
Алексей
15.09.2018
20:14:41
user space scheduler
И в чем его принципиальное отличие от event loop поверх тред пулла?

Roman
15.09.2018
20:15:47
Алексей
15.09.2018
20:16:11
Так, я чувствую мне лучше в исходники залезть, а не такие специфичные вопросы задавать

Daniel
16.09.2018
03:58:56
А разве в го нет event loop какого-нибудь?
Есть, для IO Горутины с ним связаны через все тот же шедулер

Pawel
16.09.2018
06:00:55
какие еще варианты есть? огласите весь список, пожалуйста
Проще всего делать json-rpc поверх gorilla websocket

Alexandr
16.09.2018
06:39:19
какие еще варианты есть? огласите весь список, пожалуйста
Еще есть https://github.com/centrifugal/centrifuge - но может быть слишком перегруженной для простого юзкейса. Скорее нужно смотреть если нужно масштабирование PUB/SUB из коробки и не хочется городить свое решение. Плюс не так много свободы в плане выбора протокола - JSON или Protobuf. Но в целом позволяет передавать асинхронные сообщения, RPC и еще многие вещи.

Pawel
16.09.2018
06:53:04
Проще всего делать json-rpc поверх gorilla websocket
плюс json-rpc - унификация. На стороне бекенда на Го - стандартный json-rpc клиент и сервер, нужно только подсунуть ему имплиментацию на вебсокетах.

/dev/null
16.09.2018
06:55:23
Ребят, посоветуйте ORM (нужно чтобы firebird поддерживало, или какое либо универсальное решение)

Pawel
16.09.2018
06:57:58
нормальная ОРМ только одна - reform. Но в огнептицу она не умеет к сожалению

Sergey
16.09.2018
06:58:51
Google
/dev/null
16.09.2018
06:59:51
Sql boiler?
это на сколько я понял универсальное решение?

Pawel
16.09.2018
07:00:10
gorm? а про него что скажите
если что-то пойдёт не так (а оно пойдёт), то разобраться в чём проблема будут очень и очень трудно

/dev/null
16.09.2018
07:04:56
Ну впринципе
Note: SQLBoiler supports out of band driver support so you can make your own We are seeking contributors for other database engines. эээ... то есть он сможет работать со сторонним к примеру https://github.com/nakagami/firebirdsql драйвером?

Sergey
16.09.2018
07:05:37
Хммммм, неа

Pawel
16.09.2018
07:08:45
Sql boiler?
не умеет в огнептицу

/dev/null
16.09.2018
07:09:29
похоже придется пользоваться gorm

Pawel
16.09.2018
07:12:30
похоже придется пользоваться gorm
а без ОРМ ни как нельзя? я вон для огнептицы юзаю sqlx. в принципе проблем нет

/dev/null
16.09.2018
07:12:58
а без ОРМ ни как нельзя? я вон для огнептицы юзаю sqlx. в принципе проблем нет
будем думать, только начинаем проект (над старой базой)

/dev/null
16.09.2018
07:14:22
Он хорош
угу, тоже смотрю

Pawel
16.09.2018
07:14:55
концептуально sqlx не позволяет разве что запросы с динамической структурой билдить. Для этого есть squirrel

Semyon
16.09.2018
11:16:04


/dev/null
16.09.2018
11:18:32
../utill

Aleksandr
16.09.2018
11:19:07
не используй относительный импорт. всегда абсолютный от корня проекта myproject/util (исправил)

/dev/null
16.09.2018
11:19:29
в лучше правильные пути сразу используй ~/go/src/user/github.com/project/utill

Semyon
16.09.2018
11:20:12
../utill
спасибо

/dev/null
16.09.2018
11:22:55
спасибо
если ты не видишь разницы между ./utill и ../utill у тебя большие проблемы с матчастью

Google
/dev/null
16.09.2018
11:24:34
примерно вижу, сам не догадался
../ значит ниже на один каталог...

./ текущий каталог

Aleksandr
16.09.2018
11:25:16
так не получается
неправильно делаешь что-то. имя корневого пакета + util.

/dev/null
16.09.2018
11:25:51
выше)
это смотря с какой стороны посмотреть)

Aleksandr
16.09.2018
11:26:35
это смотря с какой стороны посмотреть)
в программировании дерево всегда изображается сверху вниз либо слева направо

/dev/null
16.09.2018
11:29:20
А зачем тебе орм
большой легаси проект

/dev/null
16.09.2018
11:29:32
с очень большой базой

700 таблиц

без связей а таблицах

Roman
16.09.2018
12:31:40
парни, а может кто-нить с профайлингом бенчмарков разобраться?

вот код бенча https://pastebin.com/1Ppj0Zfq

вот так запускаю бенч

go test -bench=. -benchmem -memprofile memprofile.out -cpuprofile profile.out

запускаю pprof: go tool pprof memprofile.out

Google
Roman
16.09.2018
12:37:08
вот такой вывод

Admin
ERROR: S client not available

Roman
16.09.2018
12:37:32
Local symbolization failed for tcpclient.test: open /tmp/go-build517695885/b001/tcpclient.test: no such file or directory Some binary filenames not available. Symbolization may be incomplete. Try setting PPROF_BINARY_PATH to the search path for local binaries. File: tcpclient.test Type: inuse_space Time: Sep 16, 2018 at 3:16pm (MSK)

как побороть?

Михаил
16.09.2018
12:41:38
Вроде как там нужно ещё указать параметром название бинарника

Roman
16.09.2018
12:42:39
бинарник чего, самой программы, бенч функции которой делаю?

Михаил
16.09.2018
12:44:02
go tool pprof ./your_bynary ./pro/cpu.pprof

А что за формат .out? Профилирование .pprof формат

Roman
16.09.2018
12:46:40
да расширение там точно пофигу

Pavel
16.09.2018
12:47:23
Roman
16.09.2018
12:48:23
go version go1.10.1 linux/amd64

указал путь к бинарнику сообщение исчезло

Pavel
16.09.2018
12:49:42
Вроде если бинарник скомпилен такой версией, то все символы в профайле уже быть должны.

Roman
16.09.2018
12:55:59
самой функи, которую в бенче тестирую в выводе нет

Heathcliff
16.09.2018
14:48:11
Как можно спарсить one to many в структуры в го без орм?

Daniel
16.09.2018
14:54:46
Без orm парсинг построчный

Heathcliff
16.09.2018
14:58:01
type User struct { name string Items []Item } type Item struct { name string } тип такого?

в два запроса придется делать?

сначала получать юзера а потом на втором запросе все его итемы

Stanislav
16.09.2018
14:58:47
Google
Daniel
16.09.2018
15:57:46
Heathcliff
16.09.2018
15:59:34
А чего джойном не запросить?
а в структуру получиться засканить?

Aleksandr
16.09.2018
16:02:07
а в структуру получиться засканить?
без orm ты сканишь поколоночно, поэтому структуры не играют роли

Евгений
16.09.2018
16:07:35
Народ - поясните пожалуста что такое Context? Он-же backgroud context и.т.п.

Часто вижу в вэб приложениях но так и не разобрался что да как

Crypt
16.09.2018
16:11:04
Народ - поясните пожалуста что такое Context? Он-же backgroud context и.т.п.
это нужно, чтобы обрабатывать отмену запросов пользователя, например, если юзер закрыл браузер до завершения запроса

чтобы в холостую не работать

Denys
16.09.2018
16:11:22
accountManagerController := controllers.NewAccountManager(db) accountManagerController.InitRoutes(authRouter) Насколько это раковая опухоль от 1 до 10

Евгений
16.09.2018
16:12:28
это нужно, чтобы обрабатывать отмену запросов пользователя, например, если юзер закрыл браузер до завершения запроса
И как вообще с ним правильно работать? Хотя-бы простой пример на трехпалом http сервере?

Crypt
16.09.2018
16:12:42
accountManagerController := controllers.NewAccountManager(db) accountManagerController.InitRoutes(authRouter) Насколько это раковая опухоль от 1 до 10
тока в контроллер не всё db еще должно приезжать, а только нужные репозитории)

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