Size: a a a

Scala User Group

2020 February 04

AS

Alex Sh in Scala User Group
Sergey Alaev
многобукв же. или у вас типы а-ля String60 ?
развесистую домен модель лучше сразу отвалидировать чтоб не забыть где-нть что-нть проверить в новом месте.
источник

SA

Sergey Alaev in Scala User Group
Alex Sh
развесистую домен модель лучше сразу отвалидировать чтоб не забыть где-нть что-нть проверить в новом месте.
вот, и вопрос в том, где хранятся метаданные для валидации. я знаю три способа - аннотации, типы, кодом. третье не годится, т.к. сложный аудит - сложно проверить, что всё валидируется
источник

AS

Alex Sh in Scala User Group
Sergey Alaev
и как впечатления?
case class FirstName(...)
case class LastName(...)
case class Description(...)
case class Person(firstName: FirstName, lastName: LastName, description: Description)

типа так?
да, так. Пока полет нормальный. Постепенно докручиваем всё более жесткие правила.
источник

λ

λoλdog in Scala User Group
Аннотации тебе тоже никак не помогут со словом «всё»
источник

AS

Alex Sh in Scala User Group
Sergey Alaev
вот, и вопрос в том, где хранятся метаданные для валидации. я знаю три способа - аннотации, типы, кодом. третье не годится, т.к. сложный аудит - сложно проверить, что всё валидируется
Код + тесты.
В будущем можт переедем на refined и его правила. Там для строк всего много встроенного.
источник
2020 February 05

λ

λoλegΥch in Scala User Group
источник

λ

λoλegΥch in Scala User Group
источник

λ

λoλdog in Scala User Group
Он там бизнес валидацию тоже предлагает выкинуть?)
источник

AS

Alex Sh in Scala User Group
источник

AS

Alex Sh in Scala User Group
у нас в Circe decoder-ах ошибки smart constructor-ов как левые части возвращаются.
источник

AS

Alex Sh in Scala User Group
λoλdog
Он там бизнес валидацию тоже предлагает выкинуть?)
бизнес-валидация это когда надо что-нть из БД считать?
источник

λ

λoλdog in Scala User Group
Alex Sh
бизнес-валидация это когда надо что-нть из БД считать?
Необязательно.   Может быть сложная модель валидации. Что если заполненно то после и оно равно этому, то это поле должно быть такое.
источник

λ

λoλdog in Scala User Group
Refined всё-таки про простую валидацию при парсинге
источник

λ

λoλdog in Scala User Group
Ну или необязательно парсинге
источник

SA

Sergey Alaev in Scala User Group
то, что он называет парсингом, по факту валидация при парсинге. преимущество в том, что невалидированные данные в принципе не могут быть в модели.
источник

λ

λλ in Scala User Group
Sergey Alaev
Кроме Олега кто-нибудь использует рефайнед массово в промышленном коде для валидации? чтобы все поля в модели - refined.
ток в конфиге
источник

AS

Alex Sh in Scala User Group
λoλdog
Необязательно.   Может быть сложная модель валидации. Что если заполненно то после и оно равно этому, то это поле должно быть такое.
не особо понял, если честно 😅
У нас например самое навороченное правило это проверка что 3 set-а не пересекаются. Сделано в smart constructor-е.
источник

λ

λoλdog in Scala User Group
Alex Sh
не особо понял, если честно 😅
У нас например самое навороченное правило это проверка что 3 set-а не пересекаются. Сделано в smart constructor-е.
Ну так это у вас.
источник

AS

Alex Sh in Scala User Group
ну прост как пример реального.
источник

λ

λoλdog in Scala User Group
Обычно рефаид за глаза хватает
источник