代码之家  ›  专栏  ›  技术社区  ›  slf

JAVA EE 5开发环境

  •  1
  • slf  · 技术社区  · 15 年前

    我有一个客户已经在生产中使用了一些应用程序,因此已经决定了下一个项目的生产环境:

    • Sun iPlanet 6.1 SP7(带Apache)
    • JDK 1.6
    • Oracle WebLogic 10 MP3
    • Oracle 10G
    • 1024位SSL

    他们也有一些网络应用的公司标准:

    • 雄猫
    • 支柱
    • 与Safari、Firefox、IE6、IE7兼容

    我还被告知,这个应用程序可能不需要一个完整的JavaEE 5环境(可能只是一个Web容器),但需要通过客户端EJB的ETC与单独的WebLogic实例进行托管,并执行对其他公司服务的各种Web服务调用。

    我的任务是对这个新团队的开发和测试环境做出一些决定(很小,可能有2到3个人,包括我在内,但在未来几个月内可能会增长)。我想创建一个这样的环境:人们可以使用他们喜欢的ide,在本地主机上有很好的开发经验,但是仍然可以在测试环境中顺利地部署,然后再部署到生产环境。我的想法是,在本地工作站上,http很好,但是集成测试服务器应该与生产服务器完全一样,并且所有通信量都应该是https,以确保我们能够准确地描述prod将是什么。

    知道devs的本地工作站会有很大的变化,可能会在本地工作站上运行macosx10.6(雪豹)或windows 7,但是还需要指定一个通用的测试服务器:什么技术栈可以让我们从本地开发中获得一个很好的平滑路径,通过测试,并投入生产?

    编辑:抱歉,我说的技术栈是指ant+jboss+tomcat+oracle xe vs.maven+geronimo+derby。基本上,我们需要在每台开发机器和测试服务器上安装一个具体规范实现的列表,它为我们提供了一个灵活的开发环境,以及向测试和生产环境的平稳过渡。

    edit2:如果这个应用程序需要保存任何信息(我假设 如果是这样的话),无论是什么都绝对不会复杂。它很可能类似于一个基本的产品数据库。

    3 回复  |  直到 11 年前
        1
  •  4
  •   Lars Tackmann    15 年前

    我会选择:

    1. 哈德森 用于夜间生成(或每次签入)
    2. 水银的 颠覆 用于源代码管理(在Windows和Mac上都很有效)
    3. 弹簧,弹簧,弹簧 . 是的,我是认真的,spring解决了很多问题,不仅仅是依赖注入;比如安全性、批处理、事务处理、系统集成。
    4. 月食 为ORM。它的许多高级特性(hibernate所缺乏的)经常拯救了我(比如像样的存储过程支持)。
    5. 重量轻的容器 码头,Tomcat 树脂 . 如果你使用重而慢的东西比如 杰罗尼莫 JBOSS .
    6. 三角洲 对于merge/diff工具(同样适用于所有平台)。
    7. 如果要使用高级数据库功能,请选择 奥拉克勒塞 (和) SQL开发人员 )两者都是很好的工具。如果不是的话 H2 德比 很好。
    8. JUnit (或) TESTNG) 莫基托 用于单元测试/模拟。
    9. 请不要用 支柱 . 说真的,至少 STRUTS2 或者最好是 JSF2,条纹 GWT .
    10. 一个像样的追踪器, JTrac,雷德明 福格布兹
    11. 用于集成测试
    12. Sonar 代码质量

    如果要使用不同的ide,那么 马文 这可能是个好主意,因为它允许从pom.xml中配置每个ide(在intellij/netbeans中非常有用)。但我能给你最好的建议就是这样。

    • 去做你已经知道并有经验的事情。您不会一夜之间从struts转换到jsf2。
    • 得到最好的工具,你可以得到,真正免费的东西并不总是路要走(虽然它往往是)。

    快乐黑客

        2
  •  1
  •   Arjan Tijms Mike Van    11 年前

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

    • 哈德逊持续集成
    • 除非你真的,真的需要,否则就避免使用maven。它以声明依赖性和约定优于配置的承诺吸引您,但实践与理论截然不同
    • 尽可能地使用Spring,而不是标准的JavaSe/JavaEE API。除了简单的api之外,它还促进了可测试性和aop特性,这些特性比直接使用aspectj要容易得多。当然,它还提供了支持松耦合的依赖注入
    • 对orm进行hibernate,或者如果您的持久性需求非常简单,那么spring jdbc就足够了。
        3
  •  0
  •   Rajat    15 年前

    测试环境应该完全复制生产。还要在测试环境中进行性能测试。如果需要考虑硬件,并且需要限制群集中服务器的数量,那么在测试中创建更少的服务器,但是要复制与prod上相同的env,例如iplanet(apache)+weblogic+oracle db等等……

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

    尝试使用同一个ide(尽管这主要是开发人员的选择问题),就操作系统而言,这无关紧要,因为如果您使用兼容的ide,那么您将仅从中构建代码。

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

    一件非常重要的事情是,首先确定一个代码结构,然后在版本控制中签入它,这样用户就可以从任何ide签入/签出同一个结构,这样所有开发人员都可以共享同一个结构。 在每个版本中,在cvs或版本控制中分支代码,然后从head签出。同样非常重要的是,使用单个生成文件并维护一个安装文档,以便在本地box上生成环境。 另外,关于框架的使用,选择一个你在编码和维护方面最熟悉的框架,这样你就可以减少代码中的错误数量。现在大多数人使用spring/hibernate组合,但这取决于它是否适合你的项目。 希望这有帮助。