
Anatoliy
17.12.2017
18:57:09

Alexander
17.12.2017
18:58:29
вообще все orm на go сильно уступают популярным orm к примеру с того же php (doctrine... )

Anatoliy
17.12.2017
19:01:15
не, мне кажется я все же что-то не до конца понимаю, gogs вроде умеет постгрес, но там вполне нормальные модели с помощью которых и работают с БД

Google

Mykyta
17.12.2017
19:01:22

Anatoliy
17.12.2017
19:01:40

Alexander
17.12.2017
19:02:04
называется alias
Alias(alias string)

Mykyta
17.12.2017
19:02:19

?
17.12.2017
19:02:30

Mykyta
17.12.2017
19:02:56
еще у модели может быть метод TableName() string, где тоже самое можно писать

Alexander
17.12.2017
19:03:20

?
17.12.2017
19:03:50
Я неясно выразвился?
Скорее ясно, но было бы кстати пояснение невфагам в чем отличие от юзания горм для билдера запросов и КАК ОРМ?

Anatoliy
17.12.2017
19:04:33

?
17.12.2017
19:04:57

Google

Mykyta
17.12.2017
19:05:05

Alexander
17.12.2017
19:05:38

Anatoliy
17.12.2017
19:06:46
щас будем пробовать)

Alexander
17.12.2017
19:10:25
брехня же
Учи язык ;)
https://play.golang.org/p/6DVRoid_IW

Anatoliy
17.12.2017
19:12:32
ну пока паника, впрочем я еще не поработал со структурой для самого xorm

Mykyta
17.12.2017
19:16:21

Anatoliy
17.12.2017
19:22:28
Эм... вот структура:
type User struct {
UserID int `json:"user_id,omitempty" xorm:"user_id"`
Username string `json:"username" xorm:"username"`
Password string `json:"password" xorm:"password"`
Admin bool `json:"admin,omitempty" xorm:"admin"`
Email string `json:"email",xorm:"email"`
Banned bool `json:"banned,omitempty" xorm:"banned"`
CreatedAt *time.Time `json:"created_at,omitempty" xorm:"created_at"`
LastLogin *time.Time `json:"last_login,omitempty" xorm:"last_login"`
RefreshToken string `json:"refreshToken,omitempty" xorm:"refreshToken"`
}
почему ошибка вылезает про uuid?
pq: invalid input syntax for uuid: ""
а так вроде запустил, щас еще эту ошибку поборю и по идее будет работать

Savely
17.12.2017
19:28:36

Phil
17.12.2017
19:47:01
Запутался. Если я map записал, а потом только читаю, можно это без локов делать?

Alexey
17.12.2017
19:48:06

yuriy
17.12.2017
19:50:49
вопрос
почему голанг в TIOBE падает?

Phil
17.12.2017
19:51:32

Alexander
17.12.2017
19:52:51

Anatoliy
17.12.2017
19:53:02
В общем нечто такое выходит при инсёрте через xorm:
[xorm] [info] 2017/12/17 22:51:30.037620 [SQL] INSERT INTO "auth"."users" ("user_id","username","password","admin","email","banned","created_at","last_login","refreshToken") VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9) []interface {}{0, "user8", "pass3", false, "email8@visteras.ru", false, interface {}(nil), interface {}(nil), ""}
всё странно как по мне...

Alexey
17.12.2017
19:55:50

Mykyta
17.12.2017
19:57:17

Phil
17.12.2017
19:59:14

Google

Mykyta
17.12.2017
20:00:12

Alexander
17.12.2017
20:02:43

Phil
17.12.2017
20:02:50
С файлика считываются. Меняются редко

Mykyta
17.12.2017
20:03:48

Phil
17.12.2017
20:07:54

Mykyta
17.12.2017
20:09:04
Почему?
ну потому, что мепа очень плохо описывает структуру хранимых данных, особенно если они древовидные или еще какие-то.

Alexey
17.12.2017
20:10:24
Для простого конфига мапа самое то, лучше только структура.

Phil
17.12.2017
20:15:06

Mykyta
17.12.2017
20:15:33
А что мешает сделать []Token?

Phil
17.12.2017
20:18:02
Скорость перебора?

Oleh
17.12.2017
20:18:19

Mykyta
17.12.2017
20:19:10

