zoukankan      html  css  js  c++  java
  • 阅读腾讯编程规范的笔记

    阅读优秀公司的编程规范有助于规范自己的代码规范,培养良好的编程习惯。以下是我阅读腾讯编程规范时,发现自己做的不是很好或者没有做到的地方。特记录下来,警示自己。

    一、注释

    1、注释的主要目的应该是解释为什么这么做,而不是正在做什么。如果从上下文不容易看出作者的目的,说明程序的可读性本身存在比较大的问题,应考虑对其重构。

    2、避免非必要的注释

    3、对于所有有物理含义的变量、常量,如果其命名不是充分自注释的,在声明时都必须加以注释,说明其物理含义。

    4、对重要变量的定义需编写注释,特别是全局变量,更应有较详细的注释,包括对其功能、取值范围、以及存取时注意事项等的说明。

    5、分支语句(条件分支、循环语句等)需编写注释。

    二、命名

    1、命名规范必须与所使用的系统风格保持一致,并在同一项目中统一。 

        1)如在UNIX系统,可采用全小写加下划线的风格或大小写混排的方式,但不能使用大小写与下划线混排的方式。 

        2)用作特殊标识如标识成员变量或全局变量的m_和g_,其后加上大小写混排的方式是允许的

    三、可读性

    1、用括号明确表达式的操作顺序,避免使用默认优先级。

    四、变量结构

    1、尽量少使用全局变量,尽量去掉没必要的公共变量。 

    2、变量,特别是指针变量,被创建之后应当及时把它们初始化,以防止把未被初始化的变量当成右值使用。

    3、仔细设计结构中元素的布局与排列顺序,使结构容易理解、节省占用空间,并减少引起误用现象。

    4、尽量减少没有必要的数据类型默认转换与强制转换。

    5、当声明用于分布式环境或不同CPU间通信环境的数据结构时,必须考虑机器的字节顺序、使用的位域及字节对齐等问题。 

    五、函数、过程

    1、调用函数要检查所有可能的返回情况, 不应该的返回情况要用ASSERT来确认。

    2、调用公共接口函数时,调用者有保障调用参数符合要求的义务。作为一种防御性的编程风格,被调用函数也应该对传入参数做必要的安全检查。

    3、函数的规模尽量限制在100行以内。

    4、不能用ASSERT代替必要的安全处理代码,确保发布版的程序也能够合理地处理异常情况。

    5、尽量写类的构造、拷贝构造、析构和赋值函数 ,而不使用系统缺省的。

    6、对于不需要拷贝构造函数时,应显式地禁止它,避免编译器生成默认的拷贝构造函数。

    7、禁止编写依赖于其他函数内部实现的函数?何为依赖于其它函数内部实现????

    8、规则:检查函数所有参数与非参数的有效性。 说明: 

        1)函数的输入主要有两种:一种是参数输入;另一种是全局变量、数据文件的输入,即非参数输入。函数在使用输入之前,应进行必要的检查。

        2)不应该的入口情况要用ASSERT来确认。 

        3)有时候不处理也是一种处理,但要明确哪些情况不处理。try...catch 是一种常用的不处理的处理手段。

    六、C++专用规范

    1、主动使用const,避免使用宏。 

        应该尽可能的使用常量而不用变量,另外在定义数值的时候,应该把const做为默认的选项。它是安全的,在编译的时候(参见附录C《编码安全规范》)检查,它集成在C++的类型系统中。除非要调用一个非const函数,否则不要强制去除const。 

        宏无视作用域,无视类型系统,无视所有其它的语言特性和规则,并从#define处开始将该符号劫持。只有对少数的重要任务,宏仍是仅有的解决方案,如#include防护哨,用于条件编译的#ifdef和#if defined,以及用来实现assert。

    2、合理使用组合(composition)和继承(inheritance)。 

        继承是C++中耦合度最强的关系之一。软件工程的一条重要原则是尽量减少耦合,在组合和继承都能均可适用的情况下,应该优先考虑使用组合。组合的意思是将一种类型以成员变量方式嵌入相关类型中。组合有如下优点: 

        1)在不影响调用代码的同时也更灵活。

        2)编译期绝缘性好,编译时间也能缩短。 

        3)代码不可预测程度降低(有些类不适合作为基类)。

    附录:

    1、在保证软件系统的正确性、稳定性、可读性及可测性的前提下,提高代码效率。

    2、只引用属于自己的存贮空间。若模块封装得较好,那么一般不会发生非法引用他人的空间的情况。

    3、充分理解new/delete,malloc/free 等指针相关的函数的意义,对指针操作时需小心翼翼。

    4、要时刻注意易混淆的操作符。当编完程序后,应从头至尾检查一遍这些操作符,以防止拼写错误。 

        说明: 

        形式相近的操作符最容易引起误用,如C/C++中的“=”与“==”、“|”与“||”、“&”与“&&”等,若拼写错了,编译器不一定能够检查出来。

  • 相关阅读:
    part17 一些知识总结
    part16 php面向对象
    part15 php函数
    part14 php foreach循环
    part13 数组排序
    part12 php数组
    part11 php条件语句
    part10 php运算符
    part09 php字符串变量
    part08 php常量
  • 原文地址:https://www.cnblogs.com/zxtp/p/5002553.html
Copyright © 2011-2022 走看看