我已经仔细考虑了配置文件以及它们与代码的关系有一段时间了,我的观点似乎随着时间和风向的变化而改变。尽管我越来越多地回想起我在学习 Lisp 时第一次意识到的问题: 数据和代码之间几乎没有什么区别。对于配置文件来说,似乎更是如此。从正确的角度来看,Perl 脚本只不过是 Perl 的一个配置文件。这对于诸如 QA 之类的任务和分工(比如谁应该负责更改配置文件)来说,往往会产生相当严重的后果。
从配置文件到成熟语言的缓慢发展通常是缓慢的,而且似乎是由希望拥有一个通用系统的愿望驱动的。大多数项目开始时似乎很小,只有一些配置项,比如在哪里写日志、在哪里查找数据、用户名和密码等。但随后它们开始增长: 功能开始能够打开或关闭,时间和操作顺序开始受到控制,并且,不可避免地,有人想要开始添加逻辑(例如,使用10如果机器是 X 和15如果机器是 Y)。在某一点上,配置文件变成了一种特定于领域的语言,而且是一种写得很糟糕的语言。
现在,我已经漫无边际地走上舞台,这里是我的问题:
正如我之前所说,我对这些问题的答案不断变化,但现在我在想: