感觉

2009年1月5日 日本东京 多云
  今天是9天长假后第一天上班,因此比平常要早一个多小时到公司,早早的开始了一天的工作,整个上午工作效率挺高,基本上把一整天的工作全部完成了。下午例会时,客户说放假前改的一个问题还是有错误,"怎么会呢?",于是例会后,到客户的测试环境中看了现象,就试图在我的开发环境中再现这个错误,结果无论怎样运行程序,都不再现。没办法,只要做到客户的测试环境前,面对着错误现象开始"相面"(在测试环境中不能Debug,即使能够Debug,这个错误肯定是嵌套在N层循环中,很难Debug),头脑中清理着所有程序可能执行路线,突然想起前些天修改过的一个问题,使用目标对象时,好像没有判断目标对象是否已经被逻辑删除,找到代码仔细查看,果然如此,追加判断条件,运行程序,OK了。
  总结:
  1.在之前修改的问题时,之所以没有发生这个错误,是因为这之后又进行了一个对象交换处理的问题修正,以前在新规的场合下是不执行这个处理的,修改后要执行这个处理,结果导致在交换处理中,被交换且做了逻辑删除标记的对象在另外的处理中又重新被使用了;
  2.复杂问题修正后,验证时不能单纯依赖于程序的一两次执行结果和Debug。要把数据的使用条件、影响的范围等列成清单,对照代码,实施桌面Check,也就是对照清单去读代码;
  3.问题发生时,不能只依赖现象的重现、Debug、Log等,还要跟据现象分析程序所有的可能执行的路线,运用感觉来判读错误的原因和位置。
posted @ 2009-01-05 20:47  移动应用开发  阅读(100)  评论(0编辑  收藏  举报