一段时间以来,我一直在考虑配置文件及其与代码的关系,根据风的日子和方向,我的观点似乎会改变。尽管我继续回到学习Lisp时的最初认识,但越来越多的东西:数据和代码之间几乎没有什么区别。对于配置文件,这似乎是双重事实。当从正确的角度看时,Perl脚本只不过是perl的配置文件。这往往会对诸如QA和分工之类的任务产生相当严重的后果,例如谁应该负责更改配置文件。
从配置文件到完整语言的爬取通常很慢,并且似乎是由对通用系统的渴望所驱动。大多数项目似乎从一些小的配置项目开始,例如在哪里写日志,在哪里查找数据,用户名和密码等。但是随后它们开始增长:功能可以被打开或关闭,操作的时间和顺序开始受到控制,不可避免地,有人要开始向其中添加逻辑(例如,如果机器是X,则使用10;如果机器是Y,则使用15)。在某种程度上,配置文件变成了特定于域的语言,并且在该语言中编写得不好。
既然我已经四处奔波,请问以下问题:
- 配置文件的真正目的是什么?
- 是否应该尝试使配置文件保持简单?
- 谁应该负责对它们进行更改(开发人员,用户,管理员等)?
- 是否应该对它们进行源代码控制(请参阅问题3)?
正如我之前所说,我对这些问题的答案在不断变化,但现在我在想:
- 允许非程序员快速更改大量行为
- 是的,任何粗粒度的内容都应该在代码中
- 用户应负责配置文件,程序员应负责配置文件和代码之间的配置层,以便对应用程序进行更精细的控制
- 不,但是中间的细颗粒应该是