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 up over time from the minimal solution to a 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.