Phil
17.12.2017
20:19:34
Не могу сообразить с обработкой ошибок. Вот есть у меня функция работы с базай данных. Надо проапдейтить запись. Если ее нет - одна ошибка. Если база глюканула - другая. Тащить свой интерфейс на основе error или вообще забить на error?

Александр
17.12.2017
22:26:43
мне кажется всегда отдаешь просто ошибку, там обработчик на фатал
что бы разрулить это на уровне клиентского кода надо проверочку впилить отдельной функции
не убедился - сам дурак
вместо db.update() аля if db.exist() { err := db.update() if err != nil { log.Fatal(err) } }
@schors

Phil
17.12.2017
22:34:45
Да фатал ладно. У меня там может io error быть и ощибка формата, и отсутствие записи. Это три ошибки, два разных кода ответа в http. Я к тому, что забить на станлариный error и тащить код ошиьки? Я думал отдельный интерфейс сделать, но этл оверкоммии какойто

Google

nezorflame
17.12.2017
23:38:04
в стандартной sql их всего 3, правда

Phil
17.12.2017
23:39:46
type SyntaxError struct {
msg string // описание ошибки
Offset int64 // произошедшая ошибка после чтения Offset bytes
}
func (e *SyntaxError) Error() string { return e.msg }
if err := dec.Decode(&val); err != nil {
if serr, ok := err.(*json.SyntaxError); ok {
line, col := findLine(f, serr.Offset)
return fmt.Errorf("%s:%d:%d: %v", f.Name(), line, col, err)
}
return err
}
понял

nezorflame
17.12.2017
23:40:39
ну или так
можно еще заворачивать ошибки с помощью https://github.com/pkg/errors/

Александр
18.12.2017
00:12:30
мне не нравиться сама идея плодить и перехватывать бизнесовые ошибки в либе
а обновление не существующей записи бизнесовая ошибка

Admin
ERROR: S client not available

Александр
18.12.2017
00:13:35
пс пишу с утюга, сорри за ошибки

Alexey
18.12.2017
04:08:23

Vania
18.12.2017
05:53:46
Если в 11-ой строке преобразовать e в float64, тогда всё норм.
Или если %v поменять на %e.

Vladimir
18.12.2017
06:37:22
Или если %v поменять на %e.
Потому что %v для error будет печатать строку. Ты из метода, печатающего строку вызываешь метод печатающий строку
Но так ваще не очень делают
Как вот у тебя выше

Vania
18.12.2017
06:53:09
Спс.

Slayer
18.12.2017
07:10:45
Подскажите - как React к го проэкту прикрутить нативно? Не через babel

Alexey
18.12.2017
07:31:23

Vladimir
18.12.2017
07:32:01

Google

Alexander
18.12.2017
07:51:27

Phil
18.12.2017
08:03:18

Ilya
18.12.2017
08:06:40

Alexey
18.12.2017
08:07:49

Phil
18.12.2017
08:08:55
Ну это лдадно. Мне из транзакции надо отдать бла запись или нет или вообще ошибка базы

Alexey
18.12.2017
08:11:49
Ну это лдадно. Мне из транзакции надо отдать бла запись или нет или вообще ошибка базы
Тогда я бы сделал ErrNotFound для случая, когда записи нет, и просто пробрасывал бы ошибку - для случая ошибки базы (ну там коннект упал, или диск сдох).
Т.е., переменные для ошибок, которые на что-то влияют и которые можно обработать, и просто ошибка - когда всё пропало.
Ну и в обработчике
if err == db.ErrNotFound {
// do what needed
} else if err != nil {
panic("Шеф, усё пропало")
}

Александр
18.12.2017
08:11:52

Slayer
18.12.2017
08:13:16
добавил, но в моем app.jsx запись вида
import React from 'react'; не работает тогда

Ilya
18.12.2017
08:13:49
переходи на vue пока не поздно

Slayer
18.12.2017
08:13:58
зачем?

Alexey
18.12.2017
08:14:05

Phil
18.12.2017
08:18:11

Alexander
18.12.2017
08:19:56

Alexey
18.12.2017
08:20:04
Не совсем понял db.ErrNotFound - это что физически?
package db
var ErrNotFound = errors.New("something was not found")
func doMyTx() error {
blablabla
if твоя_ошика_которую_надо_обработать {
return ErrNotFound
}
blablabla
if совсем_всё_плохо {
return err
}
}

Alexander
18.12.2017
08:20:50

Alexey
18.12.2017
08:21:21