
Атас
17.04.2018
09:54:44
Хах) не, такого не держим)
Ту тогда прямой путь к нему в вопрсом как быть ?
или фиче реквайст
возможно что он не знал раньше что это может потребоваться в таком виде

Crypt
17.04.2018
09:55:37
go:linkname
не то?

Vadim
17.04.2018
09:55:51

Google

Crypt
17.04.2018
09:55:55
про рефлексию я наврал, похоже, что-то не так усвоилось
http://www.alangpierce.com/blog/2016/03/17/adventures-in-go-accessing-unexported-functions/
мб с типами тоже прокатит

Атас
17.04.2018
10:37:00

Kirill
17.04.2018
11:15:10
Товарищи, а го гарантирует выполнения выражений слева на право?
Т.е. я правильно понимаю что такой код инкогда не запаникует?
if err !=nil && err.Error() == “some error” {
}
Поскольку проверка на нил всегда будет раньше вызова .Error

Александр
17.04.2018
11:15:26
а что вы скажите по поводу viper+cobra?
что-то тут советуют вместо велосипеда
но как то и с ним неплохо жилось

Daniel
17.04.2018
11:16:06

Zver
17.04.2018
11:17:01

Kirill
17.04.2018
11:17:26

Александр
17.04.2018
11:19:08

Google

Daniel
17.04.2018
11:20:53
обычно ничего больше и не надо

Александр
17.04.2018
11:21:22
ну я про https://github.com/spf13/viper

Daniel
17.04.2018
11:21:30
я вообще стараюсь флагами обходиться, файл всплывает тольк если мне пароль к базе надо где-то хранить
я знаю, про что

Александр
17.04.2018
11:21:43
и вот еще https://github.com/spf13/cobra
ну хз я тоже так думаю
нафиг сторонние либы
хотя в принципе что-то орали там про "промышленный стандарт"
хотя вроде у нас стандарт не использовать либы O_o

Daniel
17.04.2018
11:22:50
не
вайпер - это стандарт
про кобру не помню
просто оно обычно не надо совсем

Александр
17.04.2018
11:23:55
мне просто не совсем понятно
нафига, когда можно в структуру накормить и провалидировать там же

Daniel
17.04.2018
11:24:58
декларативный стиль

Mykyta
17.04.2018
11:25:02
Кто-то запиливал логгирование запросов как в горме для sqlx? Чтобы логгировало сам запрос + время выполнения + rows affected.

Daniel
17.04.2018
11:25:12
ты описываешь параметры исчерпывающе, робот делает остальное

Александр
17.04.2018
11:25:57

Daniel
17.04.2018
11:30:08
нас еще прокруст учил, как с этим быть

Google

Александр
17.04.2018
11:30:32
я этот момент не застал ?

Daniel
17.04.2018
11:31:55
описан в специальной литературе подробно

Alexey
17.04.2018
11:32:13
*прокрустово ложе (Кун, Легенды и мифы Древней Греции)

Александр
17.04.2018
11:34:12
ну я же говорю, я не настолько стар ?

Roman
17.04.2018
11:38:15
я правильно понимаю что $GOPATH/src/project/internal/shared будет доступно только в пределах $GOPATH/src/project и не экспортируется наружу?

Mykyta
17.04.2018
11:38:46

Александр
17.04.2018
11:38:46
ну вы вполне можете прописать его в другом проекте

Roman
17.04.2018
11:39:00

Daniel
17.04.2018
11:39:14
для начала, конструкция $GOPATH/src/project/internal/shared не имеет права на существование, в GOPATH можетыть несколько путей

Mykyta
17.04.2018
11:39:52

Alexey
17.04.2018
11:40:14

Mykyta
17.04.2018
11:40:35

Alexey
17.04.2018
11:41:37
ну это смотря что иметь в виду под "всё". Пакеты, типы или вообще всё.

Roman
17.04.2018
11:41:57
вот у меня есть файл https://github.com/qbeon/webwire-go/blob/master/client/socketImpl.go в /webwire-go/client/
его-же копия https://github.com/qbeon/webwire-go/blob/master/socketImpl.go в /webwire-go/
т.е. client использует подобную имплементацию сокета, но не может её использовать из корневого пакета поскольку эти функции/типы не экспортируются
экспортировать объекты socketImpl.go нельзя наружу, поэтому я тогда побыстрому просто скопипастнул из корневого в client
но это естественно нехорошо, DRY всё-таки

Daniel
17.04.2018
11:43:04
ну - такова селяви
вообще-то, если одно и тоже используется в разных пакетах - его надо оформлять либой, в своем репо
IMHO

Google

Roman
17.04.2018
11:44:04
ну это уж слишком в данной ситуации))
нет никакой другой альтернативы?
можно конечно оставить и копию, ибо там критичного кода нет и меняться он не будет

Александр
17.04.2018
11:51:05

Roman
17.04.2018
11:51:37

Александр
17.04.2018
11:51:49
нет отдельная репа
хотя можно и субпакетом обойтись

Roman
17.04.2018
11:52:50
хотя можно и субпакетом обойтись
в даннон случае не сработает, ибо субпакет должен в таком случае экспортировать всё, что непозволимо ибо там gorilla/websocket в API

Александр
17.04.2018
11:53:21
значит вы хреново сделали пакет

Admin
ERROR: S client not available

Александр
17.04.2018
11:53:25
стоит пересмотреть архитектуру
что бы он оборачивал без торчащих ног

Roman
17.04.2018
11:54:18
стоит пересмотреть архитектуру
дак как?))
есть /client и есть корневой пакет, клиент представляет собой под-проект который переместить в другую репу я не могу, он используется в тестах

Александр
17.04.2018
11:54:49
ну так тесты должно его импортировать же
плюс его тесты

Roman
17.04.2018
11:55:40

Александр
17.04.2018
11:56:10
я не совсем врубаюсь
у вас есть socketImpl, что мешает его переместить в пакет отдельно?
вот конкретно

Roman
17.04.2018
11:57:41
у вас есть socketImpl, что мешает его переместить в пакет отдельно?
то что придётся экспортировать его API, что непозволимо. Это имплементация абстрактного интерфейса сокета на основе gorilla/websocket
gorilla/websocket однако не должен экспортироваться в API webwire по причине описанной в этом issue: https://github.com/qbeon/webwire-go/issues/2

Google

Roman
17.04.2018
11:58:19
я думал если запихать его в webwire-go/internal/socket тогда он не экспортируется в API webwire, но видимо это не так

Александр
17.04.2018
11:58:45
это не так

Crypt
17.04.2018
11:58:50

Vadim
17.04.2018
11:59:41

Александр
17.04.2018
12:00:25
через рефлект?
АСТОНОВИТЕСЬ

Roman
17.04.2018
12:02:21

Александр
17.04.2018
12:02:39
ээм
с чего вы взяли?

Roman
17.04.2018
12:03:10

Александр
17.04.2018
12:03:32
у вас же есть структура socket которая шариться через фабрику
вернее у вас newConnUpgrader основная фабрика насколько понимаю

Roman
17.04.2018
12:04:24
https://github.com/qbeon/webwire-go/blob/master/socket.go

Александр
17.04.2018
12:05:28
ээм
у нас же утиная типизация

Roman
17.04.2018
12:05:47

Александр
17.04.2018
12:06:08
еще раз, вы из внешки вызываете - NewConnUpgrader
он иницилизирует connUpgrader
из внешки при этом не будет требоваться же импорт - github.com/gorilla/websocket

Roman
17.04.2018
12:07:20