Functional Architecture is architecture based on functional programming, which is quite different from traditional OO architecture. This talk highlights common aspects of applications that highlight those differences:
- functional UI programming
- functional database programming
- functional I/O
Target Audience: Architects, Developers
Prerequisites: Basic OO knowledge
These aspects seem inherently imperative, as they involve interaction with the (stateful) outside world. Yet, they still admit purely functional approaches, which have major advantages over traditional OO designs: easier testability, composability, and control over side effects. Moreover, functional architecture allows formulating general properties of the domain model, and automatically generating tests from them – this adds robustness to the mix. I'll show what those approaches are (purely functional views and streams) and explain their advantages.