为什么许多应用/框架将配置文件保持在未执行的格式中?
很多框架的配置文件使用的语言和程序其他部分不同。例如,Appengine的配置文件是用yaml格式的,而DJango的settings.py则是一个Python模块。我觉得这样有很多缺点。
如果配置文件和程序用的是同一种语言,我可以:
MEDIA_DIR = os.path.join(os.path.dir(__file__), 'media')
#Or whaever the correct cals are, you get the idea.
- 不需要学习一种新的(虽然比较简单的)格式
- 我的工具可以正常使用这些配置文件
- 我可以直接用
import conf
等等
如果是像C/C++这样复杂的语言,我能理解这样做的好处,但对于Python来说,这样做有什么意义呢?感觉就像是削弱了能力,却没有带来任何好处。
5 个回答
5
Python并不是App Engine上唯一可以使用的编程语言。所以同一个yaml配置文件也可以用来管理用其他语言,比如Java或Perl写的App Engine应用。
5
有时候,你需要用一个自动化的图形界面工具来解析、生成或者修改一个配置文件。如果你的配置文件是一个Python脚本,这就变得不太容易了。
12
有些框架的设计者认为,配置文件不应该放复杂的逻辑。就像MVC框架不允许你把逻辑放在不该放的地方一样,配置文件也不应该放程序代码在不合适的地方。
这其实是个人喜好和理念的问题。
不过,我个人更喜欢Django的做法。