
Constantine
02.04.2017
20:20:38
нет слов )
не говорите про такое на собеседовании

LexsZero
02.04.2017
20:20:44
поэтому там теоретиически и смайлик

Constantine
02.04.2017
20:21:12
mysql 7 выйдет, для него теоретически тоже писать обертку для ошибок предсказывающих будущее?

Google

Mikhail
02.04.2017
20:22:29

Constantine
02.04.2017
20:22:43
вопрос в сравнении ошибки )
err := DB.shit()
if err == DB.SHIT_ERROR {
}

Mikhail
02.04.2017
20:24:36

Constantine
02.04.2017
20:24:57
а что бы ты сделал в другом языке?

LexsZero
02.04.2017
20:25:09

Constantine
02.04.2017
20:26:13
ссылку на пакет дайте

Mikhail
02.04.2017
20:26:37

LexsZero
02.04.2017
20:27:40
и дальше можно было бы делать что-то в духе
err := db.DoSmth()
if e, ok := err.(db.MySQLError); ok {
if e.StatusCode() == 42 {
}
} else {
log.Fatal(err)
}

Constantine
02.04.2017
20:28:21
https://github.com/go-sql-driver/mysql/issues/277
вот вам объяснение
почему так сделано

Google

LexsZero
02.04.2017
20:29:21
о, лол, а там уже есть такое

Constantine
02.04.2017
20:29:26
как я и говорил, вопрос в покрытии версий и особенностей

LexsZero
02.04.2017
20:29:28
https://godoc.org/github.com/go-sql-driver/mysql#MySQLError

Constantine
02.04.2017
20:29:40
тем более

LexsZero
02.04.2017
20:30:12
я угадал вплоть до названия типа придуманного с потолка лол

Mikhail
02.04.2017
20:54:51

Constantine
02.04.2017
20:55:36
как в коде выше делать обработку ошибки mysql и всё

LexsZero
02.04.2017
20:55:44
ну вот кастуешь как написано тут, а дальше смотришь в myerr, вроде очевидно

Constantine
02.04.2017
20:55:44
как бы ты сделал в ноде

Mikhail
02.04.2017
20:56:28

Constantine
02.04.2017
20:56:40
что именно ругается?
и как ругается

Mikhail
02.04.2017
20:59:06

Serge
02.04.2017
21:00:46
И я каждый раз забываю как это лечится. Неделю назад же лечил

LexsZero
02.04.2017
21:01:44

Serge
02.04.2017
21:01:53
Можно без удаления
Щас нам @onokonem скажет;)

Daniel
02.04.2017
21:03:40
а?

Google

Daniel
02.04.2017
21:03:43
что сказать?

Serge
02.04.2017
21:03:58
mysql.MySQLError does not implement error (Error method has pointer receiver)

Daniel
02.04.2017
21:04:33
не помню :(
надо идти глядеть?
я посреди своего, довольно глубоко
у меня вот есть волшебная структура данных:
map[string]map[int]map[string]map[int]int
есть идеоматический способ проверить, существует ли путь?

Serge
02.04.2017
21:05:10

Мерлин
02.04.2017
21:05:22

Serge
02.04.2017
21:05:50

Mikhail
02.04.2017
21:05:55

Serge
02.04.2017
21:06:36
Дык, асертить на ссылочный тип

Serge
02.04.2017
21:06:49
Звёздочку перед ним в скобках
Типа метод определен только для ссылки на тип, а не для самого типа. Парампарампам

LexsZero
02.04.2017
21:08:37

Serge
02.04.2017
21:09:13
Зато локов больше.
Тоже всегда так делаю;)
А то может там в этой ошибке собирается едрить данных в структуру. Мы же не знаем
А как на счёт какого-нибудь дискриптора для соответствующего соединения с базой? Мало ли

Google

Mikhail
02.04.2017
21:11:53

Serge
02.04.2017
21:12:11

Daniel
02.04.2017
21:12:30
и не думал :)

Serge
02.04.2017
21:12:34
?

Denis
02.04.2017
21:21:09
Все остальное выйдет через интерфейсы

Admin
ERROR: S client not available

Denis
02.04.2017
21:21:38
https://github.com/stretchr/stew
Как пример

