今天给小伙伴们分享一些比较受大众喜欢的代码风格和一些命名规则~
然后呢,也会有一些反方向的例子~嘻嘻@
一.代码风格
代码风格更多的体现在程序的版式上面,代码版式虽然不会影响程序的功能,但会影响可读性。程序的版式追求清晰、美观,这是程序风格的重要构成因素。 可以把程序的版式比喻为“书法”。好的程序“书法”可以让人对程序一目了然,看得兴致勃勃。差的程序“书法”如螃蟹爬行,让人看得索然无味,并且也会令维护者烦恼有加。所以,良好的代码风格不仅能让自己的的代码更加吸引人并且易懂,在参加工作面试时或工作中也更能凸显出咱们的水平~接下来,将介绍一些常规的代码版式,如果觉得适合自己,可以直接模仿~
1.空行
空行起着分隔程序段落的作用。空行得体(不过多也不过少)将使程序的布局更加清晰。
【1-1】在每个类声明之后、每个函数定义结束之后都要加空行。图示如下。
【1-2】在一个函数体内,逻揖上密切相关的语句之间不加空行,其它地方应 加空行分隔。图示如下。
2.代码行
【2-1】一行代码只做一件事情。例如一行只定义一个变量,或只写一条语句,这样能使代码容易阅读,并且方便于写注释。
【2-2】像 if、for、while、do 等语句自占一行,执行语句不得紧跟其后。不论执行语句有多少都要加{},这样可以防止书写失误。优劣风格对比图如下所示~。
3.代码行内的空格
【3-1】关键字之后要留空格。像 const、virtual、inline、case 等关键字, 其后面至少要留一个空格,否则无法辨析关键字。像 if、for、while 等关键字之后应留一个空格再跟左括号‘(’,以突出关键字。
【 3-2】函数名之后不要留空格,紧跟左括号‘(’,以与关键字区别。
【3-3】‘(’向后紧跟,‘)’、‘,’、‘;’ 向前紧跟,紧跟处不留空格。
【3-4】‘,’之后要留空格,如 Function(x, y, z)。如果‘;’不是一行的结束符号,其后要留空格,如 for (initialization; condition; update)。
【3-5】赋值操作符、比较操作符、算术操作符、逻辑操作符、位域操作符, 如“=”、“+=” 、“>=” 这类操作符前后不加空格。
4.对齐
【4-1】程序的分界符 ‘ { ’ 和 ‘ } ’ 应独占一行并且位于同一列,同时与引用 它们的语句左对齐。
【4-2】{ }之内的代码块在 ‘ { ’ 右边数格处左对齐。
5.注释
注释 ,这个工具大家在编写代码过程中常常会使用,养成良好的注释风格能让自己的代码更加让人理解,也能让自己在看过去写的代码时能够回想起当时的思路。
在不同的程序语言中,注释符也会有所不同。C 语言的注释符为“/*…*/”。C++语言中,程序块的注释常采用“/*…*/”,行注释 一般采用“//…”。
注释通常用于:(1)版本、版权声明; (2)函数接口说明; (3)重要的代码行或段落提示。 ( 虽然注释有助于理解代码,但注意不可过多地使用注释。)
【5-1】注释是对代码的“提示”,而不是文档。程序中的注释不可喧宾夺主, 注释太多了会让人眼花缭乱。注释的花样要少。
【5-2】如果代码本来就是清楚的,则不必加注释。否则多此一举,令人厌烦。 例如 i++; // i 加 1。这是多余的注释
【5-3】边写代码边注释,修改代码同时修改相应的注释,以保证注释与代码 的一致性。不再有用的注释要删除。
【5-4】注释应当准确、易懂,防止注释有二义性。错误的注释不但无益反而有害。
【5-5】尽量避免在注释中使用缩写,特别是不常用缩写。
【5-6】注释的位置应与被描述的代码相邻,可以放在代码的上方或右方,不可放在下方。
【5-7】当代码比较长.特别是有多重嵌套时,应当在一些段落的结束处加注释,以便于阅读。
二.命名规则
目前比较著名的命名规则当推 Microsoft 公司的“匈牙利”法,该命名规则的主要思想是“在变量和函数名中加入前缀以增进人们对程序的理解”。例如所有的字符变量均以 ch 为前缀,若是指针变量则追加前缀 p。如果一个变量由 ppch 开头,则表明它是指向 字符指针的指针。 “匈牙利”法最大的缺点是烦琐。例如 int i, j, k; float x, y, z; 倘若采用“匈牙利”命名规则,则应当写成 int iI, iJ, ik; // 前缀 i 表示 int 类型 。float fX, fY, fZ; // 前缀 f 表示 float 类型 如此烦琐的程序也会让咱们阅读代码的过程中感到枯燥。
1.共性规则命名法
【规则1-1】标识符应当直观且可以拼读,可望文知意,不必进行“解码”。 标识符最好采用英文单词或其组合,便于记忆和阅读。切忌使用汉语拼音来命名。 程序中的英文单词一般不会太复杂,用词应当准确。例如不要把 CurrentValue 写成 NowValue。
【规则 1-2】标识符的长度应当符合“min-length && max-information”原则。 几十年前老 ANSI C 规定名字不准超过 6 个字符,现今的 C++/C 不再有此限制。一 般来说,长名字能更好地表达含义,所以函数名、变量名、类名长达十几个字符不足为怪。那么名字是否越长越好呢?不见得! 例如变量名 maxval 就比 maxValueUntilOverflow 好用。单字符的名字也是有用的,常见的如 i,j,k,m,n,x,y,z 等,它们通常可用作函数 内的局部变量。
【规则 1-3】命名规则尽量与所采用的操作系统或开发工具的风格保持一致。 例如 Windows 应用程序的标识符通常采用“大小写”混排的方式,如 AddChild。 而 Unix 应用程序的标识符通常采用“小写加下划线”的方式,如 add_child。别把这两类风格混在一起用。
【规则 1-4】程序中不要出现仅靠大小写区分的相似的标识符。 例如: int x, X; // 变量 x 与 X 容易混淆。函数 foo 与 FOO 容易混淆 void foo(int x); // void FOO(float x)。
【规则 1-5】程序中不要出现标识符完全相同的局部变量和全局变量,尽管两者的作用域不同而不会发生语法错误,但也可能会使人误解。
【规则1-6】变量的名字应当使用“名词”或者“形容词+名词”。 例如: float value; float oldValue; float newValue。
【规则 1-7】全局函数的名字应当使用“动词”或者“动词+名词”(动宾词组)。 类的成员函数应当只使用“动词”,被省略掉的名词就是对象本身。 例如: DrawBox(); // 全局函数 。 box->Draw(); // 类的成员函数 。
【规则 1-8】用正确的反义词组命名具有互斥意义的变量或相反动作的函数等。 例如: int minValue; int maxValue; int SetValue(…); int GetValue(…)。
2。Unix \Linx应用程序命名法
【规则2-1】简洁性:程序名称应该简短且易于记忆。
【规则2-】描述性:名称应该能够描述程序的主要功能或用途。
【规则2-3】小写字母:Unix 系统通常不区分大小写,因此程序名称通常全部使用小写字母。
【规则2-4】单命令原则:每个程序应该执行一个单一的任务或功能。
规则2-5】避免缩写:尽量避免使用缩写,除非它们非常常见和广泛认可。
【规则2-6】使用连字符或下划线:如果程序名称由多个单词组成,可以使用连字符(-)或下划线(_)来分隔各个单词,例如 makefile
或 grep。
【规则2-7】避免使用特殊字符:不要在程序名称中使用空格或其他特殊字符。
【规则2-8】遵循惯例:许多Unix程序遵循一定的命名惯例,例如使用特定的前缀或后缀来表示程序的用途,如 co
(copy), rm
(remove), mv
(move), cp
(copy)等。
【规则2-9】避免与现有命令冲突:确保程序名称不与系统命令或其他常用程序的名称冲突。
【规则2-10】可移植性:程序名称应该易于在不同的Unix系统和环境中使用,避免使用特定系统的专有名称。
文章参考书籍《高质量C\C++编程指南》 ;高质量编程指南.pdf (vrlab.org.cn)
(小伙伴们可以自行查阅哦》
以上就是今天全部内容了,欢迎各位小伙伴们添加或者校正。好的编程习惯是慢慢养成的,所以小伙伴们平时编写代码时也应该对自己要求严格一些,然后每天进步一点点,早日成为技术大牛@