代码大全:变量名的力量
一、为什么要定义一个好的变量名#
我们都知道代码是写给人看的,不仅要阅读性好,而且应该便于维护。但是,我要说的但是,在学校学习一门编程语言时,没有老师会教如何写一个好的变量名,在企业完成程序时,也很少会有代码规范培训学习,我们都是按照自己认为还不错的命名方法去给变量命名。所以互联网上很多吐槽代码写的多烂,例如你会看到这些变量名:a, b1, pinying, ... etc
一方面学校课时有限,没有时间来教授这方面的知识,另一方面,上课的老师的编码经验不足,无法给学生普及这方面的知识。在企业要普及这些知识,也是有时间、人力成本的,通常会采用 code review
小组会议来审查代码,很少会单独抽时间给大家集体培训这方面的内容。
随着编码经验的增加,代码质量应该更上一层楼。但大部分人的代码质量基本无法提高,因为他们不认为他们的代码有什么问题,就算有问题(无法阅读或阅读难度极大),那也是别人的问题。优秀的程序员都有一颗不断进步的心,写一份代码就像写作一样。
其实,行业大佬(巨佬)基本都会留下关于他们作品(书籍或开源代码),由于他们的水品很高,这给大家学习提供了捷径,不禁想起那句话:“如果说我看得比别人更远些,那是因为我站在巨人的肩膀上 -- 牛顿”。
例如《代码大全》迈克.康奈尔,很多优秀的程序员推荐把这本书作文必读书籍(工具书)。因为对变量名有一个科学规范的认识,直接阅读该书第11章。
原文引用摘录:
讨论如何为变量取好的名字与讨论如何高效编程同样重要
一个好的变量名是可读的、易记的和恰如其分的。为变量命名时最重要的考虑事项是,该名字要完全、准确地描述出该变量所代表的事物。
一个好的名字通常表达的是“什么”(what),而不是“如何”(how)。
记住,名字对于代码读者的意义要比对作者更重要
二、如何定义一个好的变量名#
为了控制变量名的长度,变量名太长也不利于阅读,一般都会采用单词缩写:
计算值限定词可加到名字的最后:
total, sum, average, max, min, record, string, pointer ...
常用对仗词:
- 循环下标
在循环内部使用循环下标 i ,例如 for (int i = 0; i < total; i++)
,这没有问题,但若作用域还涉及到循环之外,那么便不能起一个这么简单的变量名了。
- 状态变量(或 布尔变量)
不要给一个状态变量命名为 status, state...,状态有很多种,若状态只有两种,可以通过布尔值赋值,例如:
bool success = true;
bool done = false;
bool error = true;
bool ok = false;
若涉及两种以上的状态,一般建议用一个枚举类型用来赋值,例如:
enum COLOR
{
RED,
BLUR,
YELLOW,
BLACK
};
int eye_color = BLACK;
三、应该避免的名字#
变量命名一般性原则:
-
避免使用令人误解的名字或缩写
-
避免使用具有相似含义的名字
-
避免使用具有不同含义但却有相似名字的变量
-
避免使用发音相近的名字
-
避免在名字中使用数字
-
避免在名字中拼错单词
-
避免使用英语中常常拼错的单词
-
不要仅靠大小写来区分变量名
-
避免使用多种自然语言
-
避免使用标准类型、变量和子程序的名字
-
不要使用与变量含义完全无关的名字
-
避免在名字中包含易混淆的字符
其他要点:
作者:caojun97
出处:https://www.cnblogs.com/caojun97/p/17851514.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
2023-02-23 数据库迁移:批量 JSON文件 导入 SQL Server