Size: a a a

2021 July 03

SB

S B in F# Chat
Я бы просто ожидал некий result {} билдер, который легко и элегантно накапливает произвольный тип 'error в 'error list.
источник

SB

S B in F# Chat
Не то, чтобы я многого прошу.
источник

SB

S B in F# Chat
Чтобы у меня где-то в коде было Left errors -> и вот тут у меня список невыполненнных требований валидации, которые не обязаны быть строками.
источник

VS

Vladimir Shchur in F# Chat
а валидация кстати вполне может быть доменной
источник

I

IdiocyAcceptance in F# Chat
Я так и не понял как сделать такое. Всё всегда падает об "совместить ошибки валидации у разных типов"
источник

I

IdiocyAcceptance in F# Chat
А плодить дополнительные типы аггрегационных ошибок не очень хочется. Такое круто было бы генерировать автоматом.
источник

I

IdiocyAcceptance in F# Chat
Типа выделить базовые доменные типы и композитные. Для базовых валидацию и типы ошибок генеришь руками, для композитных это сделает сорс генератор какой-нибудь автоматом
источник

I

IdiocyAcceptance in F# Chat
На основе набора базовых
источник

I

IdiocyAcceptance in F# Chat
Или фичами языка, но их нет
источник

SB

S B in F# Chat
Это более решаемо. Меня бы удовлетворил наследник Exception. Это не лучшее решение, но вполне терпимое и хорошо сработается с языком в целом.
источник

I

IdiocyAcceptance in F# Chat
С исключениями у меня была идея. Просто засовывать в Inner exception следующие ошибки, точнее просто создавать исключения на основе старых
источник

I

IdiocyAcceptance in F# Chat
Но что это даёт по сравнению со строками?
источник

I

IdiocyAcceptance in F# Chat
Пока вот не ясен особо профит
источник

I

IdiocyAcceptance in F# Chat
Можно засунуть в одно исключение сколько угодно и кинуть разом в месте, где создаётся валидируемый тип
источник

I

IdiocyAcceptance in F# Chat
Но это потенциально будет засирать логи ой ой ой (в случае, если мы логгируем, конечно). Хотя в целом стек только один раз будет выведен. Хз.
источник

SB

S B in F# Chat
Вопрос не в строках. Вопрос в том, чтобы был чёткий механизм,  по которому ночью в три часа можно спросонья быстро понять что не так. Для этого достаточно, например, вести линейку «кодов ошибки».
источник

IC

Ilya L Che in F# Chat
Для такого был AggregateException, вроде бы.
источник
2021 July 04

АВ

Андрей Вилинский... in F# Chat
разве там не монстрозные ДУ были? стрингли тайпед это ж для слабаков
источник

SN

Shub Niggurath in F# Chat
Ну и что ты дальше с ними сделаешь?
источник

SN

Shub Niggurath in F# Chat
Ну пока у нас нет выбора. Лучшее, что смог предложить Влашин - Validate<‘a, string []> и как очевидно по сигнатуре - это конкретный тип, а не обобщенный. Кому-то он подходит, а кому-то не подходит. Но кстати если вы забыли, то разговор начался с constrained types, а не с «надо ли делать валидацию»
источник