
Alexandra
27.08.2018
21:06:32
Привет. А кто-то работал с кликхаусом? В частности, с пакетом github.com/kshvakov/clickhouse? Не могу найти, как можно с помощью него работать с Nested типом.
Ну или может быть кто-то знает пути получше, как можно в кликхаус пихнуть что-то вроде такой структуры Server https://play.golang.org/p/SlBLm3LloRd, чтоб и вложенный слайс клиентов также мог быть помещен в кликхаус?


Alexey
27.08.2018
21:55:22
Привет всем! У меня следующая ситуация
Описал интерфейс
type ExchangeHelperInterface interface {
GetBidAsk(leftCoin string, rightCoin string) (*BidAskData, error)
}
Затем вот такую структуру
type bittrexHelper struct {
apiKey string
secretKey string
}
func GetBittrexInstanse(apiKey string, secretKey string) *bittrexHelper {
bittrexHelper := new(bittrexHelper)
bittrexHelper.apiKey = apiKey
bittrexHelper.secretKey = secretKey
return bittrexHelper
}
func (b *bittrexHelper) GetBidAsk(leftCoin string, rightCoin string) (*structures.BidAskData, error) {
...
...
return &structures.BidAskData{Bid: response.Result.Bid, Ask: response.Result.Ask}, nil
}
и пытаюсь вернуть объект вышеописанной структуры из функции
func GetInstance(userID uint, exchangeID uint) (*structures.ExchangeHelperInterface, error) {
inst := GetBittrexInstanse("", "")
return inst, nil
}
Пишет что нельзя использовать *bittrexHelper как *structures.ExchangeHelperInterface
Как я могу возвращать из функции разные объекты, но реализующие один интерфейс?


Kirill
27.08.2018
21:58:25
Привет всем! У меня следующая ситуация
Описал интерфейс
type ExchangeHelperInterface interface {
GetBidAsk(leftCoin string, rightCoin string) (*BidAskData, error)
}
Затем вот такую структуру
type bittrexHelper struct {
apiKey string
secretKey string
}
func GetBittrexInstanse(apiKey string, secretKey string) *bittrexHelper {
bittrexHelper := new(bittrexHelper)
bittrexHelper.apiKey = apiKey
bittrexHelper.secretKey = secretKey
return bittrexHelper
}
func (b *bittrexHelper) GetBidAsk(leftCoin string, rightCoin string) (*structures.BidAskData, error) {
...
...
return &structures.BidAskData{Bid: response.Result.Bid, Ask: response.Result.Ask}, nil
}
и пытаюсь вернуть объект вышеописанной структуры из функции
func GetInstance(userID uint, exchangeID uint) (*structures.ExchangeHelperInterface, error) {
inst := GetBittrexInstanse("", "")
return inst, nil
}
Пишет что нельзя использовать *bittrexHelper как *structures.ExchangeHelperInterface
Как я могу возвращать из функции разные объекты, но реализующие один интерфейс?
не надо тебе ссылку на интерфейс делать


Alexey
27.08.2018
21:58:46

Google

Alexey
27.08.2018
21:59:27
Всё, понял что нужно сделать
Спасибо
А объект который верну, он вернётся по ссылке или по значению? Или это будет зависить уже от функции GetBittrexInstanse("", "") в данном случаи?

Kirill
27.08.2018
22:01:12

Alexey
27.08.2018
22:02:14

Kirill
27.08.2018
22:02:32
да не за что

Alexander
27.08.2018
22:11:09
да не за что
заметь, что от функции ты получаешь не объекты, а результат
Go немножко строгий

Jack
27.08.2018
22:13:40
привет, принялся учиь го и тут сразу вопрос) Вырезка с доков - Most Go programmers keep all their Go source code and dependencies in a single workspace. что это вообще дает? Спасибо!

Kirill
27.08.2018
22:14:00

Jack
27.08.2018
22:14:05
и в догонку - как правильней всего начать учить его?

Alexander
27.08.2018
22:14:54

Google

Jack
27.08.2018
22:16:54

Alexander
27.08.2018
22:17:16
Ну, значит, ты уж езнаешь язык

Jack
27.08.2018
22:17:21
нуу нет

Alexander
27.08.2018
22:17:39
а чего не знаешь?

Jack
27.08.2018
22:18:32
ну вот к примеру вопрос выше, почему должен быть 1 воркспейс

