编程语言独立模型验证

Rol*_*and 6 javascript ruby architecture validation scala

假设您在基础架构中使用了几种不同的编程语言和框架来处理大量流量等.

示例堆栈:

  1. 事件驱动的API服务器(使用Scala,node.js,Ruby EM)
  2. 标准的完整堆栈webapp(例如Rails)
  3. (也许更多技术)

当使用不同的语言和框架时,我通常最终会复制大多数模型验证,因为每个"客户入口点"都需要验证其输入.保持同步当然是一种痛苦.

没有像CORBA这样的东西你会如何处理?

Nat*_*ard 6

您最好的选择是允许您以与语言无关的格式(如JSON)指定模型验证的框架.您最终可能会得到各种验证架构,例如:

{
  "name": [
    {
      "validate": "length",
      "minLength": 6,
      "maxLength": 10
    },
    ...
  ],
  ...
}
Run Code Online (Sandbox Code Playgroud)

然后,您将拥有可以解析此格式的特定于语言的验证器.验证器只需要编写一次,然后为每个模型维护一个模式.

但是,这可能听起来很像CORBA/SOAP/Thrift/ProtocolBuffers/etc.在此刻.那是因为它们是为解决这些类型的问题而编写的,如果你自己编写,你最终会重新发明一些轮子.

  • @Bakudan - 它可能已经开始使用JavaScript - 而且,它早已打破了JavaScript的界限,并成为一种跨语言,跨平台的通信协议. (3认同)
  • 你的答案非常好,但我无法抗拒 - JSON代表JavaScript Object Notation,并没有多少不可知论者...... (2认同)