描述用于开发不太高级别的Web应用程序的过程,重点关注VC,错误跟踪,QA,单元测试,部署以及其他类似的东西(减去规划/客户端通信方面的事情)。
我是这方面的新手,所以我粗略的例子(读:没有用过这个过程)无疑是放弃了,可以这么说 - 指出它的缺陷所以我可以学习。
例如
答案 0 :(得分:2)
登台服务器是您的生产环境的副本,该副本尽可能是最新的。在我目前的项目中,我们能够保持每个版本彼此独立,因此我们的“登台服务器”是我们的生产服务器,只需从不同的URL访问。
注释和不符点:
所有步骤都有一些变化,具体取决于项目的大小。您的项目越大,樱桃采摘和环境分离的好处就越大。在较小的项目中,这些可能只是时间汇,经常被忽略或绕过。
为了澄清,有一个开发堆栈,QA堆栈和Staging堆栈。根据您的项目规模,QA可能正在升级,生产可能正在升级,或者它们的某些组合。 Dev和QA堆栈的分离是最重要的。
在上面的步骤中,我假设代码和相关数据都是版本化或跟踪的。拥有一个将控制数据考虑在内的发布和构建过程使得发布变得非常非常容易。
在一个中小型项目中,可能有也可能没有发布分支;这取决于代码更改的频率。此外,根据代码更改的频率和项目的大小,您可以将完整的QA分支集成到Release分支,或者挑选特定的修订以集成到发布分支。
FWIW,我发现“迁移脚本”没什么价值。它们总是一个一次性的脚本,几乎没有重用,并使回滚成为屁股的痛苦。我认为更容易让应用程序向后兼容。在几次发布之后(当回滚是可笑的时候),如果需要,应该进行数据清理。
答案 1 :(得分:1)
非常粗略:
我们还为未来版本或功能创建分支。这些最终会合并到主干中。
我们将数据库结构与部署期间执行的自定义数据库比较工具保持同步。
答案 2 :(得分:1)
老帖子,但有趣的问题!
现在在我的公司: