集成有效果的和持久的

主要观点:Bellroy 的技术团队精心挑选用于代码库的库和技术,本文聚焦于effectful效应系统库和persistent数据库访问库的实验交互。
关键信息:

  • effectful可定义“效应”,如Console效应,通过makeEffect生成相关函数,程序员可利用这些函数编写代码并跟踪使用的效应,还可提供多个效应处理程序。
  • 实验在新项目中进行,persistenteffectful结合有挑战,因其类型类与MonadIO耦合,而效应系统的价值在于跟踪执行的效应。
  • 定义了Persist效应,其参数为后端,仅用于持有persistent操作,还提供了直接提供后端和从资源池获取后端的处理程序。
  • 使用Persist backend效应很简单,如插入数据。
    重要细节:
  • Console效应的定义及相关函数生成示例。
  • effectful实验中对Persist效应的需求及特性。
  • Persist效应的定义及生成函数的代码。
  • runPersistDirectrunPersistFromPool的实现代码。
  • 使用Persist backend效应的示例代码。
    结论:此方法在实验中效果较好,能较好捕捉程序员意图、快速设置等,但也有明显不足,如可能混入任意IO操作、效应本身不透明、易忽略资源池共享等,作为实验技术总体较满意,可随时细化效应定义。
阅读 5
0 条评论