编程规范

编程规范.md

资料来源
ROS C++ Style Guide,本文基本严格遵守ROS出的Cpp规范
Google C++ Style Guide
ROS PyStyleGuide,Python的编程规范可以主要参考这个
Google Python Style Guide

各种常见的命名形式

  • CamelCased: 大驼峰命名法,又叫帕斯卡(Pascal)命名法。每个单词均不省略,且每个单词首字母均大写,单词与单词之间无下划线
  • camelCased: 驼峰命名法,每个单词均不省略,且初第一个单词首字母小写之外,其他单词首字母均大写,单词与单词之间无下划线
  • under_scored: 含有下划线的命名,每个单词均不能用缩写并且每个字母都是小写形式,单词与单词之间必须用“_”下划线连接
  • ALL_CAPITALS: 所有单词的所有字母均大写,单词之间以下划线相连。

此外还有一种匈牙利命名法,因不使用,不再赘述。

ROS中Cpp基本命名规范

Package包

建议采用under_scored方式命名

Topics/Services

建议采用under_scored方式命名

Files文件命名

建议所有文件命名采用under_scored的方式命名
其中cpp的头文件以“.h”结尾,源代码文件以“.cpp”结尾
如果一个文件是一个类ActionServer,则文件采用action_server.cpp方式命名

Folder文件夹命名

建议所有文件夹命名采用under_scored的方式命名

Windows不支持文件夹区分大小写,Linux支持文件夹区分大小写,故建议一律小写,并且避免使用空格。但是对于一些包含内容很广泛,含义也很广泛的文件夹,可用CamelCased的方式命名,比如:Downloads

Class 类名

建议采用CamelCased的方式命名
一个设计的比较好的类的封装,一定能够最多用3个单词的类名描述清楚。

注意
类声明的次序是:typedefs和enums,常量,构造函数,析构函数,成员函数(含静态成员函数),数据成员,含静态数据成员
作用域次序是:public, protected, private, 成员函数在数据成员前

函数Function命名

函数命名建议采用camelCased,如:bool insertKeyframe(cv::Mat picture_instance)

这里分歧较多,一般来说,越权威的库更倾向于小写,比如Cpp标准库和Boost库采用under_scored的方式,openCV库采用了camelCased的命名方式,ORBSLAM采用了CamelCased的命名方式,Google建议采用CamelCased的命名方式,为了与已有代码统一,本项目建议统一采用camelCased的方式作为函数命名。

注意
每个函数不建议超过40行
函数命名中建议采用“动词+名词对象”的形式,不能使用介词
函数输入参数在前,输出参数在后

变量Variable命名

变量命名建议使用under_scored

变量名禁止过度缩写

常量

常量请全部大写,单词之间以下划线分割

成员变量

建议以under_scored方式命名,并且在后面加上“_”下划线,例如:min_distance_

全局变量

建议以under_scored的方式命名,并在前面加"g_",例如:g_max_distance

命名空间名称

建议以under_scored方式命名

更多Cpp命名规范

  1. 缩进建议用4个空格,但是Clion中也可以用Tab,会自动转换为4个空格。
  2. if语句,while语句和for语句请务必加上大括号“{ }”
  3. 所有类请务必用#ifdef PACKAGE_PATH_FILE_H #define PACKAGE_PATH_FILE_H #endif 来保护。

注释规范

类注释

示例:

/**
@brief 这个类是为了实现。。。。
其实现目的是干嘛。。。

详细描述,必须与上面隔一空行
*/
class ExampleClass{
};

函数注释

示例:

/**
@brief 打开文件
@param[in] fileName 要打开的文件名
@param[out] var_name 描述
@param[in,out] var_name 描述
@param var_name 这种写法也可以
@return 返回文件编号
@note 注意文件打开后,则必须。。。。

*/
int OpenFile(const char* fileName, const char* fileMode);

变量注释

示例:

int var; ///< 创建一个int类型的变量
                ///< 这一行可选,如果上面只有一行,则是brief介绍,如果有多行,则是detail介绍

命名空间注释

/**
@brief 命名空间的简单概述 \n(换行)

命名空间的详细概述
*/
namespace OST
{
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值