写点什么

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:071308
用户头像

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

关注

评论

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

(二)3.1.9 生产“稳”担当:Apache DolphinScheduler Worker 服务源码全方位解析

白鲸开源

大数据 开源 源码解析 Apache DolphinScheduler 任务调度

即时通讯安全篇(三):一文读懂常用加解密算法与网络通讯安全

JackJiang

网络编程 即时通讯 IM

AI低代码MES:破解电线电缆行业管理的五大痛点

万界星空科技

数字化管理 mes 万界星空科技mes 电线电缆mes AI低代码MES

YashanDB数据库在大数据时代的核心竞争力探讨

数据库砖家

烟草专卖执法案卷评查系统实现全流程高效管理与精准评查

中烟创新

YashanDB数据库在非结构化数据处理中的应用

数据库砖家

跨境商家怎么精准找到目标消费群体,开拓新市场?

Wolink

跨境电商 海外推广 品牌出海 沃链Wolink 达人营销

2025年9月应用指南 | Smartbi AIChat 白泽,企业级 AI Agent 智能体新一代分析工具

新消费日报

YashanDB数据库在大数据时代的变革与发展机遇

数据库砖家

YashanDB数据库在电商行业的应用优势与关键技术

数据库砖家

从MESA模型到锁升级:synchronized性能逆袭的底层逻辑

poemyang

并发编程 Java并发编程

上下文工程实施过程中会遇到什么挑战?有哪些优化策略?

Baihai IDP

AI LLM AI Agent 上下文工程

区块链U卡APP的开发需求

北京木奇科技有限公司

区块链开发 web3开发 APP开发公司

企业内训 | 构建高效智能测试团队,实现从传统到智能化升级

测试人

人工智能 软件测试

智能问数 Agent 如何确保 SQL 生成 100% 准确?

Aloudata

数据分析 大模型 指标平台 ChatBI 智能问数

YashanDB数据库在大数据环境中的应用价值解析

数据库砖家

区块链U卡APP开发的技术难点

北京木奇科技有限公司

区块链开发 软件外包公司 web3开发

非凸科技钻石赞助RustChinaConf 2025 & Rust Global China大会

非凸科技

YashanDB数据库在金融行业的数据安全应用分析

数据库砖家

(一)3.1.9 生产“稳”担当:Master 服务启动源码全方位解析

白鲸开源

大数据 开源 科技 Apache DolphinScheduler 任务调度

vivo 浏览器福利体系架构演进之路

vivo互联网技术

后端 数据一致性 可扩展 超大流量 可复制

Qwen 发布高精度实时音视频同传模型;AirPods 实时翻译功能新增中文丨日报

声网

YashanDB数据库在大数据时代的实用价值解析

数据库砖家

spirv 的指针

Miracle

YashanDB数据库在大数据环境下的优化技巧

数据库砖家

YashanDB数据库在电商行业的应用价值分析

数据库砖家

YashanDB数据库在高并发环境下的应用挑战

数据库砖家

YashanDB数据库在金融交易中的效率提升分析

数据库砖家

YashanDB数据库在金融行业的实际应用探讨

数据库砖家

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