前言
- 什么是代码规范
- 一套用于统一代码开发的准则
- 为什么需要代码规范
- 提升代码可读性,提升团队效率
个人编写的代码规范
近期本人编写了一份以C/C++为主的代码规范。
其他语言开发者也可以阅读参考。
本文档可供中小团队二次修改后直接使用。
链接
cuber-lotus/CodeStandard: C/C++代码规范 (github.com)
请求合作
想对于各种成熟的代码规范,本文档还有很多欠缺,有格式方面,有内容方面,有准确性方面。
因此希望与大家一起来完善本规范。
大体章节
最后放一个大体的章节目录
代码规范
前言
目的
宗旨
使用说明
包和文件
用路径来管理不同模块
头文件与源文件
文件
注释
/**/与//
文件头注释
类注释
函数注释
代码注释
TODO注释
尾部注释
细节技巧
特殊情况
缩进
使用空格而不是tab
注释与注释目标对齐
类权限与class关键字对齐
不缩进情况
行长的限定
换行
语句块
for, while, if, switch, case, do, goto, try
if else
switch
goto
逗号后加空格
判断语句较长时运算符换行保持统一
指针和引用左右选择一边留空格
综合举例
命名
常用命名规范类型
长度应该适中
缩写
文件
namespace
class & struct
函数
变量
宏
enum
union
using和typedef
注意
运算符
多元运算符要左右空格
一元运算符要贴近变量成员访问符号要贴近变量
减少使用自增++和自减–
使用括号增加可读性
比较运算符左侧尽量写常量
用比较运算符代替非0即1
函数
函数功能应该明确
使用引用,减少使用指针
重载函数应该相邻编写
指针参数应该检测合法性
lambda表达式
类
继承顺序
权限顺序
内容顺序
构造函数顺序
运算符重载顺序
使用explicit避免隐式类型转换
自定义拷贝和移动语义
使用override, delete, default, final
特殊情况
内存管理
使用new/delete而非malloc/free
合理使用智能指针
其他
宏
异常
类型转换
明示类型长度
初始化
团队合作
不要修改不是自己写的文件
不要修改已经确定提供给外部的接口名
后记