代码风格规范

代码风格的基本原则是:简明,易读,无二义性。

-------------------------------------------------

1、  缩进

    是用Tab键好,还是2、4、8个空格?

    推荐:4个空格,在VS2005和其他的一些编辑工具中都可以定义Tab键扩展成为几个空格键。不用 Tab键的理由是Tab键在不同的情况下会显示不同的长度。4个空格的距离从可读性来说正好。


2、  行宽


    行宽必须限制,但是以前有些文档规定的80字符行宽太小了(以前的计算机/打字机显示行宽为80字符),现在时代不同了,可为100字符。

3、  括号


    在复杂的条件表达式中,用括号清楚地表示逻辑优先级。


4、  断行与空白的{ }行

    最精简的格式A:

if (condition)    DoSomething();
   else     DoSomethingElse();

   有人喜欢这样,因为可以节省几行,但是不同的语句(Statement)放在一行中,会使程序调试(DeBug)非常不方便,如果要一步一步观察condition(condition有可能是包含函数调用的复杂表达式)中各个变量的变化情况,单步执行就很难了。

   上面程序中没有明确的“{”和“}”来判断程序的结构,在有多层控制嵌套的时候,就不容易看清结构和对应关系。
    采用如下风格的程序:
if ( condition) {
       DoSomething();
    } else {
       DoSomethingElse();
    }
或者
if ( condition)
  {
       DoSomething();
   }
   else
  {
      DoSomethingElse();
   }

5、  分行

   不要把多行语句放在一行上。
a = 1; b = 2;           // bogus
   if (fFoo) Bar();        // bogus

   更严格地说,不要把不同的变量定义在一行上。
Foo foo1, foo2;         // bogus

6、  命名

    采用有意义的变量和方法名称。
    一般使用匈牙利命名规范。


7、  下划线问题

    下划线用来分隔变量名字中的作用域标注和变量的语义,如:一个类型的成员变量通常用m_来表示。

8、  大小写问题

    由多个单词组成的变量名,如果全部都是小写,很不易读,一个简单的解决方案就是用大小写区分它们。

    Pascal——所有单词的第一个字母都大写;
    Camel——第一个单词全部小写,随后单词随Pascal格式,这种方式也叫lowerCamel。

    一个通用的做法是:所有的类型/类/函数名都用Pascal形式,所有的变量都用Camel形式。
    类/类型/变量:名词或组合名词,如Member、ProductInfo等。
    函数则用动词或动宾组合词来表示,如get/set; RenderPage()。


9、  注释

   谁不会写注释?但是,需要注释什么?
   不要注释程序是怎么工作的(How),你的程序本身就应该能说明这一问题。

//this loop starts the i from 0 to len, in each step, it
   // does SomeThing
   for (i = 0; i<len; i++)
  {
        DoSomeThing();
   }
   以上的注释是多余的。

   注释是用来解释程序做什么(What),为什么这样做(Why),以及要特别注意的地方的,如下:
//go thru the array, note the last element is at [len-1]
   for (i = 0; i<len; i++)
  {
      DoSomeThing();
   }

   复杂的注释应该放在函数头,很多函数头的注释都是解释参数的类型等的,如果程序正文已经能够说明参数的类型in/out等,就不要重复!

   注释也要随着程序的修改而不断更新,一个误导的(Misleading)注释往往比没有注释更糟糕。

   另外,注释(包括所有源代码)应只用ASCII字符,不要用中文或其他特殊字符,它们会极大地影响程序的可移植性。

    在现代编程环境中,程序编辑器可以设置各种好看的字体,我们可以使用不同的显示风格来表示程序的不同部分。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值