-
Notifications
You must be signed in to change notification settings - Fork 427
代码规范
onexming edited this page Apr 12, 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, 宏为myself_pi
#define ABC_MYSELF_PI 3.3333
-
.h
文件通常只包含声明,不包含定义 -
.hpp
通常包含声明和定义 -
.cpp
通常值包含定义
中英文注释均可
- 函数注释: 输出,输入含义; 简单描述工作原理
- 控制语句注释: 描述各个控制分支的工作内容
- 循环注释: 描述功能
- 复杂算法注释: 描述功能,附带算法介绍url(避免读代码的人搜错关键字)
- commit统一使用英文 (终端翻译工具)
分离原则: 为完成一个目的代码行数占了半个屏幕,拆分为一个函数
- 为了完成一个目的占用过长的代码(比如代码长度超过半屏),考虑提取成一个函数,或单独成一个文件
- 对于if else中一个分支代码长度超过大半个屏幕的,考虑提取成一个函数。
- 对于频繁使用的一段代码,考虑提提取成一个函数
- 对于连续一段逻辑相似代码,考虑将需要处理的内容放入到数组中,使用循环处理数组。
- 提交代码前,清理(非注释)用于debug的代码
- 清理未使用的代码,编译时添加
-Wunused
可以检查出部分定义但未使用的代码( add_compile_options(-Wunused))
更多内容 B站-改善丑陋的代码
- 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 | 无人车 | |
callback | cb | 回调函数(在后doSomethingCb) |
publish | pub | |
subscribe | sub | |
velocity | vel | 速度 |
Quaternion | quat | 四元数 |
感谢使用Prometheus自主无人机软件平台!