代码规范总结
腾讯公司代码规范:
Java:
1、 首先,代码都要做到:代码要缩进;变量的命名要有意义;要有适当的注释。
2、 达意>简洁
3、 骆驼法则:单词之间不使用特殊符号分割,而是通过首字母大写来分割。比如: SupplierName, addNewContract,而不是 supplier_name, add_new_contract。
4、 尽量使用通俗易懂的英文单词,如果不会可以向队友求助,实在不行则使用汉语拼音,避免拼音与英文混用。比如表示归档,用archive比较好, 用pigeonhole则不好,用guiDang尚可接受。
5、 注释应该少而静。另外,我有一个坏习惯,就是不要或者不确定的代码喜欢注释掉,但是注释不是用来管理代码版本的,如果有代码不要了,直接删除,svn会有记录的,不要注释掉,否则以后没人知道那段注释掉的代码该不该删除。
6、 每个if while for等语句,都不要省略大括号{}
看下面的代码:
if (a > b)
a++;
如果在以后维护的时候,需要在a > b 时,把b++,一步小心就会写成:
if (a > b)
a++;
b++;
这样就错了,因为无论a和b是什么关系,b++都会执行。 如果一开始就这样写:
if (a > b) {
a++;}
相信没有哪个笨蛋会把b++添加错的。而且,这个大括号使作用范围更明显,尤其是后面那行很长要折行时。
7、在需要留空的地方放一个空语句或注释,告述读者,你是故意的
比如:
if (!exists(order)) {
;
}
或:
if (!exists(order)) {
//nothing to do
}
8、???减少嵌套的方法有很多:
合并条件
利用 return 以省略后面的else
利用子方法
9、???善用TODO:
在代码中加入 //TODO: ,大部分的ide都会帮你提示,让你知道你还有什么事没有做。比如:
if (order.isPaid()) {
//TODO: 更新订单
}
c++:
1、 不允许把多个短语句写在一行中, 即一行只写一条语句。
2、 程序块要采用缩进风格编写, 缩进的空格数为4个。说明: 对于由开发工具自动生成的代码可以有不一致。
3、 对齐只使用空格键, 不使用TAB键。
4、 在两个以上的关键字、变量、常量进行对等操作时, 它们之间的操作符之前、之后或者前后要加空格; 进行非对等操作时, 如果是关系密切的立即操作符(如->), 后不应加空格。
说明: 采用这种松散方式编写代码的目的是使代码更加清晰。
由于留空格所产生的清晰性是相对的, 所以, 在已经非常清晰的语句中没有必要再留空格, 如果语句已足够清晰则括号内侧(即左括号后面和右括号前面)不需要加空格, 多重括号间不必加空格, 因为在C/C++语言中括号已经是最清晰的标志了。
在长语句中, 如果需要加的空格非常多, 那么应该保持整体清晰, 而在局部不加空格。给操作符留空格时不要连续留两个以上空格。
5、对于变量命名, 禁止取单个字符(如i、j、k… ), 建议除了要有具体含义外, 还能表明其变量类型、数据类型等, 但i、j、k 作局部循环变量是允许的。
说明: 变量, 尤其是局部变量, 如果用单个字符表示, 很容易敲错(如i写成j), 而编译时又检查不出来, 有可能为了这个小小的错误而花费大量的查错时间。
竞赛规范:
整体规范
1. 空行:在长代码的条件下,若代码量较大,应给不同作用的代码块中间用适当的空行隔开。若代码量过大,因适当的使用函数。
2. 括号:左括号不换行。
3. 缩进:推荐用两个空格作为缩进。
5. 变量名/函数名:(1) 应使用和作用有关的英文,可由多个单字组成。
(2) 简单变量名(一两个字母)应作用明显,不宜过多。
(3) 推荐使用大驼峰命名法(帕斯卡命名法):多个单词组成的名字应每个单词首字母大写。
例如 a, b, c, d 此类命名不宜过多。
首字母大写:PrintEmployeePaychecks()
下划线:print_employee_paychecks()
错误:Print_Employee_Paychecks()(下划线 + 首字母大写)、printemployeepaychecks() (全小写)
5. 成对书写:输入'()','[]','{}' 时应成对输入,避免疏漏。
6. 注释:注释时,'//' 应与代码行相隔两个空格,'//'后再添加一个空格。若在一行上,不宜过长。若有条件,推荐使用英文注释。
int left = 1, right = n; // left is the leftmost index of Array;
7. 对齐:应严格按照代码格式进行缩进。'{' 不换行,且每个 '{}' 直接的代码块应增加一个缩进格式!
8. 空格:每个运算符的两旁应严格增加一个空格,由逗号分隔的多个表达式前,严格用一个空格!(第一个表达式除外)
例如:if (a == b)、sum += a;、a && b、power(a, b, c, d, c + 1) 红色下划线处均为一个空格。
细节规范
1. 头文件:引入头文件,"#include" 与 "<...>" 之间应有一个空格。
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
2. 定义常量:若题目已经给定常量,应用 "const" 类型定义,并给上界适当留出空间。
const int maxn = 1e5 + 10;
const int mod = 1e9 + 7;
3. 重命名:若题目需要使用到 long long ,应使用 "LL" 进行重命名。