0

你好!

我已经独立编程很长一段时间了,最​​近我在一家大公司找到了一份工作,在那里我必须开发一个相对较大的 Web 应用程序。我遇到的困难是软件环境的想法。

例如,我正在制作一个 Web 应用程序,开发人员可以在其中请求(向管理员发送电子邮件)将应用程序放入不同的环境中。但确切地说,将应用程序置于不同的环境中意味着什么?这样做可以实现什么,以及应用程序的确切含义是什么(重新表述:术语“软件环境”意味着什么组件?)。

我已经读到拥有单独的测试和开发环境是一件好事,因此开发人员不能在测试人员测试时搞砸一些事情,反之亦然。此外,一个项目可以有许多不同的开发环境,因此一位程序员不会为另一位程序员搞砸一些事情。但是,这与使用 CVS 有什么不同(这可能是有史以来最糟糕的关系),例如?在 CVS 中,几个人可以将应用程序下载到他们的本地机器上,然后开发和测试它。如果他在此过程中确实搞砸了,那么只有在他自己的机器上,应用程序才会损坏,他可以简单地再次下载正确的版本。但是,如果他已经提交了损坏的应用程序,那也没什么大不了的,因为其他开发人员可以简单地重新下载旧版本。

非常感谢!

4

2 回答 2

2

每个环境都是运行系统所需的一切的集合,通常有 4 个通用环境(至少在我的经验中):开发、测试、暂存和生产。可以将其视为 Web 服务器、数据库以及使系统正常工作所需的任何其他内容的集合。一些系统可能使用多个 Web 服务器或多个数据库。

这与代码存储库之间的区别在于每个环境都运行系统,因此理论上每个环境都可以运行不同的版本。开发人员在他们的环境中工作,测试人员在他们的环境中工作,在发布到生产环境之前使用暂存以确保没有中断,而生产环境是最终用户工作的地方。这里的关键是可能会更改数据库或网络脚本作为更改的一部分运行,因此它不像所有代码都可以下载。另外,不要忘记,在生产环境中,您不能只是经常覆盖数据,因此您必须找到一种方法来进行更改,而不会关闭所有内容。

在设置环境时,某些地方可能会执行以下操作:

  • http://dev.myapp.com - 这是开发人员可以用来访问持续集成服务器的方式,因为大多数人会使用 localhost 来访问本地机器上的 Web 应用程序。
  • http://test.myapp.com - 这是用于独立的测试环境,以便测试人员可以测试事物,而不必担心开发人员一直在更改代码。
  • http://staging.myapp.com - 这是最接近生产环境的环境,可以进行最后一分钟的测试。
  • http://www.myapp.com - 这是生产环境。

想一想每个站点背后是什么使它工作,你就会知道什么是环境。

于 2013-08-01T19:53:00.253 回答
0

我的想法是:软件环境之于软件工程,就像车间之于木工一样。

于 2013-08-01T18:31:41.500 回答