Jacek worked for companies from various industries, including IT consultancy, banking & finance, car manufacturing, Intelligent Transport. After seeing the raise and fall of so many methodologies and trends, he appreciates pragmatism while still being an enthusiast.
The presentation is a story of building data access library for a functional language. Crucial design decisions and their reasons will be described, showing the process of growing it growing up over time from minimal solution to fairly feature rich product. The presentation will bring up following topics:
- place of data access mechanisms in overall application architecture and its impact on library design
- representing queries as functions; using runtime code generation to implement query execution and result mapping
- controlling side-effects and connection management with Async and Reader monad composition
- making DSL for transforming results to application-level data structures
- building dynamic query framework with templating and poor-man existential types.