💡 В математике операций всего две: сложение и дифференцирование, а в финтехе - многА 🤣
Ведь все остальные операции — производные конструкции:
– вычитание = сложение с минусом,
– деление = многократное вычитание,
– умножение = многократное сложение.
Просто и элегантно. Математика любит минимализм.
Но вот ты приходишь в проектирование и тут минимализм уже может подвести.
🤔 Почему?
Потому что если ты решаешь, что у тебя только одна операция — “прибавить сумму”, а знак указываешь внутри (+500 или –500), то на практике легко получить ситуацию:
минус на минус, и ты… внезапно прибавил, когда хотел вычесть.
(Если вы уверены, что вы-то точно такого не допустите, то я вас разочарую! Единственное, что можно гарантировать, это то, что если баг возможен-он случится! Был в моей жизни случай, когда пользователи вышли в ноль из глубокого «долга». Хорошо, хоть не в плюс.)
🔍 В чем проблема?
Система не знает, что операция была кредитная или дебетовая, если ты это явно не сказал.
А знак — не всегда надежный источник истины.
✅ Поэтому в финтехе (и не только) чаще используют другой паттерн:
операция имеет тип, а знак всегда +. credit или debit, а не просто +/-.
🎯 На мастер-классе на ProITFest мы моделировали такую ситуацию на примере компании Lumico. У сотрудников были кристаллики — за обучение, мерч, благодарности коллег.
И вот пришел Вася-архитектор и решил, что типизировать операции не надо. Так система может прожить достаточно долго: или до первого серьезного инцидента с финансовыми потерями, или до необходимости продуктовой разработки.
Вывод:
В математике — минимум операций = максимум строгости.
В проектировании — чем все прозрачнее и очевиднее, тем меньше багов и бизнес-ошибок.
Не всегда меньше — это лучше. Особенно в системах, где деньги.
⚠️NB! Думаю провести бесплатный он-лайн МК по кейсу с ProITFest. Если вам интересно, напишите +, или более развернутый коммент, чтобы я понимала, а надо ли оно…
#fintech #architecture
Post #632
572
- ❤ 8
- 👍 5
- 🔥 2