什么是常见的JavaWeb开发实践?

什么是常见的JavaWeb开发实践?,java,Java,我想更多地了解/更好地理解至少有两个团队的开发团队的常见java web开发实践——web设计人员和web组件开发人员。特别是,我对理解以下内容感兴趣: 假设有一个代码库,所有团队是否都签出所有代码的本地副本?如果是,为什么web设计师希望/需要访问后端代码,同样,为什么web组件开发人员希望/需要访问前端代码 每个团队成员,不管团队如何,如何测试他们的代码?他们是将代码“部署”到本地工作站、开发箱上的单个实例还是整合的开发箱 集成和测试是如何完成的?例如,假设web设计师创建一个“注册”表单页

我想更多地了解/更好地理解至少有两个团队的开发团队的常见java web开发实践——web设计人员和web组件开发人员。特别是,我对理解以下内容感兴趣:

  • 假设有一个代码库,所有团队是否都签出所有代码的本地副本?如果是,为什么web设计师希望/需要访问后端代码,同样,为什么web组件开发人员希望/需要访问前端代码

  • 每个团队成员,不管团队如何,如何测试他们的代码?他们是将代码“部署”到本地工作站、开发箱上的单个实例还是整合的开发箱

  • 集成和测试是如何完成的?例如,假设web设计师创建一个“注册”表单页面,web组件开发人员创建后端代码来处理数据并将其插入数据库-如何集成和测试前端和后端代码

  • 关于开发组的java web开发实践的任何其他信息,我没有特别询问过,但是相关的,请分享

    编辑(后续): 我很欣赏这些答案,它们填补了我在java web开发方面的大部分概念漏洞。不过,我还有几个后续问题-

  • 测试,尤其是自动化测试显然是JavaWeb开发的重要组成部分;但什么是好的“测试”?例如,假设java后端开发人员只是将接受表单数据、验证表单数据、然后插入/更新数据库的代码放在一起。在这种情况下,什么是好的测试?此外,这怎么可能是“自动化的”

  • 有人能解释一下持续集成吗?也就是说,他们的目的是只编译所有的项目代码吗?还是帮助自动化测试?据我所知,continuance集成服务器监控存储库的提交,并在提交时签出新修改的代码并编译整个项目;编译成功/失败后,将通知用户

  • 我们总是检查所有我们能得到的源代码。外部库、后端系统和工程的源代码。阅读后端系统的代码可以使前端开发人员更容易理解正在发生的事情。后端开发人员有时会阅读前端代码以了解实际使用情况。更多的代码是一件好事。Maven还支持自动下载源代码,这很好

  • 我们使用maven,我真的建议在团队环境中使用它。我们在本地、团队集中测试服务器和公共验收环境上部署。离“家”越近,你可以测试的东西就越便宜,效率也就越高

  • 我们使用selenium进行大量测试,允许用户“通过前端”测试正确部署的webapp。除此之外,大多数运行堆栈部分的集成测试在maven概要文件中作为常规junit测试运行


  • 我们如何在团队中做到这一点:

  • 对。每个成员都签出所有代码,即使您没有处理所有部分。您需要在本地计算机上运行应用程序,同时快速查看所做的更改。前端人员需要运行后端代码来查看前端效果

  • 在编码过程中,每个成员在自己的机器上运行代码。当它签入时,它将作为一个整体在专门指定的服务器上进行测试

  • 测试应该尽可能自动化。每个团队成员都为自己的代码部分编写测试代码,这也会被检入。您可以使用持续集成服务器自动运行这些测试。但是初始测试实际上是在本地机器上完成的。如果我签出代码,然后对后端类进行更改,我将运行代码并确保它在我的机器上工作,更新任何需要更新的测试并提交更改。自动测试在服务器上运行,以确保各种提交都能很好地协同工作

  • 我不能说这是否是最佳实践,但对于我们只有4名开发人员的非常小的团队来说,这是实践。

    在我们的团队中

  • 我们的做法通常是在存储库中为新开发创建一个新分支,然后将它们合并到主干中,以便在生产中部署时进行标记。所以我们检查所有我们正在工作的分支。另外,使用SVN,多个编码器可以在同一个文件上工作,因为SVN不会锁定该文件并允许您在之后合并它们,但这种情况非常罕见。自动合并并不总是有效的,你必须做一些“手动合并”

  • 首先测试在本地完成,然后部署到开发环境中,然后部署到验收环境中。在开发和验收环境中测试的代码由Luntbuild/ANT构建,并通过Jythons脚本在我们的应用程序服务器中嵌入。我们从不在本地环境之外手动部署或构建。在可能的情况下,我们请团队中的其他人测试这些部署

  • CactusAPI让您可以“扭曲”servlets/struts/web应用的jUnit测试。我们用JMeter做了一些压力测试,用Selenium(漂亮的firefox插件)做了一些其他测试。您还可以运行覆盖率工具(如EMMA),让您知道jUnit/Cactus测试覆盖了多少百分比的代码


  • 对于第一个问题,您通常应该能够看到堆栈跟踪中每一行的源代码(这也意味着您使用JDK进行开发,因为Eclipse会自动将src.zip文件附加到运行库),即使它不在您自己的专业领域内

    所以,尽你所能检查一下。总有一天它会对你有所帮助——而且如果程序员知道整个团队都会看到它,他们会编写更好的代码并更好地记录它

    为了发展