2008-10-27 53 views
8

我正在寻找在不使用repeating yourself的情况下在不同地点使用相同数据的最佳做法 - 这可能包括配置或业务规则。如何在语言之间共享配置信息或业务规则

示例1.您要在客户端上使用javascript验证的数据验证规则,但您希望通过服务器上的验证来确认。

示例2.数据库访问您的Web服务器和您的cronjobs使用相同的密码,用户名。

易于处理和人性化的解决方案将是一个优点。

+0

这不是通常意义上的“配置”。这是代码。请放下“配置”,在代码中加入“代码”或“业务规则”或其他内容。 – 2008-10-27 13:27:04

+0

我已将业务规则添加到标题和标签,但我认为配置适用于第二个示例。例如,MySQL将.my.cnf文件(包括用户,密码,主机等)称为配置文件。 – Ken 2008-10-27 14:30:32

回答

6

将您的数据编码为JSON。对于任何您想要的语言,都有一个JSON库,如果不是,那么编写一个代码非常容易。如果JSON不够,请查看YAML

+0

我认为这只适用于示例2(数据),而不适用于示例1(逻辑)。 – 2008-10-27 13:23:31

+0

如果你想完全不依赖语言,那么你将不得不在某种数据中编码逻辑。当然,你可以一路走,并使用Lisp S表达式,所以你的代码*是*数据。 :-) – 2008-10-27 13:41:57

3

XML在全球范围内非常普遍。易读,易写,易读。如果您担心空间开销(如果您想要人类可读的话,实际上并不是这样),然后在发送之前将其压缩,XML压缩得相当好。

0

尽管讨厌分享数据验证规则,但我不得不说Regular Expressions。我知道,我知道,每个人都讨厌他们,但他们(通常)是语言不可知的。

0
  1. 使用O/S环境变量(envvars中)来存储应用程序的配置信息(诸如分贝密码)

  2. 验证规则通常需要的逻辑。你可以用JavaScript编写规则,然后在浏览器,服务器(使用Nashorn)和数据库(使用Postgres的PLV8)中运行它们。