灵活性带来的问题

iceant 02-12-15

有一段时间,我很推崇配置化编程,也就是说,把变化的东西都拿出来,使用配置文件来使程序个性化和多样化。我也确实这样做过一段时间,
但是,经过一段时间的积累,这带来了一个新的问题,就是配置的可管理性。

有时一个系统的配置文件就达到十几个,管理起来很不方便。

我现在想到的,可能就是给配置文件格式定义明确的接口,然后,开发一个配置管理器。这当然会带来开发成本的进一步提高,又要投入更多的人力物力去解决这个问题。

不知道大家是如何管理自己的配置文件呢?

wys1978
2002-12-16 08:23

配置文件的名字取得好一点,一看就能知道是配置什么东东的,然后再写详细的文档,配置文件里面还要加上注释,这样就比较容易管理了,其他人也容易看懂了.最好配置文件都统一放在一个classpath目录里,十几个还是很方便管理的.

banq
2002-12-16 09:34

我看J2EE的最大变革就是大量使用配置文件,这样大型系统可以通过拼装组合在一起,专门的系统配置管理人员是需要的。如果专门一个人在做这个事情,也许就不复杂了。

jackyz
2002-12-16 10:41

可配置的方案肯定比硬编码的方案好,我想,这是大家公认的前提。所以,最起码,配置文件过多,也要比无法配置的好。在这样的前提之下,我们要做的,可能仅仅是“改进”配置方式就好了。

我的做法来自于 Jive 的方案:用一个 Singleton 的 PropertyManager 来保存系统所有的配置信息。通常由一个 ConfigLoader 从 web.xml 中、*.ini 中或者 *.properties 文件中(尽可能的采用单配置文件的方案)读取配置信息,并负责合适的将数据存到 PropertyManager 中。所有需要配置的对象都从 PropertyManager 中取回配置参数,而不是直接读取。

另外,所有的配置参数都按严格的命名规则来命名,比方 com.yourcompany.util.loger 类用到的配置参数通常应该命名为 com.yourcompany.util.loger.* 这样的形式。这样虽说难免有些繁琐,但能有效避免参数重名,同时也是一种很好的注释。

以上方案多次采用,实践效果良好。