Size: a a a

2020 May 14

D🦆

Dmitry 🦆 in Go-go!
За ссылку спасибо, мне этот инструмент тоже нравится из-за specification first.
источник

RS

Roman Sharkov in Go-go!
Dmitry 🦆
Просто получается, что пока нет кода, эта спецификация "на бумаге", и в процессе написания кода будет меняться.
Выходит, что MVP мы все равно пишем постоянно перегенерируя структуры.
И не возможны некоторые подходы, когда одна и та же DTO является структурой и для ORM, и для GraphQL (но я такой подход не поддерживаю на проектах кроме совсем мелких).
> Выходит, что MVP мы все равно пишем постоянно перегенерируя структуры.

как-то так.

> И не возможны некоторые подходы, когда одна и та же DTO является структурой и для ORM, и для GraphQL

нет, так вообще нельзя делать по многочисленным причинам. Разные типы для разных предназначений.
источник

D🦆

Dmitry 🦆 in Go-go!
> так вообще нельзя делать по многочисленным причинам

за исключением проектов "на коленке". А в них этот подход сильно экономит время, а поддержка не нужна.
Но да, там уже другие языки.
источник

RS

Roman Sharkov in Go-go!
@dmitry_test  пример причины могу привести следующий: у меня очень мало моделек генерирует gqlgen, большинство я пишу сам, потому-что gqlgen не понимает, какие поля - просто данные, а какие - отдельные resolver’ы.

gqlgen генерит мне resolver method’ы для resolver полей в моделях
источник

RS

Roman Sharkov in Go-go!
например gqlgen автоматом сгенерит такую модель:

type User struct {
 Name string
 Sessions []*Session
}


но это неправильно, поскольку мы не будем resolve’ить User.Sessions сразу после того как зарезолвили User, следственно я пишу ручками:

type User struct {
 Name string
}


а потом gqlgen для меня генерирует:

func (r *userResolver) Sessions(ctx context.Context, obj *model.User) ([]*model.Session, error)
источник

RS

Roman Sharkov in Go-go!
можно конечно использовать этот тип в качестве модели для бд, но я бы так не делал.
источник

D🦆

Dmitry 🦆 in Go-go!
> но это неправильно, поскольку мы не будем resolve’ить User.Sessions сразу после того как зарезолвили User

Я про резолвинг не въехал, поэтому пока не понимаю, почему эта проблема.  Почитаю код, спасибо
источник

Д

Данил in Go-go!
Кто-нибудь знает как Нормально работать с массивом интов в sqlx?
источник

Д

Данил in Go-go!
Когда пытаешь инсертить массив, то сохраняются нули..
источник

Д

Данил in Go-go!
Так и не понял почему
источник

VM

Vladislav Milenin in Go-go!
Данил
Кто-нибудь знает как Нормально работать с массивом интов в sqlx?
куда сохраняются? приложите пример кода
источник

Д

Данил in Go-go!
r.store.db.Exec("UPDATE users SET tags = $1 WHERE id = $2", pq.Array(tags2), userID)
источник

Д

Данил in Go-go!
db - postgresql
источник

Д

Данил in Go-go!
type tags - INTEGER[]
источник

RS

Roman Sharkov in Go-go!
Dmitry 🦆
> но это неправильно, поскольку мы не будем resolve’ить User.Sessions сразу после того как зарезолвили User

Я про резолвинг не въехал, поэтому пока не понимаю, почему эта проблема.  Почитаю код, спасибо
ну суть в том что если мы запросили:

{
 user(id: “foo”) {
   name
 }
}


то мы не хотим чтоб движок автоматом грузил список сессий, ведь они не запрашивались
поэтому поле User.Sessions должно быть не полем а методом, который вызовется движком только в том случае если мы запросим сессии:

{
 user(id: “foo”) {
   name
   sessions {
     creation
   }
 }
}
источник

D🦆

Dmitry 🦆 in Go-go!
Roman Sharkov
ну суть в том что если мы запросили:

{
 user(id: “foo”) {
   name
 }
}


то мы не хотим чтоб движок автоматом грузил список сессий, ведь они не запрашивались
поэтому поле User.Sessions должно быть не полем а методом, который вызовется движком только в том случае если мы запросим сессии:

{
 user(id: “foo”) {
   name
   sessions {
     creation
   }
 }
}
Понял, спасибо. Я еще реализацию в этой библиотеке не щупал, поэтому не догнал, о чем речь. Попробую найти способ обойти этот момент.
источник

SP

Slava Pinchuk in Go-go!
а кто это
началось ревью
зато годное )
источник

Z

Zver in Go-go!
Sky Alex
За ник смайликами надо сразу навечно банить.
И за отсутствие фото в аватарке.
источник

A

Aikidos in Go-go!
Zver
И за отсутствие фото в аватарке.
+
источник

EK

Eduard Korolev in Go-go!
вопрос по поводу 12 факторных приложений, там написано логи в оутпут направлять, а если у меня разные типы логов? access логи, error логи, debug логи, как потом я все это разделю?
источник