我在写几个地方部署的系统,每个站点都需要自己的配置和设置。 “配置”是特定站点所需的命名值(例如,数据库URL,S3存储桶名称);每个配置都是必需的,通常不会有默认配置,而且通常是字符串值。设置是一个命名值,但它只是调整系统的行为;它通常是数字或布尔值,通常有一些默认值。如何实现配置和设置?
到目前为止,我一直在使用属性文件或类似的东西,但这是一个可怕的解决方案。有几次,开发人员添加了配置需求,但没有将该值添加到实时配置文件中,因此新版本通过了所有测试,然后在发布时就失败了。
当然,对于要编译的每个文件来说更好 - 因此,如果缺少配置或错误类型,它将无法通过编译器 - 并将特定于站点的类注入到构建中每个站点。作为一个骨骼,一个Scala文件可以很容易地建模更复杂的值,特别是列表,还有映射和元组。
不足之处在于,这些文件有时由不是开发人员的人维护,所以它必须非常明了,这是属性文件的优势。 (有人向我解释XML配置:可编译文件的所有复杂性,但是属性文件的运行时风险。)
我正在寻找的是一种用于定义组所需名称和允许值的简单模式。有什么建议么?
我不明白为什么你的q uestion是scala特有的。我错过了一个重要的观点吗? – Nicolas 2011-02-03 15:32:27