Type-driven development в Rust, часть 3/5: цепочка проверок и порядок событий в типах —...
Type-driven development в Rust, часть 3/5: цепочка проверок и порядок событий в типах — от эксперта F6. Продолжаем серию о type-driven development в Rust. Во второй части типы описывали контракты между компонентами. В третьей разработчик MXDR F6 Никита Тимофеенко разбирает прием заявки на стороне биржи: перед стаканом ее ждет цепочка проверок, и состав этой цепочки записывается в тип, чтобы шлюз без обязательной проверки не компилировался, а непроверенная заявка не доходила до стакана. В третьем материале — три механизма: ▪️ type-level lists (HList); ▪️ compile-time validators; ▪️ event sourcing. Эксперт разобрал каждый по схеме: проблема ➡️ решение ➡️ хорошие практики ➡️ как это используют известные крейты. Отдельно — что типы здесь не проверяют: реплей журнала, который пришел извне, всё равно сверяется в рантайме, и где именно проходит эта граница. Примеры во всей серии — из биржевой торговли, но сами приемы работают в любом домене со сложными состояниями и правилами их изменения. ЧИТАТЬ НА HABR
Канал в каталоге Максиметера
313 подписчиков · IT и технологии