2009-12-16 79 views
1

我有谁已经有一些生产应用的客户端,因此已经取得了他们的生产环境中会是什么这个下一个项目的一些决定:Java EE 5的开发环境

  • 太阳的iPlanet 6.1 SP7 (W /阿帕奇)
  • JDK 1.6
  • 的Oracle WebLogic 10 MP3
  • 的Oracle 10g
  • 1024位SSL

他们还为Web应用程序的一些企业标准:

  • Tomcat的
  • Struts的
  • 与Safari浏览器,火狐,IE6,IE7
  • 兼容性

我也告诉我,这应用程序可能不需要在Java EE 5环境(可能只是一个Web容器)上完整,但需要通过客户端EJB等与托管在单独的weblogic实例上的应用程序进行通信,以及对其他Web服务调用企业服务。

我已经被赋予了一些任务来决定我们的开发和测试环境对于这个新团队(包括我在内的2人或3人,但未来几个月可能会增长)的外观。我想创建一个人们可以使用他们喜欢的IDE并在本地主机上有良好的开发经验,但仍然可以在测试环境中顺利部署,然后再到生产环境。我的想法是,在本地工作站上,http是好的,但集成测试服务器应该看起来与生产服务器完全一样,所有流量都应该是https,以确保我们能够准确描述产品的内容。

了解开发者本地工作站的种类繁多,可能在其本地工作站上运行Mac OS X 10.6(Snow Leopard)或Windows 7,但也需要指定一个常见的测试服务器:什么技术堆栈会为我们提供一条从本地开发,测试到生产的良好平滑路径?

编辑:对不起,当我说技术堆栈时,我的意思是例如Ant + JBoss + Tomcat + Oracle XE与Maven + Geronimo + Derby。基本上,我们需要在每台开发机器和测试服务器上安装具体的规范实施清单,这为我们提供了灵活的开发环境,并顺利过渡到测试和生产环境。编辑2:这可能是值得一提的是,这个应用程序,如果它需要坚持任何信息的话(我假设将是就是这样),不管它是什么,绝对不会很复杂。很有可能它会类似于基本的产品数据库。

回答

4

我会去:

  1. 哈德森对于每日构建(或每签)
  2. 水银的Subversion源控制(工作GRE在Windows和Mac上)
  3. 春天,春天,春天。是的,我很认真,Spring解决了许多问题,而不仅仅是依赖注入;如安全性,批处理,事务处理,系统集成。
  4. 用于ORM的EclipseLink。它有许多高级功能(Hibernate缺乏)经常为我节省(像体面的存储过程支持)。
  5. 重量轻的容器,如码头,雄猫树脂。如果您使用重度缓慢的东西,比如GeronimoJBoss,那么您将要进行团队攻击。
  6. DeltaWalker合并/差异工具(可在所有平台上工作)。
  7. 如果您打算使用高级数据库功能,那么请转至OracleXE(和SQLDeveloper)。两者都是很好的工具。如果不是,那么像H2Derby很好。
  8. 的JUnit(或TestNG的)的Mockito单元测试/嘲笑。请使用Struts。严重的是,至少与Struts2或最好像JSF2,StripesGWT
  9. 一个体面的错误追踪系统等,用于集成测试
  10. Sonar代码质量

JTrac,管理平台FogBugz的

  • 如果你要使用不同的IDE然后的Maven可能是一个好主意,因为它允许每个IDE都可以从pom.xml进行配置(在IntelliJ/NetBeans中效果很好)。但我可以给你的最好的建议是这样的。

    • 去你已经知道和有经验。您不会在一夜之间从Struts过渡到JSF2。
    • 获得最好的工具,你可以得到,认真自由的东西并不总是要走的路(虽然它往往是)。

    快乐黑客

  • +0

    所有伟大的建议,培养一个优秀的团队讨论。我们没有选择这个逐字,但最终我们做了类似的事情......谢谢:) – slf 2009-12-25 04:27:30

    0

    测试环境应该完全重复生产。也可以在测试环境中进行性能测试。如果硬件是一个问题,并且群集中的服务器数量需要受到限制,那么在测试上创建更少的服务器数量,但要复制相同的环境,例如iplanet(apache )+ weblogic + oracle db等......

    就本地环境而言,您可以使用Tomcat(因为您只需要web容器),而对于ejb客户端,您可以捆绑jar并使远程呼叫(如果您正在远程调用某个远程应用程序)。如果您通过本地ejbs拨打本地电话,那么您将不得不在本地机上使用weblogic进行开发。

    尝试使用相同的IDE(尽管它主要是开发人员的选择)。就操作系统而言,它并不重要,因为如果您使用的是兼容的IDE,则只会从中构建代码。

    还要确保IDE与tomcat(如果使用的话)或weblogic紧密耦合,以便在调试模式下运行代码。

    一个非常重要的事情,首先决定代码结构,然后在版本控制中检查,以便从任何ide用户检入/检出相同的结构。所有开发人员共享相同的结构。 在每个发行版中分支CVS或版本控制中的代码,然后从头结帐。同时非常重要的是使用单个构建文件并维护设置文档以在本地框中构建环境。 另外关于使用框架,在编码和维护中选择最适合的框架,这样可以减少代码中的错误数量。现在大多数人使用Spring/Hibernate组合,但取决于它是否适合您的项目。 希望这有助于。

    1

    当你说“技术堆栈”时,你真的不清楚你到底在问什么,你的意思是服务器,库,构建工具?无论如何,这里有一些轻率建议:

    • 哈德森持续集成
    • 避免行家,除非你真的,真的需要它。它引诱你像一个警笛声,它承诺声明性的依赖关系和约定优于配置,但实践与理论有很大的不同
    • 尽可能地使用Spring而不是标准的Java SE/Java EE API。除了更简单的API之外,它还有利于可测试性和AOP功能,这比直接使用AspectJ更容易。当然,它也提供了依赖注入支持松耦合
    • Hibernate作为ORM,或者如果你的持久性的要求非常简单,Spring的JDBC可能足以