|
|
-调试无需启动中间件
J2EE 是目前公认的比较慢的一种开发,相比 .net , php , asp 等而言。其实, j2ee 的开发者都
深有体会的, java 代码编写的速度其实并不慢,在 eclipse 和 jbuilder 等可视化界面的帮助下,
编写代码变的越来越简单;但是在调试的时候,每改完一个 java 或者 xml 代码要预览改的效果的话
,必须要重新构建,部署,重启服务器 , 这些动作反反复复,消耗的时间不少。
近期为公司写了个单元测试的框架,基本上解决了反反复复构建,部署,重启服务器的问题。我们的项
目的都是运用了类似 struts - spring - hibernate 的 MVC 架构(下面简称 ssh ),不同的就是
中间的 aop 是自己开发实现的,而没有运用 spring 的。不过,我们的单元测试框架对标准的 struts
- spring - hibernate 支持也挺好。
上面的是在 ssh 的一次交互的原理图,做过 struts 开发者都会很熟悉。首先,是 jsp 通过 submit
的 url 将表单数据提交给后台 action 的 servlet ,后台通过在 struts-config.xml 中的配置找到
相关的××× Action ,然后通过××× Service ,××× Dao 操作数据库,再将数据返回给另外一
个 jsp ,让他显示结果。
上面的图是我们单元测试框架实现构建,部署,重启服务器的原理图。我们很容易从图上看的出来,我
们写了个 Test ××× Action 来模拟 2 个 jsp 的动作,该类分成 2 部分上面一部分是模拟了 jsp
页面 submit 的动作(包括模拟提交给 url ,模拟提交数据),下面一部分是接收××× Action 返
回的数据,然后,进行校验(此处的校验,我们用了 junit 的断言功能)。通过用 java 类来模拟
jsp 的好处在于,我们可以完全把这个一个交互作为一个 application 来运行起来,非常容易的做到
单步调试,而不用到真实的平台上,启动服务器上运行。(注:此处有 2 个 db :开发 db 和测试 db
,这个再以后的介绍中会讲到)
我们还为在这个架构上开发制定了流程:
1 把当天需要开发的模块的 java 代码全部些好
2 通过这种模式调试 java 代码
3 在确保这些 java 代码无误后,构建,部署,启动服务器
4 然后编写所有的 jsp (因为修改 jsp 无需启动服务器)
这样,在开发一天的所有代码,几乎都不用怎么重启服务器,可以为开发人员省下很多时间,也使得开
发人员喜欢的单步调试变的异常简单,提高代码的质量。
我们已经在真实的项目中实施了该流程的开发,得到的效果和预期的一样。当然还是比不过其他语言的
开发,不过我们的架构还在不断改进(通过改进流程、编写 eclipse 等开发工具的插件等方法),使
我们的开发人员可以更加快的进行 j2ee 的开发。
|
|