为什么这么多应用程序/框架将其配置文件保持为未执行的格式?

agi*_*liq 2 python settings configuration yaml

许多框架将其配置文件保留为与程序其余部分不同的语言.例如,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.
Run Code Online (Sandbox Code Playgroud)
  • 不必学习新的(公认的轻量级)格式
  • 我的工具按预期工作.
  • 我可以做import conf

我可以看到它的优点,如果它是像C/C++等重量级语言,但对于python,为什么它有意义.这似乎就是在不增加任何好处的情况下夺走权力.

Pau*_*lan 12

一些框架设计者认为配置文件不适合重型逻辑.就像MVC框架阻止您将逻辑放在它不属于的地方一样,配置文件也会阻止您将编程放在它不属于的地方.

这是品味和哲学的问题.

也就是说,我更喜欢Django的方法.

  • 措辞好`这是品味和哲学的问题.+1 (6认同)

HS.*_*HS. 5

Python可能并不总是唯一可以运行appengine的语言.因此,相同的yaml配置文件可以驱动用例如java或perl编写的appengine应用程序


Ste*_*ini 5

有时您需要使用自动/ GUI工具来解析和/或生成和/或修改配置文件.如果你的conffile是一个python脚本,这并不容易.