QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

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

  • 2014-02-25
  • 本文字数:1158 字

    阅读完需:约 4 分钟

Prismatic 向其 Clojure 数据描述库即 Schema 0.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

2014-02-25 20:07930
用户头像

发布了 256 篇内容, 共 87.7 次阅读, 收获喜欢 12 次。

关注

评论

发布
暂无评论
发现更多内容

什么是真正的低代码?

codebee

低代码

产品研发管理和研发项目管理的区别是什么

爱吃小舅的鱼

项目管理 研发管理

提升项目执行效率:9款项目进度计划安排系统推荐

爱吃小舅的鱼

项目管理 项目管理软件 项目进度计划 项目进度计划安排系统

为什么企业应该选择WorkPlus作为即时通讯平台?

BeeWorks

JetBrains IntelliJ IDEA 2024.3 (macOS, Linux, Windows) - 领先的 Java 和 Kotlin IDE

sysin

JetBrains IDEA

2024年最受欢迎的8款HR人事薪酬系统评测

易成研发中心

项目管理中,范围管理和需求管理的区别

易成研发中心

需求管理 需求管理软件

精选9款项目计划进度系统,提升管理效率

爱吃小舅的鱼

项目计划 项目计划管理 项目计划进度系统

SecureCRT for mac(终端SSH仿真工具)

Mac相关知识分享

智能座舱时代,吕布骑上了AI「赤兔马」

白洞计划

AI 智能汽车

智能座舱时代,吕布骑上了AI「赤兔马」

脑极体

AI

怎样挑选适合的电子合同系统?6款免费方案推荐

爱吃小舅的鱼

电子合同系统

WorkPlus:提升企业效率的im即时通讯平台解决方案

BeeWorks

WorkPlusIM即时通讯平台:构建生态化的全方位办公解决方案

BeeWorks

IM即时通讯平台哪家好?选择WorkPlus行业领先的解决方案

BeeWorks

小公司该如何做好项目管理工作

爱吃小舅的鱼

项目管理

PTGui Pro for Mac(全景图拼接制作工具)

Mac相关知识分享

互联网 Java 面试八股文汇总(2024 最新整理,持续更新)

采菊东篱下

java面试

即时通讯平台-企业IM软件|WorkPlus专注于政企办公的im即时通讯平台

BeeWorks

为什么对标准的要求会越来越低

Bruce Talk

系统思考 System Thinking

鸿蒙NEXT开发案例:二维码的生成与识别

zhongcx

鸿蒙

哪些电子合同系统最适合企业使用?7款平台对比分析

爱吃小舅的鱼

电子合同系统

Go语言中json序列化的一个小坑,建议多留意一下

左诗右码

Pixelmator Pro for Mac(修图软件图像编辑工具)

Mac相关知识分享

DoH与DoT协议:增强DNS安全性的双保险

代码忍者

即时通讯平台-音视频即时通讯平台就选WorkPlus

BeeWorks

ShardingSphere Proxy 适配 MySQL addBatch/executeBatch 数组结果实战

端小强

ShardingSphere

发现10款有效的项目进度计划系统:全面推荐

爱吃小舅的鱼

项目管理 项目计划 项目计划进度系统 项目计划进度

MacBook Air M3推荐什么硬盘? 为什么新买的硬盘MacBook Air不能读

阿拉灯神丁

MacBook 硬盘 Tuxera NTFS2023 NTFS 磁盘管理器 磁盘工具

别想消灭证据!U盘直接拔掉怎么恢复丢失的数据?超实用技巧一键恢复

阿拉灯神丁

U盘启动盘 EasyRecovery 数据恢复软件 EasyRecovery16 数据丢失

Prismatic向Schema 0.2中添加了数据类型强制转换_后端_Tom Coupland_InfoQ精选文章