Thu 27th - 11:20 PM (Talk)
In a functional world, we can often dispense with explicit interface definitions, because a function's inputs and outputs are an implicit interface. Combining this idea with F#'s automatic generalization gives you a powerful tool for easily bolting on useful features, anywhere in your program. Caching, logging, telemetry, resiliency, backend migrations, user experimentation, feature flags/slow rollout, stress testing, and validation are examples of areas where this technique really shines, and keeps your core business logic cleanly separated and testable. This talk will sketch out a number of these ideas with F#, providing inspiration for developers to take a fresh look at how they can develop, improve, and extend their applications.