近期热点
·信息网络安全防范的几种措施
·企业网络安全的规划设计与实践
·网络安全之我见
·制造执行系统(MES)的应用与发展
·<连载>Protel二次开发从入门到精通
·<连载>Protel二次开发从入门到精通
 相关文章
·企业应用集成技术解析
·2007年中间件市场分析与预测
·面向EAI应用的J2EE和.NET的比较研究
·专家讲述J2EE中的多字节字符的处理
·实例讲解J2EE中软件基础结构的瓶颈问题
·重造Java ESB:细述JBI与ServiceMix
 相关博客
 相关新闻
·
i2通过基于服务的结构简化集成的实施
 相关热贴
·[原创]基于J2EE的论坛系统
·基于j2ee架构的企业级工作流引擎
·基于J2EE的OA-远略协同办公门户J2OA
·完全免费的J2EE软件快速开发平台下载地址
·J2EE快速开发平台源代码和详细设计文档(RedcatPlatform)
·J2EE快速开发平台源代码和详细设计文档
 相关商城商品
 
 
当前位置:基础信息化 -> 开发语言
 
专家讲述12个最重要的J2EE最佳实践
发表时间:2005-6-28 Kyle Brown   来源:赛迪网
关键字:J2EE 
什么是J2EE中的核心模式和最佳实践?如果你能按照这样去做,将使得J2EE开发成为一种可管理的过程。

    最佳实践

    1、始终使用 MVC 框架。

    2、在每一层都应用自动单元测试和测试管理。

    3、按照规范来进行开发,而不是按照应用服务器来进行开发。

    4、从一开始就计划使用J2EE安全性。

    5、创建您所知道的。

    6、当使用 EJB 组件时,始终使用会话 Facades。

    7、使用无状态会话 bean,而不是有状态会话 bean。

    8、使用容器管理的事务。

    9、将JSP 作为表示层的首选。

    10、当使用 HttpSession 时,尽量只将当前事务所需要的状态保存其中,其他内容不要保存在 HttpSession 中。

    11、在 WebSpherE中,启动动态缓存,并使用 WebSpherEservlet 缓存机制。

    12、为了提高程序员的工作效率,将 CMP 实体 bean 作为 O/R 映射的首选解决方案。

    1. 始终使用 MVC 框架。

    MVC 框架可以将业务逻辑(Java beans 和 EJB 组件)、控制器逻辑(Servlets/Struts 动作)、表示层(JSP、XML/XSLT)清晰地分离开来。良好的分层可以带来许多好处。

    MVC 框架对于成功使用J2EE是如此重要,以致没有其他最佳实践可以与其相提并论。模型-视图-控制器(MVC)是设计J2EE应用程序的基础。MVC 将您的程序代码简单地划分下面几个部分:

    1、负责业务逻辑的代码(即模型??通常使用 EJB 或者普通的Java 对象来实现)。

    2、负责用户界面显示的代码(即视图??通常通过JSP 及标记库来实现,有时也使用XML 和XSLT 来实现)。

    3、负责应用程序流程的代码(即控制器??通常使用Java Servlet 或像 Struts 控制器这样的类来实现)。

    如果您不遵循基本的 MVC 框架,在开发过程中就会出现许多的问题。最常见的问题就是在视图部分添加了太多的成分,例如,可能存在使用JSP 标记来执行数据库访问,或者在JSP 中进行应用程序的流程控制,这在小规模的应用程序中是比较常见的,但是,随着后期的开发,这样做将会带来问题,因为JSP 逐步变得越来越难以维护和调试。

    类似地,我们也经常看到将视图层构建到业务逻辑的情况。例如,一个常见的问题就是将在构建视图时使用的XML 解析技术直接应用到业务层。业务层应该对业务对象??而不是绑定到视图的特定数据表示进行操作。

    然而,只是具有合适的组件并不一定意味着可以使您的应用程序得到合适的分层。我们常常见到一些应用程序包含 servlet、JSP 和 EJB 组件所有这三项,然而,其主要的业务逻辑却是在 servlet 层实现的,或者应用程序导航是在JSP 中处理的。

    您必须进行严格的代码检查并重构您的代码,以确保应用程序的业务逻辑只在模型层(ModelLayer)进行处理,应用程序导航只通过控制器层(ControllerLayer)进行处理,而您的视图(Views)只是将传递过来的模型对象以 HTML 及JavaScript 的形式表示出来。

    2. 在应用程序的每一层都使用自动单元测试和测试管理。

    不要只是测试您的图形用户界面(GUI)。分层的测试使测试及维护工作变得极其简单。

    在过去的几年中,在方法学领域有了相当大的革新,例如新出现的被称为 Agile(例如 SCRUM [Schwaber] 和极限编程 [Beck1])的轻量级方法现在已经得到了很普遍的应用。几乎所有的这些方法中的一个共同的特征是它们都提倡使用自动的测试工具,这些工具可以帮助开发人员用更少的时间进行回归测试 (regression testing),并可以帮助他们避免由于不充分的回归测试造成的错误,因此可以用来提高程序员的工作效率。

    实际上,还有一种被称为 Test-First Development [Beck2] 的方法,这种方法甚至提倡在开发实际的代码之前就先编写单元测试。然而,在您测试代码之前,您需要将代码分割成一些可测试的片断。一个"大泥球"是难以测试的,因为它不是只实现一个简单的易于识别的功能。如果您的每个代码片断实现多个方面的功能,这样的代码将难以保证其完全的正确性。

    MVC 框架(以及J2EE中的 MVC 实现)的一个优点就是元素的组件化能够(实际上,相当的简单)对您的应用程序进行单元测试。因此,您可以方便地对实体 bean、会话 bean 以及JSP 独立编写测试用例,而不必考虑其他的代码。

    现在有许多用于J2EE测试的框架和工具,这些框架及工具使得这一过程更加简单。例如,JUnit(是一种由Junit.org 开发的开放源代码工具)和 Cactus(由 ApachE开发的开放源代码工具)对于测试J2EE组件都非常有用。[Hightower] 详细探讨了如何在J2EE中使用这些工具。

    尽管所有这些详述了怎样彻底地测试您的应用程序,但是我们仍然看到一些人认为只要他们测试了 GUI(可能是基于 Web 的 GUI,或者是独立的Java 应用程序),则他们就全面地测试了整个应用程序。

 
<<首页 <上一页  1  2  3  4  5  下一页>  末页>>  
5页,当前第1
责任编辑:张飞