程序中的风险控制

在项目初期,项目组长一般都会建立TOP RISK LIST(风险清单),随着项目的推进,有些风险已经避免,或者发生转移,也有可能遇到新的风险。

较悲观的情况是,你意识到了风险在哪儿,且传达了足够的风险警告,但由于开发人员水平的限制,或者没有考虑到所有可能的情况,最终问题还是如期而至了。

在最近的项目中,就发生了类似的情况。最后决定在问题代码块,引入“风险控制”机制。

基本的策略是:

针对问题模块,用户的所有操作,写入数据库时只允许写入“经过正确处理的数据” 。即会导致DB中的数据错误的操作,先屏蔽掉,并记录到log,发送给相关人员

 

风险控制伪代码:

function dataProcess($data)

{

……..; // data processing

 

if(validateResult($result))

{

       return $result;

}else

{

       writeLog($data);//将导致错误的$data记录至log文件,供完善程序用

       sendReportMail();//报告错误情况。

       return false;

}

}

 

function validateResult($result)

{

       ......;// result validate

}

上述方案虽然是在非常时期引入的。但后来发现,运用在项目开发和测试阶段也是很有帮助的:开发时增加上述报错机制后,可以提高开发效率,完善开发人员的思维;在测试阶段,分析bug原因变得非常直观,修改bug效率大大提高。

posted @ 2009-08-26 22:58  rethink  阅读(306)  评论(0编辑  收藏  举报