Prismatic向Schema 0.2中添加了数据类型强制转换

Prismatic向其Clojure数据描述库即Schema0.2版本中添加了数据类型强制转换。强制转换的添加意味着该库不会只是简单地拒绝类型错误的数据,而是可以将它配置为修改实例以符合模式。

\

在Clojure中,习惯用关键词作为Map的键,也就是说,当收到JSON对象时,通常有若干样板代码来执行转换。以前,这种转换需要在试图验证请求之前执行。现在,如果模式使用关键字定义键,Schema会为开发人员处理上述过程。当然,开发人员可以编写他们自己的满足特定需求的强制转换器。伴随这项新功能,Prismatic声称这项变化使数据验证的时间减少到五分之一。

\

Schema是去年九月份发布的,其目标是“获得Clojure类型系统的诸多好处,而麻烦更少。” Clojure的core.typed库也是该语言的一个类型系统,Schema发布的时候,似乎与它形成了竞争。那时,core.typed的作者Ambrose Bonnaire-Sergeant反驳了这个观点,指出它们实际上是互补的,并在之后接受InfoQ关于core.typed的采访时重申了这一点。

\

Jason Wolfe是该库的主要作者。InfoQ获得了就Schema的未来与他进行交谈的机会。

\

InfoQ:当Schema最初发布的时候,有人认为core.typed和Schema的组合将非常强大。从那以后,您想过发展这一想法吗?

\
\

几年前,从我看到我的第一个Qi项目开始,我就一直因为Clojure的进阶类型而兴奋,而且我认为,Ambrose在促成这点方面做得非常棒。我们已经谈过,有若干方式可以使Schema与core.typed完美地结合,其中最有趣的可能是将Schema作为core.type-checked代码与未经检查的代码之间的桥梁。

\

那就是说,我很遗憾,我们还没有时间对core.typed做更深入地探究,所以,我现在没有更多的内容可谈了。

\
\

InfoQ:通过扩展实现测试数据生成听上去充满挑战,您会集成simple-check,利用test.generative,还是说Schema需要一种不同的方式?

\
\

我们还在考虑该问题。关于simple-check,我读过许多非常棒的东西,我认为这应该可行,但我们还在设法理解其实现,并弄清楚如何将额外的限制加入生成过程。此外,还可能是一个简单的生成器,用于伪随机地充实部分基准,这是我们最终在测试中经常用的东西。

\
\

InfoQ:关于从Schema定义中提取值,您有什么进一步的想法吗?

\
\

强制转换和转换极其强大,我想我们还在寻找所有因为它们而变得可行的应用。我的同事Dave Golland将在Clojure West大会上就新库“fnhouse”发表演说,该库将graph和schema结合在一起,简化了Web API构建。“coax”也会随之发布,该库会自动生成Objective C和ClojureScript模型类,以及从fnhouse API生成客户端API库。

\

之后,我们还有许多疯狂的想法,但我们还没有准备好谈论它们。

\
\

Graph是个Prismatics Clojure库,在2013年发布,用于以声明式样式表达结构化计算。

\

查看英文原文:Prismatic Adds Data Type Coercion to Schema 0.2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值