NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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

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

关注

评论

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

100% 展示 MySQL 语句执行的神器-Optimizer Trace

程序员历小冰

MySQL 28天写作 12月日更

【安全漏洞】CVE-2021-42287&CVE-2021-42278 域内提权

H

网络安全 信息安全 漏洞

从渔夫和游客说到晒太阳的狗狗派

mtfelix

28天写作

kali系统之复现漏洞分析与审计

网络安全学海

黑客 网络安全 安全 信息安全 渗透测试

Gin-Vue-Admin 使用gin+vue进行极速开发的全栈开发基础平台【gva第一节】

坚果

Go 28天写作 Vue 3 12月日更

Netflix系统架构

俞凡

架构 微服务 netflix 大厂实践

《权力——为什么只为某些人拥有》读书笔记

圣迪

特质 权力 影响力

Dubbo 框架学习笔记十二

风翱

dubbo 12月日更

数据管理典范!「山东城商行联盟数据库准实时数据采集系统」入选2021中国大数据应用样板案例

DataPipeline数见科技

大数据 数据同步 数据融合 数据迁移 数据管理

linux动态链接的程序如何在其他系统上运行

SkyFire

动态链接 装载器

注意:字符串substring方法在jkd6,7,8中的差异

CRMEB

HDZ城市行深圳站 | AIoT时代,如何抓住智联生活的战略机会点?

华为云开发者联盟

AIOT HarmonyOS 华为云IoT 智联生活 PLC-IoT

什么是 AQS 及源码分析

Ayue、

AQS

在线上传图片二维码识别解析

入门小站

工具

架构实战营模块三课后作业-外包学生管理系统架构文档

Jude

架构实战营

Linux 命令 less 全知全会

hedzr

Linux less

模块三-架构文档

撿破爛ぃ

「架构实战营」

Spark-概览

xujiangniao

FFmpeg的一些使用实践

为自己带盐

ffmpeg 28天写作 12月日更

荐书📚——《剑指Offer》专项突破版

宇宙之一粟

推荐书籍 12月日更

HarmonyOS(鸿蒙)——单击事件的四种写法

李子捌

28天写作 21天挑战 鸿蒙系统 12月日更

儿童教育有感-说话用词不当

wood

28天写作

Spring核心原理之 IoC容器中那些鲜为人知的细节(3)

Tom弹架构

Java spring 源码

git tips(qbit)

qbit

git #Github

Kubernetes 集群部署 Metrics Server 获取集群 Metric 数据

zuozewei

Kubernetes 性能监控 12月日更

Linux之which命令

入门小站

Linux

模块四-reids存储方案

撿破爛ぃ

「架构实战营」

【Java 进阶训练营】 JVM 知识总结

wgl

[架构实战营] 模块三作业

Geek_0ed632

「架构实战营」

HarmonyOS(鸿蒙)——双击事件

李子捌

28天写作 21天挑战 鸿蒙开发 12月日更

程序员做技术管理需要懂哪些方面?

Seven的代码实验室

程序员 技术管理

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