在设置新的Web Dev Env之前要了解什么?

时间:2010-12-29 21:29:12

标签: development-environment lamp

假设您想为开发团队创建一个新环境,以便在LAMP堆栈上构建一个大型网站。

我对网站编码所需的知识不感兴趣(php,js,html,css等)。这件事我知道。

我对使用测试服务器,生产服务器,版本控制,备份等设置良好环境和工作流程需要了解的内容感兴趣。

什么是良好的学习途径?

2 个答案:

答案 0 :(得分:2)

在您执行任何其他操作之前,请询问开发人员他们想要从测试/生产环境中获取的内容。你不应该做出这个决定。对此的答案完全取决于他们熟悉的工作流程以及他们将要开发的软件类型。

我个人建议在每个开发人员的工作站上使用像git或mercurial这样的分布式VCS,本地WAMP / LAMP堆栈(共享的“开发”服务器很傻),以及运行一些测试虚拟机的服务器,这些虚拟机与生产环境重复。如果不让开发人员参与,你不能要求更具体的建议。

答案 1 :(得分:2)

作为在多家公司领导此流程的人,我的建议是逐步提升您的组织作为软件工厂的“成熟度”,通过按照对您的需求有意义的顺序逐步整合一组实践。我倾向于遵循的顺序(从我认为更基本的东西开始,到更高级的东西):

  1. 版本控制 - 控制您的来源。我曾经和SVN合作,但我正在逐步将我的团队迁移到Mercurial(我同意meagar对分布式VCS的建议)。一个很棒的HG教程在hginit
  2. 建立明确的发布流程,在VCS中标记您的版本,在受控环境中清理版本,测试并从中发布。
  3. 缺陷跟踪 - 系统地了解您的错误和功能请求。我倾向于使用Trac因为它为项目管理提供了或多或少的完整解决方案以及我用作知识库的维基。但你有很多选择(Jira,Bugzilla等......)
  4. 建立例行程序Testing practicesUnit tests例如{}通过使用xUnit frameworks中的一个(习惯至少为你编写的新函数和你修改的旧代码编写单元测试)和Integration / System测试(对于webapps使用像Selenium这样的工具)。
  5. 作为自动构建流程
  6. 的一部分,让您的测试经常运行
  7. 最后,在编码之前编写测试(测试驱动开发)并努力提高覆盖率。
  8. 通过设置一些持续集成系统,在构建/测试/发布周期中向前迈出一步(确保您的构建和测试定期运行,至少每晚一次)。我最近开始使用Hudson,它非常适合我们的Java / Maven项目,但您也可以将它用于任何其他构建过程
  9. 在测试环境方面,我同意meagar的建议。我们有这些层:

    1. 开发人员工作站上进行测试(应包含运行代码的完整设置)
    2. 暂存环境:尽可能地克隆您的生产环境,并在那里部署和运行您的应用。我们也使用虚拟机。
    3. 制作预览:我们将应用程序部署到包含生产数据的生产服务器,但是在不同的“预览”网址中仅供我们内部使用。我们针对此服务器运行部分自动化集成测试,并对内部用户进行一些额外的手动测试
    4. 制作 - 并保持手指交叉;)
    5. 就备份而言,至少对于您的源代码而言,分布式VCS为您提供了在多台计算机中复制完整存储库的优势,从而最大限度地降低了数据丢失的风险(这对于集中式存储库来说更为重要,因为案例与SVN)。