编码风格约束

转载 2015年11月17日 19:16:00
1. 命名基本原则
    1.1. 类
        采用匈牙利命名法,首字母以C开头的命名方式.如:
        class CProtocolHeader
        {
        };
    1.2. 结构体
        原则上只能够对纯的数据结构采用struct关键字进行定义(接口采用interface宏),而对于与C语言保持
        兼容的数据结构在采用struct定义时,其成员变量可以不使用m_风格,而对于结构类型的名称必须使用S
        作为前缀,如下:
        struct SProtocolHeader
        {
            char bitmap[4];
            int  len;
        };
    
    1.3. 枚举量
        采用匈牙利命名法,首字母以E开头的命名方式,如:
        enum EProtocol
        { 
            EPROTOCOL_SEND = 0, 
            EPROTOCOL_RECV = 1 
        };
    
    1.4. 变量
        成员变量:采用首字母小写,m_作为前缀的书写方式。如:bool m_isClicked;
        全局变量:采用首字母小写,g_作为前缀的书写方式.如:bool g_isClicked;
        静态变量:采用首字母小写,s_作为前缀的书写方式.如:bool s_isClicked;
        临时变量:采用首字母小写的书写方式,如:bool isClicked;
            
    1.5. 常量,宏名称
        采用全部字母大写,采用下划线风格命名。
        a) 宏名称:包括宏常量、宏函数;
        b) 常量名:如:static const int MAX_LEN = 1000;
     
    1.6. 函数
        对函数、方法、类成员函数进行命名时,应该采用动词+宾语的方式进行命名,并且第一个单词首字母必
        须小写,不允许采用下划线风格。如:bool getNext( int col );
        
2. 关于换行问题
   对于有一些组合语句太长(如:if条件,while条件等等)在换行时必须遵循以逻辑独立为单位的子语句进行换
行,不能够仅仅依据某一行的长度是否大于屏幕宽度和某一固定值来进行视觉上的换行处理,如下:
    if ( A < B && C < D ) 假如太长
    应该如下:
        if ( A < B &&
             C < D )
    不能如下:
        if ( A <
             B &&
             C <
             D )
                 
3. 语句嵌套问题
   如果因为判断语句(if)导致程序结构出现太深层次的嵌套(超过三层)可以考虑采用判断条件的非来减少嵌
套层次,如下:
    if ( 成立 )
    {
        if ( 成立 )
        {
            if ( 成立 )
            {
            }
        }
    }
    可写为:
    if ( 不成立 ) return false;
    if ( 不成立 ) return false;
    if ( 不成立 ) return false;
        ...    ...    ...


4. 文件名宏问题
   对于应用于头文件中的用于避免重复包含的文件名宏必须采用如下形式:
        全大写文件名_全大写文件扩展名_
   如:
        文件名:BasicHelper.hpp
        宏:    BASICHELPER_HPP_


5. 头文件名扩展名
   对于只能应用于C++的头文件应该如此命名:    XXX.hpp
   对于可以应用于C语言的头文件名应该如此命名:XXX.h


6. 模板类定义
   一致要求在定义模板类时应该采用分离模式进行定义,对于模板类的声明头文件采用xxx.hpp的形式,其中不包
任何的实现代码,并将所有的实现代码统一存放于一个名称为xxx.inl的文件中,并且在xxx.hpp中通过
#include "xxx.inl"的形式在尾部包含该实现文件到头文件中。


7. 注释风格问题
   注释风格必须严格按照doxygen所定义的javadoc风格进行编写,不得任意修改注释形式和样式。
    
8. 接口的编写模式
   所有的接口必须以关键字interface开头,并且对于暴露给其他模块使用的接口必须添加导出符号XXX_PUBLIC,
析构函数必须采用虚析构函数,如下所示:
    interface XXX_PUBLIC IDbAgent
    {
        virtual bool get() = 0;
    public:
        IDbAgent() {}
        virtual ~IDbAgent() {}
    };    


9. 名称选词规则
   对于书写代码过程中需要进行命名的标识符(如:变量名、类名、函数名、常量名等),在选择英文单词作为
