@proGO

Страница 1059 из 1674
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
Table("scheme.table_name")
это нашли, но каждый раз такое указывать - такое себе как по мне

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

Alias(alias string)

Mykyta
17.12.2017
19:02:19
это нашли, но каждый раз такое указывать - такое себе как по мне
Я использую горм как билдер запросов, а не как орм, потому у меня везде такое

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
Скорее ясно, но было бы кстати пояснение невфагам в чем отличие от юзания горм для билдера запросов и КАК ОРМ?
ну ORM это все таки объекты, тогда как билдер может вернуть именно сам запрос, который еще надо выполнить и результат привести к тем объектм что тебе нужны

Google
Alexander
17.12.2017
19:05:38
has, err := engine.Get(&user) // SELECT * FROM user LIMIT 1 вот такое я как могу сделать с учетом схемы?
метод Alias можно прописать в сессии, что по тестам должно прокинуть схему всюду...

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
Учи язык ;) https://play.golang.org/p/6DVRoid_IW
а сорян, я невнимательно прочитал. Я за структуру с примитивами чего-то подумал, а не сами примитивы, чего-то глюкануло

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
Учи язык ;) https://play.golang.org/p/6DVRoid_IW
Это не язык скорее, а особенность работы библиотеки

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

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

Phil
17.12.2017
19:51:32
Читать можно параллельно
Угу. Я тут миниконфиг в мапе держать хочу. При перечитке просто ссылеу менять на саму мапу

Alexander
17.12.2017
19:52:51
вопрос почему голанг в TIOBE падает?
TIOBE учитывает запросы в поисковиках, а голанг такой простой, что ни у кого нет вопросов xd

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
Alexander
17.12.2017
20:02:43
Phil
17.12.2017
20:02:50
С файлика считываются. Меняются редко

Mykyta
17.12.2017
20:03:48
С файлика считываются. Меняются редко
тогда точно хранить это в мапе будет ошибка

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

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

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

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

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
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
пс пишу с утюга, сорри за ошибки

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

Vladimir
18.12.2017
07:32:01
%v будет дёргать Error() чтоль? Оо
Да может спросонья туплю. Надо до работы доехать и выпить кофе

Google
Alexander
18.12.2017
07:51:27
Подскажите - как React к го проэкту прикрутить нативно? Не через babel
эээ... нафига? скомпилинный bandle не проще внедрить?

Phil
18.12.2017
08:03:18
а обновление не существующей записи бизнесовая ошибка
Можно делать два запроса. Но это перфоманс. Ну нах. В принципе работа с БД всегда сложна, потому что иногда трудно оторвать особенности БД от бизнес логики.

Переменные можно сделать, или готовые взять. Типа IOError, ErrNotFound, etc.
Ну т.е. для единообразия лучше сделать? Я тут задумался, чем лучше использования error и плясок вокруг него против тупо там не знаю двух значений - errcode и errmsg

Ilya
18.12.2017
08:06:40
Подскажите - как React к го проэкту прикрутить нативно? Не через babel
В html шаблон добавь <script crossorigin src="https://unpkg.com/react@16/umd/react.production.min.js"></script>

Alexey
18.12.2017
08:07:49
Ну т.е. для единообразия лучше сделать? Я тут задумался, чем лучше использования error и плясок вокруг него против тупо там не знаю двух значений - errcode и errmsg
Для единообразия, да и не стоит отдавать бизнес-логике ошибки либы баз, вдруг решите на постгрес переехать:)

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("Шеф, усё пропало") }

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
Alexander
18.12.2017
08:19:56
Не важно. Это бессмысленная работа
вам бы архитектуру разработать а уж потом сидеть и программу на go запиливать...

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 } }

Alexey
18.12.2017
08:21:21
можно через switch (если типов ошибок дофига)
Ну там ещё блаблабла между ними, мы ж не знаем, чо там внутри транзакции ещё делается

Страница 1059 из 1674