如何在不同语言之间共享配置信息或业务规则

时间:2008-10-27 13:11:46

标签: language-agnostic configuration dry business-rules

我正在寻找在不使用repeating yourself的情况下在不同地方使用相同数据的最佳做法 - 这可能包括配置或业务规则。

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

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

易于处理和人类可读的解决方案将是一个加分。

5 个答案:

答案 0 :(得分:6)

JSON中对您的数据进行编码。有一个JSON库几乎可以解释你想要的任何语言,或者如果没有,它很容易编写一个。如果JSON不够,可以查看YAML

答案 1 :(得分:3)

XML非常全球化。易于阅读,易于编写和人类可读。如果您担心空间开销(如果您想要人类可读的话,实际上并不是这样),那么只需在发送之前对其进行压缩,XML就可以很好地压缩。

答案 2 :(得分:2)

查看this question的答案。我认为它们适用于此处,尤其是the one with a DSL

答案 3 :(得分:0)

尽管他们非常讨厌,但为了共享数据验证规则,我将不得不说Regular Expressions

我知道,我知道,每个人都讨厌他们,但他们(通常)与语言无关。

答案 4 :(得分:0)

  1. 使用O / S环境变量(envvars)存储应用程序配置信息(例如数据库密码)

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