Size: a a a

2020 August 19

J

Jeka in Go-go!
Кто нибудь знает сколько play.golang.org может хранить расшареный код?
источник

E

Edgar in Go-go!
Я предположу, что всегда
источник

DD

Denis Dvornikov in Go-go!
господа, сугубо концептуальный вопрос.
у нас во всех сервисах происходит много маппингов из транспортных моделей в свои доменные, часто добавляются поля и есть риск всегда что-то потерять и забыть.
как вы решаете эту проблему?
источник

Y

Yaroslav in Go-go!
Denis Dvornikov
господа, сугубо концептуальный вопрос.
у нас во всех сервисах происходит много маппингов из транспортных моделей в свои доменные, часто добавляются поля и есть риск всегда что-то потерять и забыть.
как вы решаете эту проблему?
Можно написать какой-нибудь валидатор полей по схемам
источник

DD

Denis Dvornikov in Go-go!
Yaroslav
Можно написать какой-нибудь валидатор полей по схемам
например внедрить валидатор в каждый мапер и вызывать его после?
источник

Y

Yaroslav in Go-go!
я не знаю про го вей, но например как мне видится - можно написать валидатор, который принимает json-схему(например) полей, и сравнивает полученный результат маппинга с ней. Если не совпадает (новое поле/отсутствует старое), то ругаться
Да, вызывать после маппинга, например. Можно и до, на входные параметры, но здесь Вам виднее, т.к. я не знаю, как у вас маппинг работает внутри)
источник

н

немедленно in Go-go!
Denis Dvornikov
господа, сугубо концептуальный вопрос.
у нас во всех сервисах происходит много маппингов из транспортных моделей в свои доменные, часто добавляются поля и есть риск всегда что-то потерять и забыть.
как вы решаете эту проблему?
встраивание?
источник

DD

Denis Dvornikov in Go-go!
немедленно
встраивание?
в таком случае это протекание, не то что нужно
источник

VL

V L in Go-go!
Denis Dvornikov
господа, сугубо концептуальный вопрос.
у нас во всех сервисах происходит много маппингов из транспортных моделей в свои доменные, часто добавляются поля и есть риск всегда что-то потерять и забыть.
как вы решаете эту проблему?
Тесты
источник

DD

Denis Dvornikov in Go-go!
V L
Тесты
сразу нет) в таком случае нужно не забыть написать тесты на все мапперы, а это значит не забыть добавить все поля.
в общем тесты на маперы это тесты ради тестов
источник

н

немедленно in Go-go!
кодоген + тесты на кодоген
источник

VL

V L in Go-go!
🤦‍♂
источник

Y

Yaroslav in Go-go!
Denis Dvornikov
сразу нет) в таком случае нужно не забыть написать тесты на все мапперы, а это значит не забыть добавить все поля.
в общем тесты на маперы это тесты ради тестов
Валидация тоже требует не забыть все поля
В каком-то месте в любом случае нужно будет их хотя бы раз описать
источник

Y

Yaroslav in Go-go!
Тесты - хороший вариант)
источник

ЕО

Евгений Омельченко... in Go-go!
Denis Dvornikov
господа, сугубо концептуальный вопрос.
у нас во всех сервисах происходит много маппингов из транспортных моделей в свои доменные, часто добавляются поля и есть риск всегда что-то потерять и забыть.
как вы решаете эту проблему?
Описывать протокол заранее на openapi/swagger
источник

ЕО

Евгений Омельченко... in Go-go!
Тогда у клиента и сервера будет один источник истины о протоколе
источник

DD

Denis Dvornikov in Go-go!
Евгений Омельченко
Описывать протокол заранее на openapi/swagger
нету опенапи, другой транспорт. да и это не думаю что помогло бы
источник

DD

Denis Dvornikov in Go-go!
Yaroslav
Тесты - хороший вариант)
тесты тут вообще не работают.
забыл добавить поле - тесты проходят, значит все работает
источник

VL

V L in Go-go!
- Надо гарантировать, что существующий функционал работает корректно и новый добавлен тоже корректно
- Пишите тесты
- НЕТ
источник

ЕО

Евгений Омельченко... in Go-go!
Denis Dvornikov
нету опенапи, другой транспорт. да и это не думаю что помогло бы
Вам же не транспорт нужно описать, а модели. Можно протобуфом их описать. И это работает на 100%, ибо не может не работать. Клиент не сможет отправить дополнительное поле, если оно не описано декларативно
источник