Alexander
27.08.2018
22:18:58
а должен быть 1?

Jack
27.08.2018
22:19:51
Most Go programmers keep all their Go source code and dependencies in a single workspace
это тут https://golang.org/doc/code.html
звучит как бест практис

Alexander
27.08.2018
22:21:36
Ну, это уже не так. Три дня назад вышло 1.11, там уже есть некоторое движение к тому, чтобы что-то изменить в лучшую сторону

Jack
27.08.2018
22:22:18
вот думаю читать все доки по но, или книгу донована
чтобы мягче войтивайти)

Alexander
27.08.2018
22:22:36
Пиши больше, и параллельно книгу читай, если хочешь. И все

Jack
27.08.2018
22:23:20
а то я взглянул на использование Гугл СДК и немного не понял что к чему

Alexander
27.08.2018
22:23:49
нет, от простого к сложному - не надо. Не усыпляй себя
по сути, нет ни простого, ни сложного. Больше на GO пишешь, проще задавать реальные вопросы :)
и всегда придет Дима Вьюков, который скажет, что это очень простой вопрос, но что вы хотели получить в итоге :)/
Или типа того :)

Google

Jack
27.08.2018
22:28:32
)))


Vadim
28.08.2018
04:00:05
Привет всем! У меня следующая ситуация
Описал интерфейс
type ExchangeHelperInterface interface {
GetBidAsk(leftCoin string, rightCoin string) (*BidAskData, error)
}
Затем вот такую структуру
type bittrexHelper struct {
apiKey string
secretKey string
}
func GetBittrexInstanse(apiKey string, secretKey string) *bittrexHelper {
bittrexHelper := new(bittrexHelper)
bittrexHelper.apiKey = apiKey
bittrexHelper.secretKey = secretKey
return bittrexHelper
}
func (b *bittrexHelper) GetBidAsk(leftCoin string, rightCoin string) (*structures.BidAskData, error) {
...
...
return &structures.BidAskData{Bid: response.Result.Bid, Ask: response.Result.Ask}, nil
}
и пытаюсь вернуть объект вышеописанной структуры из функции
func GetInstance(userID uint, exchangeID uint) (*structures.ExchangeHelperInterface, error) {
inst := GetBittrexInstanse("", "")
return inst, nil
}
Пишет что нельзя использовать *bittrexHelper как *structures.ExchangeHelperInterface
Как я могу возвращать из функции разные объекты, но реализующие один интерфейс?
Играй на Финике или битмексе


Dmitryi
28.08.2018
05:10:41

Alexandra
28.08.2018
05:34:58
вот думаю читать все доки по но, или книгу донована
Если это первый язык, то надо много писать, как тут уже и сказали, лучше каждый день. В конце концов, задача стоит научиться писать, а не читать) А читать что-то можно или параллельно, или уже со временем просто возникнет потребность. Порешай задачки на http://codeforces.com/, там даже есть уже большинство решений в которые можно подглядывать для начала, напиши сервер на основе гошной статьи https://golang.org/doc/articles/wiki/, и двигайся дальше, придумывай и решай задачи себе, или попроси чтоб кто-то придумал тебе их. Также очень помогает смотреть и разбирать чужой код, например, код тех же пакетов гошных.


Jack
28.08.2018
06:12:46
Если это первый язык, то надо много писать, как тут уже и сказали, лучше каждый день. В конце концов, задача стоит научиться писать, а не читать) А читать что-то можно или параллельно, или уже со временем просто возникнет потребность. Порешай задачки на http://codeforces.com/, там даже есть уже большинство решений в которые можно подглядывать для начала, напиши сервер на основе гошной статьи https://golang.org/doc/articles/wiki/, и двигайся дальше, придумывай и решай задачи себе, или попроси чтоб кто-то придумал тебе их. Также очень помогает смотреть и разбирать чужой код, например, код тех же пакетов гошных.
спасибо!)
как-то забыл про сайты подобного рода)


Ivanov
28.08.2018
06:16:00
Здравствуйте, может кто поможет.
Такая ситация, делаю коннект по tcp до постгреса, который на удаленном сервере лежит, но он отваливается, каждые 10-15 минут и нужно перезапускать приложение. Кто скажет в чем причина?
Либу использую: https://github.com/lib/pq , ошибка connection timed out

