刚才接到电话说今天上线的项目出现了问题,进入安全设置后没有进入相应的页面,并且有一个安全问题的下拉列表也没有正常显示。回想了一下代码,发现原因是之前在数据库中添加了新的字段并且添加了新的数据,这就导致对旧数据的访问结果会出现问题,因此重新写了一个访问数据的方法。这么做本意是好的,但是成功的前提条件是数据库中数据应该有效。
在测试的时候并没有发生相同的问题,原因是因为在测试之前就已经把相关的SQL发给测试并更新了数据库,这样自然不会出状况,可是在实际成产环境中,是要先上传代码,同时修改数据库,之后才可以更新数据库。而这次问题的直接原因就是在上传至生产后没有及时的更新数据,导致了查询返回结果不正确,然后波及了一大片人。
通过这次事件,需要吸取一些教训:
1。在对老项目进行修改时,要充分考虑到向前兼容,由于新的方法只是考虑到了更新数据库的理想情况,并没有考虑到实际可能遇到的问题,往往在实际环境中会出现问题,会牵一发而动全身。
2。要对自己改动的所有地方做到心中有数,要养成记录每一次修改的习惯,这样不仅可以在发生问题的时候方便的找到原因,并且可以方便测试,防止有遗漏,要牢牢记住“好记性不如烂笔头”!
3。永远不要存有侥幸心理,不要认为测试通过那么在实际环境中可以顺畅的跑起来,心里牢记:Bug是永远存在的!
4。保持谦逊谨慎的态度,写程序是一件细心的事情,现在写的代码不仅仅是自己看到,在以后还会有很多人看到,而online项目还会被更多的人看到,能被别人看到自己的代码是一项光荣的事情,所以要保持良好的代码风格,条理清晰,简洁有效,易于阅读,否则会被所有看到的人耻笑的!
5。所有修改的代码都要写清楚注释,不论是自己创建的,还是修改别人的(//update by author:ljw date:2012-9-13 0:24:52 //update start //update end)
6。有问题要及时说出来,不论大小,开发过程中的沟通问题带来的麻烦有时要比编码大的多。