速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

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

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

关注

评论

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

AI+数智合同 | 人工智能重塑企业合同服务与管理

用友智能财务

数字化 合同 财务 数智化

Spring Boot与Spring Security集成:前后分离认证流程的优化实践

代码忍者

跬智信息(Kyligence)获评36氪“年度最具商业价值企业”

Kyligence

如何管理测试用例

易成研发中心

测试管理 测试管理工具 测试用例管理

关于 MySQL 执行计划

雄鹿 @

MySQL

EasyAnimateV5 视频生成大模型原理详解与模型使用

阿里云大数据AI技术

阿里云 AI视频 视频生成 EasyAnimate

如何提升你的技术视野?

老张

职场成长 技术实践 职场认知 技术视野

ETL工具观察:ETLCloud与MDM是什么关系?

RestCloud

系统集成 ETL 数据集成 MDM

易未央-AI 風雲:31. AI的輪迴啟示

因田木

AI 陰陽平衡

读出你的热爱:华为阅读高校花粉读书会已走进50所高校

最新动态

掌握API开发:分步实操技巧

幂简集成

API 入门指南

centos设置允许访问的ip

百度搜索:蓝易云

数字组织管理能力提升阶段的芯盾时代统一用户身份治理建设

芯盾时代

身份安全 iam 访问控制 统一身份管理平台

Maxon Cinema 4D Studio S22 for mac(C4D动画设计工具)中文版

Mac相关知识分享

测试是如何跟进和管理 bug

易成研发中心

bug bug管理

Redis】Redis的特性和应用场景 · 数据类型 · 持久化 · 数据淘汰 · 事务 · 多机部署

百度搜索:蓝易云

如何保护SpringBoot配置文件中的敏感信息

百度搜索:蓝易云

行业Know-How助力零售企业数字化转型|StartDT Talk

奇点云

零售行业

Compressor for Mac(视频转码压缩编辑工具)

Mac相关知识分享

Reallusion Cartoon Animator for Mac(2D动画设计制作软件)中文版

Mac相关知识分享

NTFS Disk by Omi NTFS for mac(NTFS 磁盘管理器)

Mac相关知识分享

AutoCAD 2019 for Mac(cad2019汉化)

Mac相关知识分享

明基 RD280U显示器——程序员之选

Yan-英杰

程序员

huggingface连接不上的解决方案

百度搜索:蓝易云

数造科技荣获2024第七届数字化转型与创新评选“大数据创新产品”奖

数造万象

敏捷开发 数据治理 数字化 数据开发 一体化平台

从cURL到多语言代码:Postman自动生成功能全解析!

LLLibra146

Python 效率 Postman 代码技巧

与火山引擎合作深化,观测云携一站式监控解决方案登陆万有商城

观测云

火山引擎

Byteman 让 i++ 百分百线程不安全

FunTester

如何选择团队网盘?企业常用的8款工具盘点

易成研发中心

Redis:分布式锁误删原因分析

百度搜索:蓝易云

一线GPMI,牵动智能大屏;一触星闪,点亮万家欢声

脑极体

AI

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