一、使用变量的一般原则

  1、变量初始化原则:

    通常在变量声明时初始化;

    在靠近变量第一次使用的位置初始化;

    在类的构造函数里初始化变量。

  2、作用域:

    使变量引用局部化,即把引用到变量的地方尽可能集中在一起;

    尽可能地缩短变量的存活时间;

    尽可能地使变量的用途单一化(比如,pageCount的取值可能代表打印纸张的数量,但是如果它等于-1的话,表示有错误发生。应避免使用这样的变量。);

    确保使用了所有已声明变量。

二、变量命名原则

  一个好记的名字通常都是问题,而不是解决方案。一个好名字通常表达的是What而不是How,如果一个名字反映了计算的某些方面而不是问题本身,那么它

反映的就是how而不是what,请避免使用这样的变量名。(举例表示,想要表示一条员工数据,employeeData就比inputRec好,后者强调的是输入这一计算过程;

再比如想要表示打印机状态,printerReady就比bitFlag更好,后者更具有计算机特征。)

很多程序都有表示计算结果的变量:总额、平均值等,如果你要使用Total、sum、max、min等词语来修饰名词时,请把限定词加到名字的最后。当然如果你使用

Num时,我们通常约定,num放在变量名的开始位置代表一个总数:numCustomers表示员工总数。

1、为特定类型的数据命名

  作为循环变量使用:如果这个变量需要在循环之外使用,那么就应该取一个比i、j、k更有意义的名字,尤其是在你使用了多个嵌套循环时。

  作为状态变量使用:通常来说,标记变量应该用枚举类型、布尔型、具名常量来赋值,同时,也应该同上值进行比较。

  作为临时变量使用:建议使用准确而且具有描述性的变量名。

  为布尔类型变量命名时:给布尔变量赋予隐含“真假”含义的名字,像done/success这样的名字,他们的状态要么是完成要么是没有完成;要么是成功要么是失败。

而像status或者sourceFile这样的变量就看不出这些含义。不建议在状态变量前面加上is,这会降低程序的可读性;同时也不建议使用否定的变量名,比如notFound、

notDone,这也会使得代码阅读变得困难。

  为枚举类型命名:使用枚举类型时,可以通过使用组前缀,如Color_、Month_来明确表示该类型的成员都属于同一组。通常使用大写表示枚举类型。

  为常量命名:应该根据常量所表示的含义,而不是该常量所具有的数值为该抽象事物命名。(比如FIVE是个很糟糕的名字,而NUMBER比FIVE好多了,因为如果FIVE等于6就显得很搞笑了。)

  2、关于C++中的一些非正式规则

  变量名和对象名以小写字母打头,类名和函数名以大写字母打头。全局变量加上g_前缀,而成员变量使用m_前缀。对于typedef和struct声明的类型名,全部使用大写,由于这可能会与预处理常量发生混淆,所以可以在这些类型前面加上t_的前缀表示类型。对于具名常量,C++中全部使用大写来表示,用下划线来分割单词。还有其他的一些命名规则:比如通常i、j、k表示整数下标;p是指针;除了全部大写的名字和特定的前缀,一般不使用下划线。

三、常见数据类型数据的使用

  1、关于指针的一些使用技巧

  在与指针分配相同的作用域中删除指针;在使用指针之前检查指针;先检查指针所引用的变量再使用它;如果你的代码里出现了p->q->r->s这样的语句,请考虑使用中间变量,增强代码的可读性;删除或者释放之前检查指针是否为空,删除或者释放指针之后,把它们设置为空值。

  C++中引入了指针和引用的概念,通常情况下,“按址传参”时我们使用指针,而“按值传参”时,我们使用引用(或是const引用)。C++11以来,引入了智能指针的,使用合适的智能指针也能减少指针错误的发生。

  2、关于全局数据的一些使用技巧

  只有万不得已时才使用全局数据,所以在使用全局数据时,要区分全局变量和类变量,相同条件下,优先使用类成员变量。当然也可以是使用访问器子程序来取代全局数据。在万不得已,必须使用全局数据时,可以通过以下3点,降低使用全局数据的风险:

  创建一种命名规则来突出全局变量;

为全局变量创建一份注释良好的清单;

  不用使用全局变量来存放中间结果;

最后一点,不要为了不使用全局变量而不使用全局变量。

四、非常见数据类型数据的使用

  

