-
Notifications
You must be signed in to change notification settings - Fork 427
代码规范
onexming edited this page Feb 17, 2022
·
4 revisions
-
Ctrl
+,
, 打开设置 - 输入 clang-format
- 确保配置如下(VScode默认配置,一般不需要更改)
- 代码保存之前使用
ctrl + Shift + I
(有些时候可能无法使用) 或者 右键选择Format Document
变量命名表述清晰,尽量少用缩写,让人一眼就能看明白所表述的信息, 而不是去看注释;代码,注释禁止使用拼音。
- 全小写, 禁止使用大小写混合
- 变量名之间使用下划线"_"进行分割,例如:
price_count_reader, num_errors, num_dns_connections
。
- 全局变量使用
g_
开头(global), 例如:g_price
- 静态变量, 使用
s_
, 例如:s_count
使用c_
开头(const), 首字母大写 例如: c_Days_In_A_Week
- 不管是静态的还是非静态的, 类数据成员都可以和普通变量一样, 但要接下划线。
- 非静态成员在使用时一律加上
this->
指针。
class TableInfo {
...
private:
string table_name_; // 好 - 后加下划线.
static Pool<TableInfo>* s_pool_; // 好.
void print(){
std::cout << this->table_name_ << std::endl; // 使用时加 this->
}
};
- 首字母小写, 使用驼峰变量名,
myDog, setName, count, setCount
- 禁止使用下划线
_
首字母大写,大小写混用(驼峰变量名),Student, MyDog, CurrentMode
非必要不要使用自定宏,如果一定要使用,要保证唯一性,以防止对其他文件的干扰。
- 全部大写
- 下划线作为分割
- 使用 {文件名}_{作者名}_{宏名}
// 当前文件为 abc, 作者为onexming, 宏为myself_pi
#define ABC_ONEXMING_MYSELF_PI 3.3333
- 少写注释,让代码成为你的注释
- 对于使用到一些算法而非逻辑的代码(比如,圆识别,路径规划等), 写名输入,输出及其相对应的含义,算法名称, 一个相关url
- 对于一段较长的循环,if else等语句,写明代码的目的,简单描述处理逻辑。
- 为了完成一个目的占用过长的代码(比如代码长度超过半屏),考虑提取成一个函数,或单独成一个文件
- 对于if else中一个分支代码长度超过大半个屏幕的,考虑提取成一个函数。
- 对于频繁使用的一段代码,考虑提提取成一个函数
- 对于连续一段逻辑相似代码,考虑将需要处理的内容放入到数组中,使用循环处理数组。
- 提交代码前,清理(非注释)用于debug的代码
- 清理未使用的代码,编译时添加
-Wunused
可以检查出部分定义但未使用的代码
更多 改善丑陋的代码
- tabnine 基于AI的代码补全 Tabnine AI Autocomplete for Javascript, Python, Typescript, PHP, Go, Java, Ruby & more - Visual Studio Marketplace
全称 | 缩写 | 翻译 |
---|---|---|
calculate | calc | 计算 |
addition | add | 加 |
subtraction | sub | 减 |
multiplication | mul | 乘法 |
division | div | 除法 |
hexadecimal | hex | 十六进制 |
array | arr | 数组 |
list | lst | 列表 |
Sequence | seq | |
Segment | (s) seg | |
stack | stk | 栈 |
dictionary | dict | 字典 |
character | char | 字符 |
string | str | 字符串 |
text | txt | 文本 |
float | flt | 浮动 |
number | num | 数量、编号 |
image | img | 图像 |
bitmap | bmp | 位图 |
table | tbl | 表 |
link | lnk | 链接 |
lable | lbl | 标签 |
flag | flg | 标志 |
container | cntr | 容器 |
time stamp | ts | 时间戳 |
length | len | 长度 |
positive | pos | |
negative | neg | |
statistic | stat | 统计 |
summation | sum | 和 |
average | avg | 平均 |
maximum | max | 最大值 |
minimum | min | 最小值 |
middle | mid | 中值 |
increment | inc | 增加 |
increase | inc | 增加 |
decrease | dec | 减少 |
different | diff | 不同的 |
frequency | freq | 频率 |
optimization | opt | 最优 |
total | tot | 全部的 |
vertical | vert | 垂直 |
horizontal | horz | 水平 |
row | row | 行 |
column | col | 列 |
positon | pos | 位置 |
point | pt | 点 |
pointer | ptr | 指针 |
index | idx | 索引、指示 |
value | val | 值 |
reference | ref | 引用 |
status | stat | 状态 |
original | orig | 原件 |
source | src | 源头 |
address | addr | 地址 |
coordinates | coord | 坐标 |
previous | pre | 前一个 |
current | cur | 当前的 |
initalize | init | 初始化 |
destination | dst 或 dest | 目的 |
iteration | itr 或 iter | 循环、迭代 |
count | cnt | 计数器 |
temporary | temp 或 tmp | 临时 |
source | src | 源头 |
resource | res | 资源 |
result | res | 结果 |
return | ret | 返回 |
return | rtn | 返回 |
answer | ans | 响应、回答 |
buffer | buf 或 buff | 缓冲区 |
database | db | 数据库 |
administrator | adm | 管理员 |
password | pwd | 密码 |
user | usr | 用户 |
directory | dir | 目录 |
document | doc | 文档 |
library | lib | 库 |
function | func | 函数 |
object | obj | 对象 |
argument | arg | 实参 |
instance | ins | 实例 |
variable | var | 变量 |
parameter | param | 参数 (形参) |
encode | enc | 编码 |
prn | 打印 | |
delete | del | 删除 |
insert | ins | 插入 |
error | err | 错误 |
break | brk | 间断 |
package | pkg | 打包 |
escape | esc | 退出 |
execute | exec | 执行 |
command | cmd | 命令 |
configuration | config | 配置 |
edit | edt | 编辑 |
display | disp | 显示 |
initialize | init | 初始化 |
trigger | trig | 触发 |
capture | cap 或 capt | 捕获 |
system | sys | 系统 |
environment | env | 环境 |
window | win(wnd) | 窗口 |
device | dev | 设备 |
message | msg | 消息 |
signal | sig | 信号 |
information | info | 信息 |
error | err | 错误 |
drone | uav | 无人机 |
ugv | 无人车 |
感谢使用Prometheus自主无人机软件平台!