use*_*180 2 deployment tdd continuous-integration intellij-idea staging
我终于开始使用IDE(IntelliJ),并惊讶于它在我上一个项目中节省了多少时间.在我的下一个项目中,我希望保持使用可以节省时间的好工具的趋势.
我正在为一个新项目设置我的开发环境,我想设置我的开发环境,这样我就可以花更多的时间进行编码,减少部署和手动测试的时间.我想使用像Git,Vagrant这样的工具以及所有开发项目,从长远来看,一旦你投入了学习它们就可以节省时间.
我希望能够拥有一个在我的笔记本电脑上运行的开发环境,一个在网络上的临时环境(没有现场网站,一些集成如Facebook很难测试;我还希望几乎完全安装临时环境与生产相同),以及发布的生产环境.
与生产相比,适用于开发和登台环境的细微更改:例如,不希望登台环境能够意外地向实际客户发送电子邮件.
我认为需要在代码中使用不同的域名,这取决于运行代码的环境,或者可能使用模拟API而不是实际的API,也许电子邮件都被转储到测试域名称等
似乎最安全的方法是让代码假设它在开发模式下运行,除非它被告知它正在升级或生产中.
有什么好的技术可以告诉代码它运行的环境是什么?环境变量?常量包含在库中?
人们使用什么构建工具来处理HTML之类的东西,"编译"可能会投入生产或暂存域名,还可能缩小?
我喜欢编辑我的代码并在开发时重新加载我的浏览器 - 也许这是一个我不应该习惯的拐杖,但我想要一个工作流程,这样可以很容易地做到这一点.
也想让它变得困难.我不想意外地将开发模式中的代码部署到生产中.我从未使用CI工具,这是人们使用CI工具的原因,即他们帮助的是什么?当你没有庞大的团队时,他们是否值得使用?
与IntelliJ很好地配合使用的建议特别受到赞赏.
最好的策略不是告诉代码它运行的环境.让环境告诉代码在该环境中运行它需要什么.
您的代码永远不应该专门检查它是处于开发阶段还是正在进行中.(如果确实如此,则无论何时添加,删除或重命名环境,都需要更改代码).相反,只要您的代码需要执行依赖于环境的操作,它就应该查看特定于该内容的配置.如果您需要在开发和登台以及生产中使用其他资产服务器,请为资产服务器定义配置变量,并在不同环境中以不同方式设置该变量.如果您有某些功能只应在某些环境中运行,例如发送邮件,请定义一个配置变量,说明是否使用该功能.
在环境中定义配置的常用方法是环境变量或配置文件.可能有一些标准的方法来定义您正在使用的Web框架中的配置; 如果是这样,请使用它.
您的代码(无论是Java还是HTML或其他代码)在所有环境中都应该是相同的.您希望编写和编译Java一次,并在所有环境中使用已编译的类而无需重建.环境之间不同的一切应该在配置上有所不同,而不是代码.(没有库常量.)因此,将错误的代码部署到错误的环境中没有问题; 代码总是一样的.
您需要在正确的环境中获得正确的配置.如何做到这一点取决于你如何配置(再次,检查你的框架文档),但通常通过设置环境变量或将配置文件复制到位或任何一次而不是触摸它们来为环境设置一次配置所有在部署期间.
不搞砸部署的方法是完全自动化,因此您只需要"按下按钮"(实际上,运行脚本)进行部署,并且没有手动细节出错.
持续集成虽然必不可少,但对于一个人来说也很有用(您是否希望每次都手动运行构建?)与您的大部分问题没有多大关系.IntelliJ虽然很棒,但在这里也不太相关.您的部署当然应该仅依赖于命令行工具.当前的最佳实践是为您的应用程序提供一个完整的自动化测试套件,在CI中自动运行它并自动部署("持续部署"),如果测试通过,但这肯定会进入另一个主题.
归档时间: |
|
查看次数: |
1503 次 |
最近记录: |