多语言展示
当前在线:118今日阅读:61今日分享:18

《代码大全2》-读书笔记20180713

通过阅读提高职业技能,通过大纲笔记法,记录书籍中的重点;
工具/原料

《代码大全2》

方法/步骤
1

防御式编程1.主要思想:子程序应该不因传入错误数据而被破坏,哪怕是由其他子程序产生的错误数据;2.处理办法: 断言/错误处理程序  检查外部数据;  检查输入参数;  处理错误的输入数据;3.确定在发布版本的代码中保留多少防御式代码。  保留那些检查重要错误的代码;  去掉检查细微错误的代码;  去掉可以导致程序硬性崩溃的代码;  保留可以让程序稳妥地崩溃的代码;  为你的技术人员记录错误信息;  确认留在代码中的错误信息是友好的;

2

断言1.定义:在开发期间使用的、让程序运行时进行自检的代码,用于处理代码中 不应该发生的错误;2.2个参数:断言为真时的布尔表达式 + 断言为假时需要打印的错误信息;3.好处:可以帮助查清相互矛盾的假定、预料之外的情况以及传给子程序的错误数据等;4.断言主要用于开发和维护阶段,在生成产品代码时,可以将断言去掉;5.对于程序中可能出错的地方,可以使用断言/错误处理程序;

3

错误处理程序1.处理预料中可能要发生的错误,在程序的正确性与健壮性间平衡;2.方法:返回中立值、换用下一个正确的数据、返回与前次相同的数据、换用最接近的合法值、把警告信息记录到日志文件中、返回一个错误码、调用错误处理子程序或对象、当错误发生时显示出错信息、用最妥当的方式在局部处理错误、关闭程序。3.原则:人身安全攸关的软件更倾向正确性,消费类应用软件理注重健壮性;4.统一错误处理程序:记录错误编码和描述信息;

4

异常1.定义:把代码中的错误或异常事件传递给调用方代码的一种特殊手段。2.异常的基本结构:子程序通过throw抛出一个异常,再被调用链上层其他子程序的try-catch语句捕获。

5

隔离程序,使之包容由错误造成的损害。1.对穿越安全区域边界的数据进行合法性校验。2.在输入数据时,将其转换成恰当的类型。3.隔栏外部的程序使用错误处理技术,隔栏内部的程序使用断言技术。

6

辅助调试的代码1.不要自动地把发布版的限制强加于开发版之上;2.应该在开发期间使用一些内置工具,如eslint/webpack等,提高开发效率和错误诊断提示。3.尽早引入辅助调试的代码。4.计划移除调试辅助的代码。  使用类似ant和make这样的版本控制工具和make工具  使用内置的预处理器  编写你自己的预处理器  使用调试存根

7

进攻式编程1.定义:在开发阶段让异常显现出来,而在产品代码运行时让它能够自我恢复。

注意事项

因地制宜的调整你进行防御式编程的优先级

推荐信息