Repository Pattern with Hygienic Macros in Scheme – Lisp
4 days ago
- #Scheme
- #Repository Pattern
- #Functional Programming
- The author addresses a common anti-pattern in their Scheme projects: tight coupling between the controller layer and SQLite implementation.
- They implemented the Repository Pattern to decouple the data layer from the controller layer using Scheme's hygienic macros.
- Two main macros were created: 'define-record-with-kw' for keyword-argument constructors and 'define-repo-method' for flexible eDSL definitions.
- A domain eDSL example for a 'projects' entity demonstrates how to define records and repository methods.
- A concrete SQLite implementation using Artanis is provided, showing how the repository pattern decouples database logic from application logic.
- The approach supports keyword arguments and variable arity, improving ergonomics and testability.
- The author seeks feedback on this implementation for further improvement and plans to use it across projects.