开发日记 2006-3-10

来源:互联网 发布:编辑排版软件培训 编辑:程序博客网 时间:2024/06/03 02:06

2006-3-10        晴

  今天要提交一个阶段性版本给客户,可是没提交之前的第一次测试就出现了问题。有几个页面什么信息也看不到,而且出现了一些以前没见过的异常信息。可是代码没有改过,再说以前这些页面都是经过测试的,没有问题。

  进入调试状态,我发现要查询的信息都没有查询出来,但是数据库中这些字段都是存在的也有记录。那为什么还是查询不到数据呢?我在纳闷,小李也在纳闷(因为这个页面是我跟他合作完成的,我负责界面操作,他负责数据提供)。我们两个折腾了1个多小时,终于发现数据库中作为筛选条件的一个列的所有内容都变成了"null"值,而我们默认的筛选条件是“1”,这样当然筛选不出内容了。这时小王搭话了:“是不是昨天我拷贝数据库的时候这些字段被我还原了?”(因为小王负责我们这个项目的数据库制作和维护,因为发布给客户的数据库和我们调试的数据库不同,所以有时候将客户调试的数据库中的数据拷贝到我们测试数据库中来测试。所以小王经常拷贝数据)。

  原因终于找到了,但是我和小李却浪费了接近2小时来解决这个错误。再回到原来的工作又需要15分钟到30分钟找到原来的思路。其实我们每天有很多这种问题,所以因此而耽误的时间也不在少数。通过上面这个问题,我们可以看到这么几个问题:

  1、程序处理异常的能力不够。在写程序的时候只考虑到了正常状况的操作,对于那些未知的异常考虑不足,导致出现这些异常的时候系统无法锁定问题的根源。例如,在程序中如果使用到了外部程序、或者操作时间比较久再就是调用其他人原所写的程序的时候,都要用异常管理来保护这些操作,并且在使用这些函数或者变量之前一定要先验证其可用性。保证最后使用的数据是正确的,如果遇到任何问题都要提示给客户,问题较大的也要及时的记录日志信息,以便将来解决问题的时候快速找到问题的根源。这样做,就能够基本应付90%以上的问题,程序的健壮度也会比较高。

  2、数据库的设计不能马虎。数据库是支持一个系统的最重要的部分,所以对于数据库的设计和维护都要有专人管理和制定一套完整的管理手册,并且严格的执行。想上面提到的这个问题,基本上就是因为数据库的设计不合理,再加上数据库管理不得当所导致。先说设计,因为没有对某些字段进行规则保护,导致一些不该出现空值的出现了空值。所以在设计数据库的时候不能马虎也不能偷懒,该制定规则的就要制定规则,该设置不能为空的就不能为空,该有默认值的也必须有默认值。这样就能够保证数据库中不至于记录了一些非法数据和不合理数据。但是由于我们有些数据库开发人员没有严格按照这种思维来作,而是认为这是无所谓的,只要程序中注意一下就可以了。可是有时候程序开发人员又在依赖数据库,以为数据库中已经作了相关的规定,某些字段就没有赋值,这样问题就很可能会出现。所以说不管是数据库开发人员还是程序开发人员,都不应该过分的依赖其他人员,自己的程序要写好不能出现偷工减料,要不然最后受苦的是自己。

  3、团队成员之间的沟通要及时。现在的软件开发几乎没有单人完成的了,所以沟通就变的非常的重要,一自己这边的一个小问题如果不及时的沟通,在别人那里就可能变成一个大问题。象上面这个问题,如果小王及时同志我们他备份了数据库,那我们就可能先从数据库方面查起,也会注意一些数据库的细节。问题就可能很快的解决而不耽误大家的时间。

原创粉丝点击