概述
下面列出了防御式编程的一些其它要点.它们大多是编程里的常识,不过无论如何还是值得提一下的.你可能会想要建一张”to do”列表,然后在编程过程中逐项进行检查。
l 在函数的开始,检查参数的正确性。确认参数值都落在可接受的范围里。记住编程界里的一句古语:“垃圾进,垃圾出。”
l 在经历一系列相关的表达式之后,检查被操作数作变量的正确性。一系列表达式会改变应用程序的状态。所以要确认其结果是正确的。
l 解决问题时尽可能地处理错误而不是处理异常。
l 尽可能地让函数返回一点东西——不要把返回类型设为void。什么都不返回的函数是无法用异常处理来验证的。
l 一定要检查函数的返回值。不管可能性有多小,不要假设函数不会失败。错误的假设往往是在运行时发生错误的主因。
l 在移植代码时,把指针算法转换成引用。指针会影响到正常的垃圾回收。虽然定义一个不安全的块来保留指针算法可能会比较快捷方便,但是花点时间把指针都去掉会让应用程序更加安全。
l 不要编写不安全的代码。需要用到不安全块的操作往往是危险的应该予以避免。
l 不要直接使用文字变量。重复使用的文字变量是无法被优化的。就像前面展示的一样,文字变量不具备可读性。你应该使用 const 变量.。const 变量是有名字的,而文字量没有,使用const变量能使代码的可读性更好。
l 除非在枚举类型上跳转,否则一定要在switch 块里加上 default 语句。最坏的情况也不过就是用不到 default 情况,这比不小心改变程序的行为要好多了。
l 不要捕捉通用的异常类型。捕捉 System.Exception会掩盖具体的异常乃至问题的本源。而且如果捕捉了所有异常的话,你就无法对某个具体的异常做出反应了。
l 不要对异常进行特殊处理。所谓的特殊处理是指捕捉 System.Exception ,然后在异常处理语句里专门去处理某个具体的异常。这么做的问题在于其它的异常会被过滤掉,这样就无法处理未知的结果了。
l 避免定义或使用 object 类型。Object 类型可能会不小心装箱或是向下转型成某个具体类型。装箱和向下转型都会影响到应用程序的性能。
l 重复的代码就是未来问题的滋生地。把代码重构成可重用的模块或者函数。
l 总是使用泛型集合而不是集合。数组和向量、链表、字典等比起来虽然有点老套,但是数组比集合更简单,通常速度也更快。复杂度越低,问题也就越少。
l 不要为.NET框架类库(FCL)里已有的功能使用原生的 API。
l for 语句比其它的循环方式要好。for 循环非常结构化并且可以增强程序员的素养。这个结构可以避免疏忽造成的错误。 while 语句等其它类型的循环虽然比较灵活,但是这种灵活性也为不小心的错误打开了方便之门。
l 不使用的对象应该设为 null 。然后你就可以可靠地检查对象的状态了。而且也能帮助垃圾回收的进行。
转载于:https://www.cnblogs.com/xiayong123/archive/2012/03/20/3717370.html
最后
以上就是激动大侠为你收集整理的防御式编程(一)的全部内容,希望文章能够帮你解决防御式编程(一)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复