防御式编程是提高软件质量技术的有益辅助手段。防御式编程的主要思想是:子程序应该不因传入错误数据而被破坏,哪怕是由其他子程序产生的错误数据。这种思想是将可能出现的错误造成的影响控制在有限的范围内。 主要内容如下: 1.保护程序免遭非法输入数据的破坏 1.检查所有来源于外部的数据的值 2.检查子程序所有 ...
分类:
其他好文 时间:
2017-12-07 20:51:15
阅读次数:
149
最近在进行一个C/S模型程序集成测试时屡次出现程序崩溃而费时去寻找bug的问题。为此我和团队成员一起探讨了何谓”防御式编程“,为何要做”防御式编程“。 何谓防御式编程,“防御式编程的中心思想是:子程序不因传入错误数据而被破坏,哪怕是有其他程序产生的错误数据。”引自《代码大全》p187——(防御式编程 ...
分类:
其他好文 时间:
2017-12-07 20:50:14
阅读次数:
133
防御式编程,不要相信任何人和服务。你要做好对自身的保护,号称4个9的AWS不也宕机了吗! 防御式编程,不要相信任何人和服务。你要做好对自身的保护,号称4个9的AWS不也宕机了吗! 你所担心的事一定会发生,而且可能马上会发生。最近上了一些功能,你说好像这个地方可能会有问题,你最好赶紧看,也许马上就会有 ...
分类:
其他好文 时间:
2017-07-01 23:20:11
阅读次数:
236
防御式编程,不要相信任何人和服务。你要做好对自身的保护,号称4个9的AWS不也宕机了吗! 防御式编程,不要相信任何人和服务。你要做好对自身的保护,号称4个9的AWS不也宕机了吗! 你所担心的事一定会发生,而且可能马上会发生。最近上了一些功能,你说好像这个地方可能会有问题,你最好赶紧看,也许马上就会有 ...
分类:
其他好文 时间:
2017-07-01 22:46:27
阅读次数:
241
背景
事情的来由还要从几十几亿年前的一次星球大爆炸说起,sorry,背错台词了,是从几天前讨论接口返回数据和几个月前讨论课件本地数据结构说起,简单的说,就是碰到约定好的内容出现异常,是我们在程序中内...
分类:
其他好文 时间:
2016-11-21 11:18:21
阅读次数:
200
这周阅读了《代码大全》的第八章 防御式编程,里面讲到断言,其中断言是指在开发期间使用的、让程序在运行时进行自检的代码。断言只在开发和维护阶段使用。 还有使用断言的建议: 1、 用错误处理代码来处理预期会发生的状况,用断言来处理绝对不应该发生的状况。断言是用来检查用于不该发生的情况,而错误处理代码是用 ...
分类:
其他好文 时间:
2016-04-06 21:41:27
阅读次数:
161
优点:防御式编程能够在开发早期发现错误。例代码:下面是相关存取方法的实现代码。- (void)setTire:(Tire *)tire atIndex:(int)index {
if (index 3) {
NSLog (@"bad index (%d) in setTire:atIndex:", index);
exit (1);...
分类:
其他好文 时间:
2015-06-19 11:50:48
阅读次数:
108
cnblogs果然热闹,我好喜欢这里的氛围,今天分享下自己对“防御式编程”的看法吧! 一直以来,我们项目深受NullPointerException的影响。因为引用为空而引起的问题,从项目诞生的那天起,就没有断过,错误日志经常爆出java.lang.NullPointerException。我与其....
分类:
其他好文 时间:
2015-01-19 22:15:01
阅读次数:
152
8.1 保护数据免遭非法输入数据的破坏garbage in ,garbage out!三种方法处理进来的垃圾数据1 检查所有的来源于外部的数据值。2 检查子程序的所有输入参数值。3 决定如何处理错误的输入数据。8.2 Assertions
分类:
其他好文 时间:
2014-12-25 13:01:40
阅读次数:
112
前两天和一同学谈到程序出错应该如何处理的问题,他讲到错误处理的两个原则, 第一,应该在错误发生时立即将它抛出,而且得抛的很明显,有些人采用静默出错的原则,尝试修复错误并继续运行,这回导致代码调试起来很困难,所以他认为,当程序逻辑出错时,应该立刻崩溃,并生成一段有意义的错误消息,立即崩溃是为了不...
分类:
其他好文 时间:
2014-09-03 00:10:15
阅读次数:
322