January 2018
Beginner to intermediate
312 pages
7h 22m
English
In the code above, we have treated calls to other contexts (such as CheckProductCodeExists and ValidateAddress) as dependencies to be documented. Our design for each substep added explicit extra parameters for these dependencies:
| | type ValidateOrder = |
| | CheckProductCodeExists // explicit dependency |
| | -> CheckAddressExists // explicit dependency |
| | -> UnvalidatedOrder // input |
| | -> AsyncResult<ValidatedOrder,ValidationError list> // output |
| | |
| | type PriceOrder = |
| | GetProductPrice // explicit dependency |
| | -> ValidatedOrder // input |
| | -> Result<PricedOrder,PricingError> // output |
You might argue that how any process performs its job should be hidden from us. Do we really care about what systems ...
Read now
Unlock full access