2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

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

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

关注

评论

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

XTransfer技术专家亮相2024MongoDB中国用户大会

XTransfer技术

兼容M1/M2 Mac SVN客户端 Cornerstone for Mac v4.2永久激活版

Rose

Sublime Text(代码编辑器) 中文汉化版设置教程

Rose

应用开发“取经路”,华为应用市场送出全周期服务“助攻”

脑极体

AI

2023年央企安全威胁盘点

芯盾时代

身份安全 央国企数字化转型 弱口令

Azentio通过收购科威特公司Pysurance和iMOTOR,引领保险技术现代化

财见

国际营销服务内容

cts喜友科技

营销 通讯 国际营销

2024年石家庄等保测评机构名单汇总

行云管家

数据安全 等保 石家庄

iLogtail 开源两周年:社区使用调查报告

阿里巴巴云原生

阿里云 云原生 iLogtail

Microsoft Office 2019直装专业增强版 附激活工具

Rose

万字长文浅谈三高系统建设方法论和实践

京东科技开发者

更懂消费者 火山引擎数据飞轮助力乳企做好雪糕生意

字节跳动数据平台

大数据 数据分析 数据平台 火山引擎 增长营销

软件正在我们眼前悄然被侵蚀

财见

家居装修行业怎么定义?是否需要堡垒机?

行云管家

网络安全 堡垒机 装修行业

历经三年磨砺,快手交换机的自研创新之路

快手技术

人工智能 | 大语言模型应用框架介绍

测试人

人工智能 软件测试

生产进度拖延、成本高企,你还愿意继续忍受吗?

天津汇柏科技有限公司

低代码开发平台 软件定制开发 AI人工智能 生产管理

实力上榜 | 软通动力入选"2024数据要素服务商排行"榜单

财见

mac电脑办公必备软件:PDF Reader Pro 全能pdf编辑工具

Rose

火山引擎携手南开大学、中国国航、协和医院,加速各行业AI能力落地

新消费日报

亚信安慧AntDB-T数据库内核之MVCC机制

亚信AntDB数据库

AntDB 企业号 月PK

Axure RP 10 for Mac汉化版安装包 交互式原型设计

Rose

快切云桌面助力新业务快速上线!

上海锐起科技

人工智能 | 大语言模型应用框架介绍

测吧(北京)科技有限公司

测试

零基础能做Oracle数据库之间的迁移吗?

NineData

oracle 数据迁移 Oracle ACE NineData 增量迁移

从申请到调用:一步一步教你使用1688商品列表数据接口

tbapi

1688API 1688商品列表数据接口

实践分享:借助Leangoo领歌免费敏捷工具精细化Sprint Backlog管理

顿顿顿

敏捷开发 敏捷项目管理 敏捷工具 scrum工具 敏捷迭代管理

matlab R2023a中文版教程 附Matlab R2023a免费密钥(mac&win)

Rose

五连冠!浪潮云洲连续五年稳居中国工业互联网平台市场"双料第一"

财见

电商创新:基于亚马逊国际商品详情API返回值的策略

技术冰糖葫芦

api 网关 API Explorer API 策略 pinduoduo API

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