Coding能力提升小技巧的更多相关文章

  1. Python性能提升小技巧

    第一部分 1-使用内建函数: 你可以用Python写出高效的代码,但很难击败内建函数. 经查证. 他们非常快速 2-使用 join() 连接字符串. 你可以使用 + 来连接字符串. 但由于string ...

  2. 10个提升MySQL性能的小技巧

    从工作量分析到索引的三条规则,这些专家见解肯定会让您的MySQL服务器尖叫. 在所有的关系数据库中,MySQL已经被证明了完全是一头野兽,只要通知停止运行就绝对不会让你多等一秒钟,使你的应用置于困境之 ...

  3. iOS Xcode 小技巧,提升理解查询能力,Command + 点击鼠标右键 Jump to Definition等

    前言: 介绍下Xcode 小技巧,以及一下快捷键,让你调试程序更加出类拔萃,安排! Command + 点击鼠标右键 Jump to Definition,可能你平时也在用,但是你明白全部的用法吗,试 ...

  4. 学会这些 pycharm 编程小技巧,编程效率提升 10 倍

    PyCharm 是一款非常强大的编写 python 代码的工具.掌握一些小技巧能成倍的提升写代码的效率,本篇介绍几个经常使用的小技巧. 一.分屏展示 当你想同时看到多个文件的时候: 1.右击标签页: ...

  5. YbSoftwareFactory 代码生成插件【二十一】:Web Api及MVC性能提升的几个小技巧

    最近在进行 YbSoftwareFactory 的流程功能升级,目前已经基本完成,现将用到的一些关于 Web Api 及 MVC 性能提升的一些小技巧进行了总结,这些技巧在使用.配置上也相当的简单,但 ...

  6. python debug小技巧&&工程能力的几点建议

    Debug小技巧: 转载请声明本文的引用出处:仰望大牛的小清新 1.初次编程时,在每一个if后面都写上else,这样,如果你的else原本是不应该运行的,那么就可以在else中输出此时的状态信息便于排 ...

  7. 开发Android应用 提升性能的小技巧

    前 言 2015年,Android OS 目前在手机操作系统的市场占有率已达59%,权威机构预计,Android市场占有率在2016年将达到63%,由于Android的开放性,未来占有率还将不断增加, ...

  8. PHP开发小技巧,让你瞬间提升逼格

    说到PHP代码的优化,PHP开发的小技巧我想很多人都有自己的一套,下面分享一些小技巧,希望对大家有所帮助. 1.循环内部不要声明变量,尤其是对象这样的变量. 2.foreach效率更高,尽量用fore ...

  9. 9 个 Yoinkmac使用小技巧,提升你的 Mac 文档解决效率

    Yoinkmac是一个工具类应用程序,用于在苹果电脑上进行临时文档暂存,就像一个“中转站”将文件从一个窗口轻松移动到另一个窗口.类似的软件包括苹果电脑上的Dropshelf和Unclutter,但相比 ...

随机推荐

  1. #161: 给定n*n由0和1组成的矩阵,如果矩阵的每一行和每一列的1的数量都是偶数,则认为符合条件。 你的任务就是检测矩阵是否符合条件

    试题描述 给定n*n由0和1组成的矩阵,如果矩阵的每一行和每一列的1的数量都是偶数,则认为符合条件. 你的任务就是检测矩阵是否符合条件,或者在仅改变一个矩阵元素的情况下能否符合条件. "改变 ...

  2. Idea的pom文件导入依赖包仍然报错

  3. leetcode448

    public class Solution { public IList<int> FindDisappearedNumbers(int[] nums) { Dictionary<i ...

  4. V2Ray断流异常

    V2Ray断流异常   1. 问题描述 最近一段时间发现,代理十分不稳定,经常出现“断流”,具体表现为:打开需要代理的站点,需要访问两次,第一次访问失败,需要再刷新一次.查看错误日志内容: Proxy ...

  5. VULKAN学习资料

    1,中文开发教程:https://www.cnblogs.com/heitao/p/7193853.html

  6. test case VS test scenario

    ---恢复内容开始--- 1. test case: how to test --如何测试 test scenario: what to  be tested  --测试什么 2. test scen ...

  7. css选择器querySelector

    * querySelector(css选择器)* 通过css选择器去获取一个元素* 它获取到的只有一个元素,如果说是有重复的,那它只取第一个** 主语* document 从整个文档里去获取元素* 父 ...

  8. 微信小程序--getLocation需要在app.json中声明permission字段

    在微信小程序开发中,需要获取用户所在地理位置,结果提示‘getLocation需要在app.json中声明permission字段’ 这是因为开发者需要填写获取用户地理位置的用途说明. 具体解决方法: ...

  9. servlet 最大线程数探索笔记

    servlet默认是单例模式的,所以是单例多线程的.如果实现了singleservlet是可以多个servlet实例,下面是一个servlet的请求生命周期 1 客户端请求该 Servlet:加载 S ...

  10. oracle 连接字符串的问题

    未指定的错误,发生了一个 Oracle 错误,但无法从 Oracle 中检索错误信息.数据类型不被支持. 原因是你用的ADO   for   ORACLE的驱动是微软的Microsoft OLE DB ...