Repository Pattern with Hygienic Macros in Scheme – Lisp
6 days ago
- #Scheme
- #Repository Pattern
- #Functional Programming
- 作者在他们的Scheme项目中解决了一个常见的反模式:控制器层与SQLite实现之间的紧耦合。
- 他们实现了仓库模式,利用Scheme的卫生宏来解耦数据层和控制器层。
- 创建了两个主要宏:'define-record-with-kw'用于关键字参数构造器,以及'define-repo-method'用于灵活的嵌入式领域特定语言(eDSL)定义。
- 一个针对“项目”实体的领域eDSL示例演示了如何定义记录和仓库方法。
- 提供了一个使用Artanis的具体SQLite实现,展示了仓库模式如何将数据库逻辑与应用逻辑解耦。
- 该方法支持关键字参数和可变参数,提升了使用体验和可测试性。
- 作者寻求关于此实现的反馈以便进一步改进,并计划在多个项目中应用它。