• 统一命名规则


     

     1. #define 保护

    所有头文件都应该使用 #define 防止头文件被多重包含, 命名格式当是:<PROJECT>_<PATH>_<FILE>_H_

    项目 SkinTK中的头文件 SkinTK/SkinTK/targetver.h 可按如下方式保护:

    #ifndef SKINTK_SKINTK_TARGETVER_H_
    #define SKINTK_SKINTK_TARGETVER_H_
    
    
    #endif//SKINTK_SKINTK_TARGETVER_H_
    
    
    

    2. 函数参数的顺序

    定义函数时, 参数顺序依次为: 输入参数, 然后是输出参数.

     

    3.cpp#include顺序

    <1>本CPP对应的.h

    <2>C系统文件

    <3>C++系统文件

    <4>其他库的.h文件

    <5>本项目的.h文件

     

    4.使用静态成员函数或名字空间内的非成员函数, 尽量不要用裸的全局函数.以免污染全局作用域.

     

    5.将函数变量尽可能置于最小作用域内, 并在变量声明时进行初始化.应使用初始化的方式替代声明再赋值

     

    6.禁止使用 class 类型的静态或全局变量: 它们会导致很难发现的 bug 和不确定的构造和析构函数调用顺序.

     

    7.仅当只有数据时使用 struct, 其它一概使用class.

    8.在类中使用特定的声明顺序: public:private: 之前, 成员函数在数据成员 (变量) 前;

    9.类中的声明顺序:

    每个区段内的声明通常按以下顺序:

    • typedefs 和枚举
    • 常量
    • 构造函数
    • 析构函数
    • 成员函数, 含静态成员函数
    • 数据成员, 含静态数据成员
    • 声明次序: public -> protected -> private;

    10.所有按引用传递的参数必须加上 const

    void Foo(const string &in, string *out);
    

     

    11.

    函数命名, 变量命名, 文件命名应具备描述性; 不要过度缩写. 类型和变量应该是名词, 函数名可以用 “命令性” 动词.

    int num_errors;                  // Good.
    int num_completed_connections;   // Good.
    

     

    12.变量命名:

    变量名一律小写, 单词之间用下划线连接. 类的成员变量以下划线结尾, 如:

    string table_name;  // OK - uses underscore.
    string tablename;   // OK - all lowercase.

    Warning

    string tableName;   // Bad - mixed case.
    
    全局变量:对全局变量没有特别要求, 少用就好, 但如果你要用, 可以用 g_ 或其它标志作为前缀, 以便更好的区分局部变量

    13.常量命名:

    有编译时常量, 无论是局部的, 全局的还是类中的, 和其他变量稍微区别一下. k 后接大写字母开头的单词

    const int kDaysInAWeek = 7;

    14.函数命名:

    常规函数:函数名的每个单词首字母大写, 没有下划线
    取值和设值函数:取值和设值函数要与存取的变量名匹配
    int num_entries()const { returnnum_entries_; }
    void set_num_entries(intnum_entries) {num_entries_ = num_entries;}
     
    15.枚举命名
    单独的枚举值应该优先采用 常量 的命名方式. 但 方式的命名也可以接受. 枚举名 UrlTableErrors (以及AlternateUrlTableErrors) 是类型, 所以要用大小写混合的方式.
    enum UrlTableErrors {
        kOK = 0,
        kErrorOutOfMemory,
        kErrorMalformedInput,
    };
    

    16.

    对那些临时的, 短期的解决方案, 或已经够好但仍不完美的代码使用 TODO 注释.

    // TODO(kl@gmail.com): Use a "*" here for concatenation operator.
    // TODO(Zeke) change this to use relations.
    
     
     
  • 相关阅读:
    dom4j读写XML文件
    Spring的javaMail邮件发送(带附件)
    PayPal网站付款标准版(for PHP)
    SpringMVC整合TaskExecutor线程池的配置/使用
    SELECT INTO和INSERT INTO SELECT(SQL Server)
    java简单的数据库查询(SQLServer数据库)
    oracle导入TYPE对象报错ORA-02304
    mysql将字符串转化为数字
    asp.net应用发布到IIS无法链接到oracle数据库
    使用js获取数组中最大、最小的数字
  • 原文地址:https://www.cnblogs.com/hgy413/p/3693583.html
Copyright © 2020-2023  润新知