首页 > 其他分享 >代码大全2

代码大全2

时间:2022-12-04 20:34:29浏览次数:36  
标签:变量 作用域 代码 编程 名字 使用 大全

在《代码大全2》第八章,介绍了防御式编程,防御式编程的主要思想:不是指编程时抱着防备别人批评和攻击的态度,而是建立一种永远不知道他人将如何使用你的程序的思想。我们在编写函数时防范程序因输入错误的数据而遭到破坏。更通俗来说就是要承认程序都会有问题、都需要被修改。

保证程序免受无效数据输入的破坏,这与建民老师在上课时让我们破坏别人编写的程序时所使用的方法不谋而合,程序需要输入一个int类型的数据,在输入double类型数据或者字符串的时候系统会直接崩溃,老师给出的解决方法是抛出异常,还可以选择检查外部输入数据的值,判断出输入数据的类型之后,再决定如何处理错误。

之后讲解用断言来处理错误,这与《程序员修炼之道》中的用断言式来处理问题一样,由此可见断言的重要性。

在编程过程中,我们也可以在一些地方使用进攻式编程来确保程序的安全,进攻式编程就是主动尝试激发程序的错误,只有开发时经历惨痛的失败,才不会让你发布产品后败的太惨。在使用进攻式编程调试好代码后,需要确保代码中保留多少防御式代码。保留那些检查重要错误的代码。去掉检查细微错误的代码(开发中部分需要调试、排错方便的代码,可以考虑通过版本控制,预编译开关等去掉,不是删掉;或者保留代码,但避免报错,将其不动声色地输出到日志中)。

第十章,使用变量时的注意事项,在声明变量时要注意初始化,在变量重复调用时也要注意初始化问题,在必要时可以使用static和finall关键词进行修饰。之后要注意使用变量的作用域,使变量的引用局部化,减小变量的作用域。在循环开始之前再去初始化该循环里使用的变量,而不是在该循环所属的子程序的开始处初始化这些变量。要注意每个变量只应该用于单一用途,且不应该有隐藏含义。

第十一章,变量名的力量,在使用变量名是,也应当像之前所说的子程序名称一样,要能够清晰的从变量名中了解到这个变量的大致作用,作者所写的较长的名字适用于较长的作用域,较短的名字适用于短的作用域则个方法我认为也很有作用,典型的布尔变量名:done(表示是否完成), error(表示是否发生错误), found(表示寻找、获得的布尔), success, ok(表示操作的状态)等。布尔变量应该是那些隐含了“真/假”含义的名字,如done和success等。应该使用肯定的布尔变量命名,而不是notFound,notDone等。应该避免的名称:避免使用令人误解的名字或缩写;避免使用具有相似含义的名字;避免使用不同含义名字却相似的名字;避免名字中使用数字;避免在名字中包含混淆的字符。

标签:变量,作用域,代码,编程,名字,使用,大全
From: https://www.cnblogs.com/wrf1/p/16950614.html

相关文章

  • 给Typora的代码块设置默认语言
    1、链接下载ahk。https://autohotkey.com/download/ahk-install.exe 并安装2、编写脚本:新建一个txt文本,utf-8格式,将代码粘贴到文本内,扩展名为:ahk1#IfWinActiveahk_e......
  • 一行代码搞定整站灰度主题
    最近看到很多网站都是灰色的,这个是如何实现的呢?其实做法特别简单,css3里边有个滤镜属性,这个和photoshop里边的滤镜是一样的。关于滤镜属性就不在这里赘述了,大家可以点这里......
  • 详解cycleGAN(生成对抗网络)代码
    文章目录​​1.cycleGAN简介​​​​2.cycle代码详解​​​​main.py​​​​module.py​​​​model.py​​​​总结​​1.cycleGAN简介关于cGAN我主要参考了知乎量子位的......
  • 字符串-00003-堆上字符串-测试代码
    main.c头文件请参考:https://www.cnblogs.com/kxwslmsps/p/16949213.html实现文件myString.c请参考:https://www.cnblogs.com/kxwslmsps/p/16949223.html#include"myS......
  • octave的代码主要
    %samp3_27.mr=linspace(0,2*pi,60);[u,v]=meshgrid(r);x=(8+3*cos(v)).*cos(u);y=(8+3*cos(v)).*sin(u);z=3*sin(v);plot3(x,y,z);title('三维绘图');xlabel('x......
  • git合入代码过程中问题记录
    问题一、对远端仓库没有操作权限ERROR:Repositorynotfound.fatal:Couldnotreadfromremoterepository.定位思路1.检查git代码仓的公钥是否存在在github上仓......
  • Spring源码-01-调试代码
    Spring源码-01-调试代码Spring源码工程下新建模块用于调试源码一新建模块名称以spring为前缀二引入依赖plugins{id'java'}group'org.springframework'......
  • Jenkins+GitLab实现构建JAVA代码
    目录一、前置环境配置二、创建一个maven任务需要提前部署完成Jenkins+GitLab+maven可以参考我的其他文章进行部署一、前置环境配置1、安装MavenIntegration插件Jenki......
  • Request_获取请求行数据_方法介绍以及代码演示
    Request_获取请求行数据_方法介绍以及代码演示request功能:获取请求消息获取请求行数据GET/demo3?name=zhangsanHTTP/1.1......
  • 干掉“重复代码”,这三种方式绝了
    软件工程师和码农最大的区别就是平时写代码时习惯问题,码农很喜欢写重复代码而软件工程师会利用各种技巧去干掉重复的冗余代码。业务同学抱怨业务开发没有技术含量,用不到设......