什么是软件环境?

时间:2013-08-01 18:27:49

标签: architecture

嗨!

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

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

我已经读过,拥有单独的测试和开发环境是一件好事,因此开发人员不能在测试人员测试时弄乱某些东西,反之亦然。此外,一个项目可以有许多不同的开发环境,因此一个程序员不会为另一个项目弄乱。但是,这与使用CVS(这可能是有史以来最糟糕的关系)完全不同,例如?在CVS中,有几个人可以将应用程序下载到本地计算机,然后进行开发和测试。如果HE DID搞砸了一些东西,只有在他自己的机器上应用程序被破坏了,他可以简单地再次下载正确的版本。但是,如果他已经提交了破解的应用程序,这没什么大不了的,因为其他开发人员可以再次下载旧版本。

非常感谢!

2 个答案:

答案 0 :(得分:2)

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

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

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

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

想想每个网站背后的内容是什么让它发挥作用,你就会知道什么是环境。

答案 1 :(得分:0)

我想到的方式是:软件工程是一个软件工程,因为工作坊是木工。