像造物主一样设计--防御式编程
2012-08-30 21:22
134 查看
在设计的过程,设计应该像造物主创造人类一样,把会考虑到的问题都包括在内,这样我们就可以抵御一般的问题。对于癌症这种异常,可能有造物主当时没有考虑到,这属于异常,但是造物主给了我们自己处理异常的本领,可能是可以自我扩展,所以我们自己可以去处理异常。
记得上次尖刀班考试中,发现自己在看《代码大全》时不甚仔细,需要自己反思一下,在这里也趁此机会重温一下自己学习的这一章知识:防御式编程。在考试的过程,想破脑子,哎,当时脑子就是不灵光:卡住了。
世界上什么是最好的设计,那就是人类,人类是自创立以来最好的一件产品,能够在发生错误的时候进行自我的防御与休整,而且能够自己调整发挥最好的状态,是最智能的产品,那什么是智能化呢?曾经图灵提过一个问题,那就是当你与对面交谈时,不能判断对方是人还是机器,那么对面的就是实现了智能,也许对面只是机器!
扯远了,需要总结了。断言可以处理代码中不应发生的错误,而错误处理技术能够处理那些预料中可能要发生的错误。
那什么是防御式编程?它的主要思想是子程序应该不因传入错误数据而被破坏,哪怕是由于其他子程序产生的错误数据。
如何处理进来的垃圾?1.检查所有来源于外部的数据的值;2.检查子程序所有输入参数的值;3.决定如何处理错误的输入数据。
错误处理技术主要包括哪些?总结如下:1.返回中立值;2.换用下一个正确的数据;3.返回与前次相同的数据;4.换用最接近的合法值;5.把警告信息记录到日志文件中;6.返回一个错误码;7.调用错误处理子程序或对象;8.当错误发生时显示出错消息;9.用最妥当的方式在局部处理错误;10关闭程序。
记得上次尖刀班考试中,发现自己在看《代码大全》时不甚仔细,需要自己反思一下,在这里也趁此机会重温一下自己学习的这一章知识:防御式编程。在考试的过程,想破脑子,哎,当时脑子就是不灵光:卡住了。
世界上什么是最好的设计,那就是人类,人类是自创立以来最好的一件产品,能够在发生错误的时候进行自我的防御与休整,而且能够自己调整发挥最好的状态,是最智能的产品,那什么是智能化呢?曾经图灵提过一个问题,那就是当你与对面交谈时,不能判断对方是人还是机器,那么对面的就是实现了智能,也许对面只是机器!
扯远了,需要总结了。断言可以处理代码中不应发生的错误,而错误处理技术能够处理那些预料中可能要发生的错误。
那什么是防御式编程?它的主要思想是子程序应该不因传入错误数据而被破坏,哪怕是由于其他子程序产生的错误数据。
如何处理进来的垃圾?1.检查所有来源于外部的数据的值;2.检查子程序所有输入参数的值;3.决定如何处理错误的输入数据。
错误处理技术主要包括哪些?总结如下:1.返回中立值;2.换用下一个正确的数据;3.返回与前次相同的数据;4.换用最接近的合法值;5.把警告信息记录到日志文件中;6.返回一个错误码;7.调用错误处理子程序或对象;8.当错误发生时显示出错消息;9.用最妥当的方式在局部处理错误;10关闭程序。
相关文章推荐
- 电路和程序一样,不是设计出来的,是调出来的
- 新人必读,毕业了就别像学生一样做设计了
- PAGE:像Visual Studio一样设计Python GUI窗体
- 就像大家更熟悉的const一样,volatile是一个类型修饰符(type specifier)。它是被设计用来修饰被不同线程访问和修改的变量。
- 新人必读|毕业了就别像学生一样做设计了
- 像Delphi IDE一样运行时设计控件IDesignerNotify, IDesignerHook的实现
- Cocosd-x设计模式 -- 防御式编程模式
- 基本上,把switch,用设计模式代替,肯定是bug和过度设计。想想,本来修改一个文件几行代码可以解决的问题,变成修改3-6个类才能实现一样的功能。不是傻是什么?
- Visual Studio 2005 可以像DreamWeaver一样同时显示代码和设计了
- 过度配置与过度设计一样可怕
- Cocosd-x设计模式之五 :防御式编程模式
- 项目实训--设计一个银行类(银行类与链表类、节点类构成依赖关系--和类的组合关系不太一样)
- 设计一个将10MHZ的时钟分频为500khz的时钟。其基本原理与1/2分频器一样,但需要定义一个计数器,以便准确获得1/20分频。
- cocos2d-x设计模式发掘之五:防御式编程模式
- [从架构到设计]第二回:对象的旅行---对象和人,两个世界,一样情怀
- 客制化 GH60 XD60 像 Poker 一样的 60% 机械键盘 (1)设计键盘
- cocos2d-x设计模式发掘之五:防御式编程模式
- Codeuml —— 设计 UML 图表跟你编码一样快 - 技术翻译 - 开源中国社区
- 像瑞士军刀一样设计软件
- cocos2d-x设计模式发掘之五:防御式编程模式