Daniel
02.04.2017
21:22:11
Мерль, [02 Apr 2017 23:49 (02/04/17 23:50)]:
Можно ли эти мапы заменить на это?
https://play.golang.org/p/25ThcWy-ld
Daniel Podolsky, [03 Apr 2017 00:06]:
кстати, да!
ща, я подумаю немного
Daniel Podolsky, [03 Apr 2017 00:07]:
но, похоже, все получится

Denis
02.04.2017
21:23:33
Интересное решение )
Но кардинально другой же подход

Daniel
02.04.2017
21:24:18
да

LexsZero
02.04.2017
21:24:24

Denis
02.04.2017
21:24:30
все равно что map[string]int

Daniel
02.04.2017
21:24:31
я мог бы и сообразить, но затупил

LexsZero
02.04.2017
21:24:47

Daniel
02.04.2017
21:24:57
другая
но - эквивалентная

LexsZero
02.04.2017
21:25:18
не совсем

Мерлин
02.04.2017
21:25:31

Google

Serge
03.04.2017
05:39:38
andlabs/ui: Platform-native GUI library for Go.
https://github.com/andlabs/ui

LexsZero
03.04.2017
06:26:56
а что там за блобы в репе?
other Unixes: cgo, GTK+ 3.10 and newer
ну блядь
выкидывайте.

Никита
03.04.2017
07:04:52
Доброе утро
Ребят, у меня вопрос касательно тестов
Мокаете ли вы бд, если таковая в проекте используется, или при запуске тестов поднимаете тестовую базу в той же субд что и боевая, и после каждого теста очищаете таблицы?
Вариант с тестовой базой кажется довольно топорным и простым решением, но как то получается излишне много...эм..инфраструктурного кода. вроде б в гоферской среде принято делать "тесты на месте". ну, скажем, условно feed_controllers.go - test_feed_controllers.go. но столкнулся с тем, что при каждом тесте прописывать все моки..не то чтобы трудно, но это сказывается на читаемости теста


Serge
03.04.2017
07:17:27
Доброе утро
Ребят, у меня вопрос касательно тестов
Мокаете ли вы бд, если таковая в проекте используется, или при запуске тестов поднимаете тестовую базу в той же субд что и боевая, и после каждого теста очищаете таблицы?
Вариант с тестовой базой кажется довольно топорным и простым решением, но как то получается излишне много...эм..инфраструктурного кода. вроде б в гоферской среде принято делать "тесты на месте". ну, скажем, условно feed_controllers.go - test_feed_controllers.go. но столкнулся с тем, что при каждом тесте прописывать все моки..не то чтобы трудно, но это сказывается на читаемости теста
А нельзя импортнуть пакет с моками, который их в init() поднимет?


Никита
03.04.2017
07:19:47
А нельзя импортнуть пакет с моками, который их в init() поднимет?
не совсем тебя понял. для каждого теста ж мок может быть свой?
ну то есть, глобально получить sql.Db и отправить его в контроллер не проблема
я сейчас присматриваюсь к этой либе
https://github.com/DATA-DOG/go-sqlmock
и вроде все канонично - описываешь ожидания от моков. но как то хардкорно получается слишком
*глобально просто фигура речи, я не имел в виду какой то глобальный контекст
на проекте еще Gorm используется. Возможно стоит пойти с другой стороны и мокапить сам горм..
очень хотелось узнать, кто как такие проблемы решает

Alexey
03.04.2017
07:32:49
Я тестовую базу создаю прост))0)
Либо мокаю свой враппер к gorm/sql/..., который принимает обычные параметры к методам и отдаёт структуры, но всё равно там уж очень много кода получается :-/
Вангую срачик про unit-тесты vs функциональные.

Vadim
03.04.2017
07:35:18
не надо срачик, надо их вместе, а не vs :)

Никита
03.04.2017
07:37:32

Alexey
03.04.2017
07:38:48

Никита
03.04.2017
07:40:06

Alexey
03.04.2017
07:40:37
По хорошему, конечно, надо мокать, но когда у тебя приложение просто прослойка между HTTP и базой - то больше особо ничего не надо, чем проверять, что в базе поменялось то, что надо, и что вернулось всё то, что надо.