【问题标题】:Pipelines with error handling in ClojureClojure 中带有错误处理的管道
【发布时间】:2014-02-27 19:46:38
【问题描述】:

我正在寻找一种在 Clojure 中创建可组合验证和转换管道的智能方法。目的是能够使用可组合的步骤对消息进行简单的翻译和验证。

主要要求:

  • 可以按功能组合,即管道是纯函数
  • 可应用于常规 Clojure 数据类型(映射、向量、列表及其嵌套组合)
  • 可以执行转换,例如重命名地图中的键
  • 可以执行任意验证(例如,对消息的一部分应用架构验证)
  • 可以在检测到错误时优雅地退出,并返回有意义的错误消息(只是抛出异常!)

我想我可以写所有这些,但今天不想重新发明轮子:-)

是否有人知道可以做到这一点的工具,或者知道如何以一种聪明而通用的方式构建一个工具?

【问题讨论】:

  • 这听起来有点像对 monad 的描述,但我不太了解这些内容,不知道是否真的如此。
  • 是的,同意。这听起来像是 Either monad 中的计算。

标签: validation clojure message pipeline


【解决方案1】:

您可能会发现Promenade(请参阅documentation),这是我一直致力于优雅的错误处理和控制流的库,对问题中描述的一些事情很有用。

【讨论】:

    【解决方案2】:

    您可以查看 Zach Tellman 的 Lamina 库。您可以使用错误处理程序创建pipelines 函数作为其他有用的功能。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-26
      • 2017-06-13
      • 1970-01-01
      • 2013-12-10
      • 2016-02-26
      • 2017-07-20
      • 2014-08-28
      • 1970-01-01
      相关资源
      最近更新 更多