Jack
28.08.2018
06:30:12

Leonid
28.08.2018
06:42:21
если первое, что читаем по слову вендоринг
ну и вчерашняя статья на хабре
хороший перевод

Jack
28.08.2018
06:43:22

Artem
28.08.2018
07:21:22
Снова про тесты и сервис с cobra
если я в функции теста вызвыаю
cmd.Execute - то запускается приложение
но оно висит и никак я его не могу остановиться по заверешнию теста
сделал так
func Exit() {
os.Exit(1)
}
но после cmd.Execute - cmd.Exit ничего не делает, я так понимаю из за того что они не видят одну и туже аппу?

Artem
28.08.2018
07:46:52

Artem
28.08.2018
07:47:26
именно сама аппа нет

Artem
28.08.2018
07:47:46
а кто слушает

Daniel
28.08.2018
07:48:19
аппа, конечно, слушает, стандартной либой
и реагирует стандартно

Alex
28.08.2018
07:54:47
Всем привет

Google

Alex
28.08.2018
07:55:11
тут есть кто на go тунель поднимал ?
по вот этому типу https://github.com/bigeagle/gohop/

Artem
28.08.2018
08:08:45
как ее кильнуть по завершению теста?

Aleksandr
28.08.2018
08:11:51
вот такой проект есть для любителей vscode
https://github.com/VSCodium/vscodium

Roman
28.08.2018
09:25:19

Admin
ERROR: S client not available

Artem
28.08.2018
10:23:35

Roman
28.08.2018
10:27:12

Artem
28.08.2018
10:27:40

Roman
28.08.2018
10:31:42

many-faced
28.08.2018
10:42:13
Народ, подскажите, для sql траззакций, для tx.Commit() Есть возможность вылавливать что-то помимо невнятного текста "Could not complete operation in a failed transaction" ?
Как понять что причина ошибки

Илья
28.08.2018
10:44:04
проверять ошибки в операциях до коммита?

many-faced
28.08.2018
10:46:06
они не сыплются до коммита
например, ошибка, как я вижу глазами, связана с constraints в таблице. И, судя по всему, это именно на этапе коммита и выясняется.
*а может и нет.

Максим
28.08.2018
12:09:33
go-playground/validator
Ошибка Key: 'User.Email' Error:Field validation for 'Email' failed on the 'email' tag
Код
type User struct {
Id uint `json:"id" gorm:"primary_key,AUTO_INCREMENT"`
Email string `json:"email" gorm:"type:varchar(100);unique_index" validate:"required,email"`
Password string `json:"password" gorm:"type:varchar(255);" validate:"required"`
}

Maxim
28.08.2018
12:59:50

Aleksandr
28.08.2018
13:09:09

many-faced
28.08.2018
13:09:59

Google

Alexey
28.08.2018
13:43:28
Привет всем! Подскажите пожалуйста, как быть в такой ситуации:
Описал структуру
type client struct {
apiKey string
secretKey string
}
Сделал её приватной чтобы объект было можно создать только через метод
func GetClient(apiKey string, secretKey string) *client {
client := new(client)
client.apiKey = apiKey
client.secretKey = secretKey
return client
}
Теперь в другой структуре я хочу указать *client, но не могу этого сделать так как тип приватный. Как обычно поступают в подобных ситуациях?

Aleksandr
28.08.2018
13:46:14
ну если ты его сделал приватным (то есть не хочешь, чтобы его могли юзать в других пакетах), то что ты хочешь?

Roman
28.08.2018
13:47:20

Alexey
28.08.2018
13:48:23

Aleksandr
28.08.2018
13:49:37

Alexey
28.08.2018
13:50:16

Abdulla
28.08.2018
13:50:22

Alexey
28.08.2018
13:50:51

Aleksandr
28.08.2018
13:51:10
Интерфейсыыыыыы
чем помогут интерфейсы в проблеме обязательности установки полей?

Igor
28.08.2018
13:51:28

Aleksandr
28.08.2018
13:51:47

Alexey
28.08.2018
13:52:00

Abdulla
28.08.2018
13:52:09

Roman
28.08.2018
13:52:41

Igor
28.08.2018
13:53:17
ну так если пакет другой, то только делать структуру экспортируемой

Alexey
28.08.2018
13:53:33