Version control 命名配置文件-热还是不热?
我已经为我们的配置文件过程选择了一个解决方案,需要证明它的合理性。我很感激你的洞察力和批评。谢谢 问题: 我们的web应用程序有一个包含变量和条件的application.cfm文件Version control 命名配置文件-热还是不热?,version-control,configuration,app-config,Version Control,Configuration,App Config,我已经为我们的配置文件过程选择了一个解决方案,需要证明它的合理性。我很感激你的洞察力和批评。谢谢 问题: 我们的web应用程序有一个包含变量和条件的application.cfm文件 <cfif url = "*dev*" or "jargon123"> this is a dev enviroment, do devy things </cfif> 这是一个开发环境,做很多事情 因此,应用程序的新开发人员将部署一个本地实例。点燃它,开始四处乱摸。问题是配置
<cfif url = "*dev*" or "jargon123">
this is a dev enviroment, do devy things
</cfif>
这是一个开发环境,做很多事情
因此,应用程序的新开发人员将部署一个本地实例。点燃它,开始四处乱摸。问题是配置文件包含生产值。它开始点击生产数据并发送生产电子邮件。此外,由于他们所访问的url是或,因此从未设置开发条件。因此,在dev中有更多的生产工作正在进行
其他同事想要什么:
- Switch语句。app.cfm将以设置为“development”的环境变量开头,然后声明常规变量。然后它将进入switch语句并声明特定于环境的变量。我不同意这种方法,因为我们的一些配置文件有100-250行。这可能是一个巨大的转变声明,我不想卷入其中
- App.cfm已从版本控制中删除。我们现在有多个Application.environment.cfm文件,即Application.Prod.cfm、Application.Dev.cfm、Application.MyName.cfm等。该文件包含所有特定于环境的数据。我将特定于生产的设置从条件转移到App.Prod.cfm。到新环境的部署现在是1。将App.Dev.cfm复制为App.Me.cfm并提交。2.将所有变量更新到我的个人数据(电子邮件、登录等)3。将App.me.cfm复制为App.cfm并用于配置文件
- 强制部署工程师为环境选择正确的配置文件。没有app.cfm,应用程序将无法工作
- 限制用户错误的可能性。场景可能是用户将数据复制到新的环境模式,并意外地复制生产内容
- 它更干净,也更容易使用-配置值彼此完全分开
我找到了很多关于使用特定于环境的配置文件的文章,但没有找到为什么它们更好。这就是本文背后的动机。我还将删除生产配置,只提供配置文件的开发版本。原因:
- 配置文件可能包含与安全相关的数据
- 许多开发人员只是懒散,如果应用程序运行,用户就不关心配置
- 如果开发人员不使用当前提供的机制(devurl),您可以确定他们设置了环境变量吗
- 在测试期间使用live config可能会导致以后在产品上出现活动调试选项(忘记从配置中删除)