好久没有来这里了,因为我现在已经不使用Delphi,而用Java了,只是有些怀念这儿的人气,所以偶尔也来一下.看到这里的Java的问题大多是一些入门级的,想想以前从这里得到很多的Delphi帮助,看来也有必要帮一下别人了.
首先我对EJB没有太多的经验,但是其它的技术如Servlet,JavaBean,JSP,或其它的组件开发方式,大多都会有类似的关于如何调试的问题, 因为它们的共同特点是:信赖于某一平台,不能单独运行,因此调试起来比较麻烦.据我的经验,归纳起来有如下:
1.在代码设计时要有分层的概念.将自身系统复杂的业务处理独立出来,这一层尽量不要使用平台相关的东西.另外要有一个接口层,专门处理与平台相关的事情.这样的好处有两:A移植方便,可方面地从这个平台移植到另一平台而不修改业务层.B可方便编写或添加调试测试代码
2.使用单元测试.在上述的基础上,使用单元测试,先把复杂的业务处理模块调试完成.因为是单元测试,可方便的使用各种形式:如JUnit,或System.out,或GUI.单元测试成功后,再放在平台上联调,这样成功率大大提高
3.使用Log.适当在平台相关的,或重要的或易出错的地方加上Log也是不错的办法.可用System.out,Log4j等.但注意别滥用Log,因为Log太多了有以下坏处:A手指累(因为要敲键呀)B眼睛累(因为有很多与逻辑无关的Log在扰乱视线呀)
4.正确使用异常机制(据我所知,能正确理解和使用异常机制的人并不多).新手编程序多只是考虑正常情况,而对异常估计不足.然而程序出错绝大多数都是因此而起,而需大动干戈地调试却是因为提示信息不准确所致.正确有效的使用异常机制,可让你定位Bug事半功倍.
5.使用JBuilder或EClipse等IDE的强大功能.对付组件开发调试问题的一利器:远程调试
6.说到最后,其实以上都不重要,代码写得好,所谓调试测试可能都是多余.我想这大概就是我们做软件的最高境界吧.