最近发现自己在开发程序的过程中,经常会将好几种命名规范进行混用,这样使得程序的可读性下降,于是乎依然决定学习并使用Google的命令规范,并且坚持使用。

copy from https://www.cnblogs.com/chensheng-zhou/p/5127415.html

6:命令规则

  命令规则的一致性很重要

6.1 通用命名规则

  函数命名,变量命名,文件命令要有描述性,少用缩写。

  int price_count_reader;

  int num_errors;

  int num_dns_connections;

6.2 文件命名

  文件命名要全部小写,可以包含下划线(_)或连字符(-)。按项目约定来,如果并没有项目约定,"_"更好。

    *my_useful_class.cc

  C++文件要以.cc结尾,头文件以.h结尾。专门插入文本的文件则以.inc结尾。

  尽量让文件名更加明确.http_server_logs.h就比logs.h好。

6.3类型命名

  类型名称的每个单词首字母均大写,不包含下划线:MyExcitingClass,MyExcitingEnum.

  class UrlTable{...

  class UrlTableTester{...

  struct UrtTableProperties{...

6.4 变量命名

  变量名一律小写,单词之间用下换线连接。类的成员以下划线结尾,但结构体的就不用。

  如:a_local_variable,a_local_data_member_.

  普通变量:

    string table_name;

    string tablename

  类数据成员:

  class TableInfp]o{

    ...

    private:

      string table_name_;

      string tablename_;

      static Pool<TableInfo>* pool_;

    };

6.5 常量命名

  在全局或类里的常量名称前加k:kDaysInAWeek,且除去开头的k之外每个单词开头字母均大写。

6.6 函数命名

  常规函数使用大小写混合,取值和设值函数则要求与变量名匹配:

  MyExcitingFunction()

  常规函数:

    函数名的每个单词首字母大写,没有下划线。

    如果你的某函数出错是就要直接crash,那么就在函数名上OrDir,但这函数本身必须集成在产品代码里,且平时也可能会出错.

      AddTableEntry()

      OpenFileOrDie()

    取值和设置函数:

     取值(Accessors)和设置(Mutators)函数要与存取的变量名匹配。

      class MyClass{

        public:

          ...

          int num_entries() const{ return num_entries_;}

          void set_num_entries(int num_entries){ num_entires_ = num_entries;}

        privte:

          int num_entries_;

    };

6.7 命名空间

  命名空间基于项目名称和目录结构:google_awesome_project.

6.8 枚举命令

  枚举的命名应当和常量或宏一致:KEnumName或者ENUM_NAME

6.9 宏命名

Google C++命令规范的更多相关文章

  1. Google C++命名规范

    时间:2014.03.02 地点:基地 -------------------------------------------------------------------------------- ...

  2. 你可能不知道的Google Chrome命令行参数

    概述:              关于Google Chrome命令行参数(英文叫Google Chrome Command line switches),是Chrome为了实现实验性功能.方便调试. ...

  3. Google搜索命令语法大全

    以下是目前所有的Google搜索命令语法,它不同于Google的帮助文档,因为这里介绍 了几个Google不推荐使用的命令语法.大多数的Google搜索命令语法有它特有的使用格式,希望大家能正确使用. ...

  4. 给Linux添加google搜索命令

    一次面试时,面试官问怎么在终端直接做到在百度搜索自己的名字,当时没回答出来,面试官给了提示,问http协议.答案是说telnet连接www.baidu.com之后GET 昨天偶然看到一篇博客,http ...

  5. Google Python命名规范

    Google Python命名规范 module_name,  模块 package_name,  包 ClassName,  类 method_name,  方法 ExceptionName,    ...

  6. Google C++ 编码规范

    刚刚看到一位博主的文章分享Google C++ 编码规范 本人做一下记录,方便以后学习.. 中文在线版本地址: http://zh-google-styleguide.readthedocs.io/e ...

  7. Google Python 命名规范

    Google Python命名规范 module_name,  模块 package_name,  包 ClassName,  类 method_name,  方法 ExceptionName,    ...

  8. Google开源命令行参数解析库gflags

    Google开源命令行参数解析库gflags http://blog.csdn.net/lming_08/article/details/25072899 CMDLINE的解析 http://blog ...

  9. Google C++ 编码规范(中文版)

    Google C++ 编码规范(英文)在线地址:http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml 中文版PDF下载:本地下载

随机推荐

  1. Java IO的一些列子

    Write()方法写入文件 public static void main(String[] args){ try{ BufferedWriter out = new BufferedWriter(n ...

  2. mysql 严格模式 Strict Mode说明(转)

    转自https://www.cnblogs.com/jhcelue/p/7290243.html 1.开启与关闭Strict Mode方法 找到mysql安装文件夹下的my.cnf(windows系统 ...

  3. Zabbix-2.4-安装-4

    Zabbix api 对于以上两种方式,有些人都不选,倾向于使用第三种:使用zabbix api加上这个监控在把这台机器删除了,然后discovery和自动注册的都关闭了再换一种方式把它加进去,zab ...

  4. arttemplate记录

    1,传到前端显示数据,最好用一个包装类,否则不知道怎么拿值 这样是忽略类名,直接从data属性入手,然后用点操作符 如果data是个list,可以用这个形式

  5. centos7 虚拟机安装 以后不能联网问题

    1 设置 网络模式为桥接. 2 配置/etx/sysconfig/network-scrips/ifcfg-enthp0s3为如下配置( ip 网段 根据自己网段决定) TYPE=Ethernet P ...

  6. MySQL通过Navicat实现远程连接

    直接使用Navicat通过IP连接会报各种错误,例如:Error 1130: Host '192.168.1.80' is not allowed to connect to this MySQL s ...

  7. Scrapy 设置请求头

    爬虫的过程有些网站设置反盗链,需要我们在请求头中添加下,修改settings.py文件中添加 DEFAULT_REQUEST_HEADERS = { 'Accept': 'text/html,appl ...

  8. hadoop append 追加文件错误

    java.io.IOException:Failed to replace a bad datanode on the existing pipeline due to no more good da ...

  9. Spring Cloud Zuul 快速入门

    Spring Cloud Zuul 实现了路由规则与实例的维护问题,通过 Spring Cloud Eureka 进行整合,将自身注册为 Eureka 服务治理下的应用,同时从 Eureka 中获取了 ...

  10. centos添加额外测源,解决:No package openvpn available.

    centos添加额外测源,解决:No package openvpn available. ##添加额外的repositories,安装openvpn yum install epel-release ...