在《代码大全2》第八章,介绍了防御式编程,防御式编程的主要思想:不是指编程时抱着防备别人批评和攻击的态度,而是建立一种永远不知道他人将如何使用你的程序的思想。我们在编写函数时防范程序因输入错误的数据而遭到破坏。更通俗来说就是要承认程序都会有问题、都需要被修改。
保证程序免受无效数据输入的破坏,这与建民老师在上课时让我们破坏别人编写的程序时所使用的方法不谋而合,程序需要输入一个int类型的数据,在输入double类型数据或者字符串的时候系统会直接崩溃,老师给出的解决方法是抛出异常,还可以选择检查外部输入数据的值,判断出输入数据的类型之后,再决定如何处理错误。
之后讲解用断言来处理错误,这与《程序员修炼之道》中的用断言式来处理问题一样,由此可见断言的重要性。
在编程过程中,我们也可以在一些地方使用进攻式编程来确保程序的安全,进攻式编程就是主动尝试激发程序的错误,只有开发时经历惨痛的失败,才不会让你发布产品后败的太惨。在使用进攻式编程调试好代码后,需要确保代码中保留多少防御式代码。保留那些检查重要错误的代码。去掉检查细微错误的代码(开发中部分需要调试、排错方便的代码,可以考虑通过版本控制,预编译开关等去掉,不是删掉;或者保留代码,但避免报错,将其不动声色地输出到日志中)。
第十章,使用变量时的注意事项,在声明变量时要注意初始化,在变量重复调用时也要注意初始化问题,在必要时可以使用static和finall关键词进行修饰。之后要注意使用变量的作用域,使变量的引用局部化,减小变量的作用域。在循环开始之前再去初始化该循环里使用的变量,而不是在该循环所属的子程序的开始处初始化这些变量。要注意每个变量只应该用于单一用途,且不应该有隐藏含义。
第十一章,变量名的力量,在使用变量名是,也应当像之前所说的子程序名称一样,要能够清晰的从变量名中了解到这个变量的大致作用,作者所写的较长的名字适用于较长的作用域,较短的名字适用于短的作用域则个方法我认为也很有作用,典型的布尔变量名:done(表示是否完成), error(表示是否发生错误), found(表示寻找、获得的布尔), success, ok(表示操作的状态)等。布尔变量应该是那些隐含了“真/假”含义的名字,如done和success等。应该使用肯定的布尔变量命名,而不是notFound,notDone等。应该避免的名称:避免使用令人误解的名字或缩写;避免使用具有相似含义的名字;避免使用不同含义名字却相似的名字;避免名字中使用数字;避免在名字中包含混淆的字符。
标签:变量,作用域,代码,编程,名字,使用,大全 From: https://www.cnblogs.com/wrf1/p/16950614.html