进攻式编程 与 防御式编程

1、防御式编程
业务的流转应该在参数的正确性下进行。简言之,就是先进行安全性或者存在性检查,然后再执行业务流程。
防御式编程方式例如:DATABASE需要对目标表进行两次扫描,一次是存在性检查,一次为执行业务(如果参数正确的话)。
防御式编程的思想为:在没有真正的操作数据之前,要保证所有的操作或者参数都是正确的,DATABASE只做正确的事。程序编写者应该尽量的预料出可以预料到的错误。我们不应该认为,在表中添加了check约束,就不用在程序中判断某个人的性别只能是男和女。

2、进攻式编程
一般情况下,调用环境已经把要传入程序的参数进行了验证以保证参数是正确的或者大部分是正确的,而此时再采用防御式编程无疑浪费了资源和时间。貌似这个时候采用进攻是编程是正确英明的选择。
先不管参数正确与否,先进行业务操作,在出现错误的时候再进行处理。

 

防御式多用在需要给其他人使用的接口上,
进攻式多用在自己可以掌控的程序开发中。

 

Leave a Reply

Your email address will not be published.