Hog
Вот вы тут понаписали!
Hog
Можете поздравить - я теперь отец студентки :)
Doge
Roman
Roman
И надеяться, что стек не пробьет)
Shub
очень странное понятие “легко”. ты руками эти строчки извлекал или в эфшуруп extract method завезли?
Hog
😂😂😂👍
Hog
Мы его потеряли?
Shub
и еще момент по именованию. getCardOrNotFoundError - достаточно getCard, по аннотации типов и так понятно, что вернется
Roman
Shub
tryGetCard
Roman
Vasily
Shub
Shub
member this.Value = match this with Money money -> money
Shub
у тебя несколько опечаток в op_Explicit
Shub
вообще, когда сюда постили Quantity и прочие NonNegativeDecimal - это был пример, как не надо делать
Roman
Money, money, money
Must be funny
Roman
Shub
ну тип для денег - это правильно. насчет операций не уверен. у тебя может быть -1 доллар, например
Shub
чего в реальном мире не наблюдается
Roman
задолжность на счету?
Shub
отрицательный баланс. но не деньги
Roman
можно его переименовать в баланс, ок
Shub
в чем разница между Money и MoneyTransaction?
Vasily
Есть transaction
Vasily
По идее
Roman
MoneyTransaction с положительным значением внутри. Имя не самое удачное, но не придумал лучше
Vasily
На определенную сумму
Roman
можно конечно просто PositiveMoneyAmount
Ilya
А потом ещё и в транзакцию завернуть, шоб по ддд было!
Roman
ну цель-то не упороться, а сделать хорошо
Vasily
Сделать хорошо просто Sum
Shub
Shub
ты там сделал валидаторы с Result. a где аппликативы?
Shub
ты можешь иметь валидацию, не вижу проблем
Roman
она должна быть консистентной и на типах.
Shub
что в твоем понимании “консистентна”?
Roman
быть такой же, как в других местах
Roman
единообразно что было
Shub
сейчас можно складывать Money и MoneyTransaction, а MoneyTransaction и Money нельзя. это консистентность?
Shub
че, впадлу моноид сделать было?
Roman
не пришло в голову. Покажи кот!
Shub
https://github.com/atsapura/CardManagement/blob/master/CardManagement.Common/CommonTypes.fs#L76
Shub
тебе скорее надо Transaction of Money тип и операции над этим типом
Roman
почему?
Ayrat
Shub
почему?
потому что замахаешься определять методы, чтобы сделать сложение. а потом еще и умножение захочется
Shub
проценты, все дела
Roman
дык а какая разница, они будут либо в одном либо в другом типе определены
Hog
Roman
код никуда не денется
Shub
проще определить математику на Money, а на Transaction of Money определить только то, что релевантно для Transaction
Vasily
Hog
Shub
Hog
Shub
теперь другой вопрос: чем тебя не устраивает штатный Result<>?
Крылатый
Roman
Shub
у тебя есть Ok и кастомный Error
Roman
какой кастомный эррор?
Roman
тип, который в себе ошибки описывает чтоль?
Shub
https://github.com/atsapura/CardManagement/blob/master/CardManagement.Common/Errors.fs#L44
Roman
в чем проблема? Я и так использую стандартный резалт
Shub
ты ж мог иметь Ok ‘a и Failure ErrT’
Roman
Result<'a, Error>
Shub
а тебе свой придется писать
Roman
кинь ссылку, я пока не понимаю о чем ты
Ayrat
вечерняя битва двух йокодзим
Roman
присоединяйся!
Ayrat
вы бы уже облобызались, я не знаю
Ayrat
месяц прайда же
Ayrat
в дублине уже в центре без радуги шагу не ступишь
Ayrat
даже мороженое разноцветное продают