名称时应尽量采用完整英文单词,对于已经标准化或行业化的缩略词和合成词可以考虑直接采用,书写时采用与完
整英文单词相同的书写规则,如下所示:
   BasicHelper、MemoryManager、Sdh、Mstp、Mib、Eth、Rimi、Rpr、Ge、Fe、Lan、
   Wan、Perf、Stats、No、Num、Idx、Cmnd、Wdm、Ntp、Ftp、Http、Telnet、Samba、
   Linux、Solaris、Win32、Os、Mgr、Ref、Doc、Src、Inc、Ut、It、St、Rt、Cpp、
   Vc、Vcg、Tu、Tug、Au、Aug、Oc、Lcas、Vcat、Stm、Tmn、Cc、Cxx、Nms、Nmf、
   Asn、Snmp、Ip、Addr、Tcp、Udp、Mcast、Bcast、Ucast、Sys、Util、X86、X64、
   Cui、Gui、Gnu


10 在*.hpp *.cpp文件尾部需要有一个空行,否则在linux下编译时会给出警告.

谈谈良好的编码风格

能写出结构精巧的代码是一件令人羡慕的事情,能写出解决复杂问题模型的算法是一件令人羡慕而又佩服事情。虽然未必所有人能做到这些,但是每一个对代码有信仰的人至少要做到语法使用合理、代码简洁、逻辑清晰、变量的...
  • lanyuxinkong
  • lanyuxinkong
  • 2015年08月27日 16:26
  • 1724

C#编码风格小总结

最近连续使用了3个月时间的C#,对C#的类库基本可以驾轻就熟的应用了,在这段时间里也总结出了合适的编程风格,最近刚刚写完了一个网络状态监测的小程序,自认为风格可以代表自己的编程风格,主要单元全部贴出来...
  • wikiccc
  • wikiccc
  • 2014年01月23日 23:39
  • 847

谷歌公司的C++编码风格

1. 头文件¶   通常每一个 .cc 文件都有一个对应的 .h 文件. 也有一些常见例外, 如单元测试代码和只包含 main() 函数的 .cc 文件.  正确使用头文件可令代码在可读性、文件...
  • Bro_J
  • Bro_J
  • 2017年03月15日 18:10
  • 297

统一Eclipse的编码风格

作为一个团队,如果每个人都使用自己的编码风格,每次从服务器更新、提交代码后,无疑会增加团队不必要的代码阅读时间,所以有必要统一团队的编码风格。一个成熟的团队来源于实践中的经验积累和成员的磨合。 以E...
  • lanyuxinkong
  • lanyuxinkong
  • 2015年10月07日 10:34
  • 628

python的基本编码风格

一、标识符规则 第一个字符必须是字母或下划线; 其余字符可以是字母和数字或下划线; 大小写敏感; python中的关键字标识符以及“內建”(built-in)的标识符集合不可以使用 注:1) bui...
  • ZHAOLUOLIN
  • ZHAOLUOLIN
  • 2017年02月12日 12:51
  • 197

javascript es6编码风格

本章探讨如何将 ES6 的新语法, 运用到编码实践之中, 与传统的 JavaScript 语法结合在一起, 写出合理的、 易于阅读和维护的代码。 多家公司和组织已经公开了它们的风格规范, 具体可参阅...
  • qq_30100043
  • qq_30100043
  • 2016年12月13日 17:54
  • 625

Android编码规范风格指导(翻译)

原文地址:http://source.android.com/source/code-style.html 有很多为Android开源社区贡献代码的程序员,每个人都有不同的代码风格,为此googl...
  • leirenbaobao
  • leirenbaobao
  • 2015年04月28日 21:00
  • 772

java的编码风格

(1) 类名首字母应该大写。字段、方法以及对象(句柄)的首字母应小写。对于所有标识符,其中包含的所有单词都应紧靠在一起,而且大写中间单词的首字母。例如:   ThisIsAClassName ...
  • youyiweiqiuxuezhe
  • youyiweiqiuxuezhe
  • 2013年11月28日 16:40
  • 370

JAVA-编码规范-代码风格-命名

引言: 很多java规范,内容偏向于对排版的要求,对java语言特性使用上的注意事项描述较少,为了能帮助我们合理的使用java语言,规避语言陷阱,特发此专题博客。 代码总体原则: 1:清晰第一。...
  • cuigaochong
  • cuigaochong
  • 2015年09月23日 11:10
  • 3354

linux内核代码风格(中文)

Chinese translated version of Documentation/CodingStyleIf you have any comment or update to the cont...
  • ChrisNiu1984
  • ChrisNiu1984
  • 2011年07月20日 13:45
  • 2324
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:编码风格约束
举报原因:
原因补充:

(最多只允许输入30个字)