Size: a a a

2020 April 27

DP

Daniel Podolsky in Go-go!
Dmitry Zherebko
зачем писать свогер спеку, если можно просто писать код?
это, по-моему, NIH-синдром
источник

DZ

Dmitry Zherebko in Go-go!
Кстати, использование свогера неплохая альтернатива что бы не городить свой костыль, как мы это сделали.
источник

ЛА

Локоть Анатолий... in Go-go!
Dmitry Zherebko
коменты быстро аутдейтед будут
А как у вас работает генерация спеки из кода без комментов сейчас?
источник

🍆💦

🍆 💦 in Go-go!
Мимо Проходящий
ByIDGetter, WhereNameLikeSelecter, CatByTailUpdater и т.п. Хорошо отражает уродливую суть паттерна "репозиторий"
```type Databaser interface {
 GetByID(id ID) (Entity, error)
 SelectWhereNameLike(pattern string) ([]Entity, error)
 UpdateByTail(tail Tail, update Update) error
}```
если нарочито делать уродливо, то и получается уродливо, вы правы
источник

AP

Andrey Privalov in Go-go!
Eduard Korolev
ставите ли вы контексты с таймаутом на выполнение http запросов в микросервисах?
Концептуально, любые запросы "на сторону" должны обкладываться таймаутами. Даже если вы идете в свой же соседний сервис. Так как есть этап, который вы не контролируете, например - сеть
источник

DZ

Dmitry Zherebko in Go-go!
Локоть Анатолий
А как у вас работает генерация спеки из кода без комментов сейчас?
роуты в таком формате описываются,
потом из этого кода выводятся тип реквеста и респонса для сервиса ну и выходит вся мета инфа которая надо что бы сгенерить свогер спеку
источник

D

Darwin in Go-go!
Dmitry Zherebko
зачем писать свогер спеку, если можно просто писать код?
зачем писать бойлерплейт код, если можно обозначить в спеке что тебе нужно?
источник

D

Darwin in Go-go!
и она сгенерит тебе и модели, и валидации какие надо и контроллеры
источник

D

Darwin in Go-go!
и даже мидлварю для авторизации
источник

DZ

Dmitry Zherebko in Go-go!
хз, мне в свогере не удобно описывать модели, схемы, роуты
источник

DZ

Dmitry Zherebko in Go-go!
надо еще генерацию запускать
источник

D

Darwin in Go-go!
Dmitry Zherebko
роуты в таком формате описываются,
потом из этого кода выводятся тип реквеста и респонса для сервиса ну и выходит вся мета инфа которая надо что бы сгенерить свогер спеку
а как матчить роуты с переменными?
источник

D

Darwin in Go-go!
/users/:id аля такие
источник

DZ

Dmitry Zherebko in Go-go!
через теги в структуре
источник

DZ

Dmitry Zherebko in Go-go!
struct Request{
id: ‘http:”url.id”`
token: http:”header.token”
}
источник

ЛА

Локоть Анатолий... in Go-go!
Dmitry Zherebko
роуты в таком формате описываются,
потом из этого кода выводятся тип реквеста и респонса для сервиса ну и выходит вся мета инфа которая надо что бы сгенерить свогер спеку
Понятно. можно тоже генерить сваггер из сущностей, помеченных комментом
// swagger:model
источник

МП

Мимо Проходящий... in Go-go!
🍆 💦
```type Databaser interface {
 GetByID(id ID) (Entity, error)
 SelectWhereNameLike(pattern string) ([]Entity, error)
 UpdateByTail(tail Tail, update Update) error
}```
если нарочито делать уродливо, то и получается уродливо, вы правы
а нафига всё это пихать в один интерфейс? бессмысленно. И как по вашему сделать не нарачито уродливый интерфейс?
источник

DZ

Dmitry Zherebko in Go-go!
Локоть Анатолий
Понятно. можно тоже генерить сваггер из сущностей, помеченных комментом
// swagger:model
да, но код валидируется, а коменты нет
источник

DZ

Dmitry Zherebko in Go-go!
Dmitry Zherebko
да, но код валидируется, а коменты нет
я знаю, есть swaggo, есть go-swagger, форк свогера open api, kin openapi
источник

DZ

Dmitry Zherebko in Go-go!
куча всякого, но слишком сложная машинерия
источник