北海365信息分类

编码规范汇总【持续更新】

编码规范汇总【持续更新】

目录

前言

规范标准

C++规范

C#规范

规范记录

命名

硬编码

单例类【线程安全】

Qt定义类【隐式内存共享】

前言

作为软件工程师,出产物就应该具备工程的健壮性和美观性。因此代码规范是作为软件工程师的职业素养。但总所周知,程序员的工作基本就是在维护一座屎山,这确实是现实中种种客观条件约束下导致的。 记录本篇博客,也是希望本人在打码过程,能够保持负责任的初心,以及追求完美的极客精神吧。 诸君共勉。愿人间没有ugly的代码。

规范标准

首先列出一些常见的编码规范。

C++规范

一. 变量声明与命名风格

(1) 代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。但也常以双下划綫标识类内部变量。

反例:_name / __name / $name / name_ / name$ / name__

(2) 代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。 说明:正确的英文拼写和语法可以让阅读者易于理解,避免歧义。注意,即使纯拼音命名方式 也要避免采用。

正例:alibaba / taobao / youku / hangzhou 等国际通用的名称,可视同英文。

反例:DaZhePromotion [打折] / getPingfenByName() [评分] / int 某变量 = 3

(3) 变量名和函数名以小写字母开头,开头之后的部分每个单词以大写字母开头。

正例:short counter; / char itemDelimiter = ' ';

(4) 类名以大写字母开头。

正例:XmlService / User

(5) 常量命名全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长。 正例:MAX_STOCK_COUNT

(6) 抽象类命名使用 Abstract 或 Base 开头;异常类命名使用 Exception 结尾;测试类 命名以它要测试的类的名称开始,以 Test 结尾。

(7) 避免短的或无意义的命名。使用尽量完整的单词 组合来表达其意。

正例::AtomicReferenceFieldUpdater。

反例:变量 int a 的随意命名方式。

(8) 枚举成员名称需要全大写,单词间用下划线隔开。

(9) 单个字符的变量名只适用于用来计数的临时变量,因为此时该变量的用途十分明显

(10) 声明每一个变量都要用独立的一行

正例:int height; / int width;

(11) 当一个变量被用到时再声明它。

(12) 对于指针或引用,在类型名和*或&之间用一个空格,但是在*或&和变量名之间没有空格

正例:char *x; / const QString &myString; / const char * const y = "hello";

(13) Qt的ui相关的,在ui里的变量也尽量要进行命名,特别是在代码中使用到的,反例:ui->frame,命名时注意添加该界面的标识性字段,尽量使得ui里所有变量名字在整个程序域中不重名,便于在QSS中控制。

正例:如在SE_ReportDialog.ui中的命名,m_reportFrame;在SE_CalculateWindow.ui中的命名:m_calculateFrame等。

(14) 如上个例子,在特定地方声明的变量应添加适当的前缀,如类的成员变量添加m_前缀;全局变量添加g_;局部变量添加l_。

(15) 接上一点,在前缀下划线后第一个字母,常为变量类型的缩写,如int为i,double为d。

正例:int m_iMonth; double l_dMoney;

二.代码格式

(1) 大括号的使用约定。如果是大括号内为空,则简洁地写成{

}即可,不需要换行;如果 是非空代码块统一如下例:

if ( ... )

{

...

}

else

{

...

}

(2) 左小括号和字符之间不出现空格;同样,右小括号和字符之间也不出现空格

反例:if (空格 a == b 空格)

(3) if/for/while/switch/do 等保留字与括号之间都必须加空格。

正例:if (foo)

(4) 任何二目、三目运算符的左右两边都需要加一个空格。

正例:lineF == lineN

(5) 注释的双斜线与注释内容之间有且仅有一个空格。

正例: // 这是示例注释,请注意在双斜线之后有一个空格

(6) 方法参数在定义和传入时,多个参数逗号后边必须加空格。即逗号左边没有空格,逗号右边有一个空格。

正例: QT_REQUIRE_VERSION(argc, argv, "4.0.2")

(7) 左引号的左边和右引号的右边都有一个空格,左引号的右边和右引号的左边都没有空格。如果右引号右边是右括号的话,它们之间没有空格。

正例: qDebug() << Q_FUNC_INFO << "was called with value1:" << value1 << "value2:" << value

相关推荐

beat365官方app下载手机版 csgo语音按键是哪个怎么改
爱彩365彩票官方app下载 B站《英雄联盟》俱乐部BLG战队亮相 “古风美男”AJ强势回归LPL
beat365官方app下载手机版 海外丨卡塔尔世界杯的另一面:无障碍环境让世界融合