代码规范V1.1

作业要求:https://edu.cnblogs.com/campus/nenu/SWE2017FALL/homework/993
代码规范文档/代码规范执行记录:https://coding.net/u/Dawnfox/p/f4/git/tree/master/doc
结对同学:袁玥
我和队友于2017/10/3确定四则运算作业的代码规范主要由三方面构成:格式、命名和注释。

一、格式

    A.  代码行数
        (1)	代码文件不超过500行
        (2)	函数的行数不超过50行
    B.  换行
        (1)	函数与函数之间空一行
        (2)	函数内部变量声明与函数内部逻辑代码之间空一行
        (3)	函数内部不同逻辑代码之间空一行
    C.  大括号
        “{”和“}”必须单独在一行上,且上下对齐。
    D.  缩进
        代码缩进一致使用Tab实现,规定Tab键宽度为4个字符,不建议使用空格进行缩进。
    E.  空格
        (1)	函数参数列表中不同参数之间应该用一个空格分开,即逗号后面应跟一个空格。如:
            void updateData(int source, int target)
        (2)	for循环中表达式之间应该用一个空格分开,即分号后面应跟一个空格。如:
            for(exp1; exp2; exp3)
        (3)操作符与操作数之间应该用一个空格分开,一元操作符(例如自增“++”,自减“--”等)与操作符不作此限定。如:
            a += b + c;
            ++a;

二、命名

变量主要分为类的公有和私有变量,方法的参数变量与内部使用的临时变量。
    A.  变量的名称由多个名词单词或一个名词单词组成时,第一个单词首字母小写,其他单词首字母均大写。如makeRule。
    B.  对于const常量,所有单词均大写,且单词之间由下划线”_”连接,如APP_NAME。
    C.  函数名称的第一个单词首字母为大写的动词。如IsDir(是否为目录)。
    D.  变量名和函数名能够表达它所具有的实际含义。如函数名IsDir表示输入路径是否为目录,res表示是判断的结果。

    E.  尽量避免单词缩写,即便它可能是众所周知的。

三、注释

    A.  只采用“//”作为注释符
    B.  注释的位置
        (1)	注释在被注释函数定义的顶部

        (2)	注释在函数内部变量声明的右边

        (3)	注释在函数内部逻辑代码的顶部

    C. 注释的内容
        (1)	代码的功能

        (2)	对读者阅读代码时可能产生的疑问做解释,比如,该段代码使用了堆栈,为什么需要堆栈而并非数组,在此处代码部分给出注释

四、代码执行记录

规范项 情况记录 违反次数 待修订 已修订 备注0(是否对条款进行增强) 备注1(是否对条款进行消弱) 备注2(是否对条款进行废除)
格式.A.(1) 代码文件不超过500行 1 1 0 0 1 0
格式.A.(2) 函数的行数不超过50行 3 3 0 0 0 1
格式.B.(1) 函数与函数之间空一行 0 0 0 0 0 0
格式.B.(2) 函数内部变量声明与函数内部逻辑代码之间空一行 0 0 0 0 0 0
格式.B.(3) 函数内部不同逻辑代码之间空一行 2 0 2 0 0 0
格式.C “{”和“}”必须单独在一行上,且上下对齐 11 0 11 0 0 0
格式.D 代码缩进一致使用Tab实现,规定Tab键宽度为4个字符,不建议使用空格进行缩进 0 0 0 0 0 0
格式.E.(1) 函数参数列表中不同参数之间应该用一个空格分开,即逗号后面应跟一个空格 1 0 1 0 0 0
格式.E.(2) for循环中表达式之间应该用一个空格分开,即分号后面应跟一个空格 0 0 0 0 0 0
格式.E.(3) 操作符与操作数之间应该用一个空格分开,一元操作符(例如自增“++”,自减“--”等)与操作符不作此限定 0 0 0 0 0 0
命名.A 变量的名称由多个名词单词或一个名词单词组成时,第一个单词首字母小写,其他单词首字母均大写。如makeRule 0 0 0 0 0 0
命名.B 对于const常量,所有单词均大写,且单词之间由下划线”_”连接,如APP_NAME 0 0 0 0 0 0
命名.C 函数名称的第一个单词首字母为大写的动词。如IsDir(是否为目录) 0 0 0 0 0 0
命名.D 变量名和函数名能够表达它所具有的实际含义。如函数名IsDir表示输入路径是否为目录,res表示是判断的结果 0 0 0 0 0 0
命名.E 尽量避免单词缩写,即便它可能是众所周知的 3 0 3 0 0 0
注释.A 只采用“//”作为注释符 0 0 0 0 0 0
注释.B.(1) 注释在被注释函数定义的顶部 0 0 0 0 0 0
注释.B.(2) 注释在函数内部变量声明的右边 0 0 0 0 0 0
注释.B.(3) 注释在函数内部逻辑代码的顶部 0 0 0 0 0 0
注释.C.(1) 代码的功能 2 0 2 0 0 0
注释.C.(2) 对读者阅读代码时可能产生的疑问做解释,比如,该段代码使用了堆栈,为什么需要堆栈而并非数组,在此处代码部分给出注释 0 0 0 0 0 0
修订时间 版本
2017/10/11 0:00:00 V1.0
原文地址:https://www.cnblogs.com/ranh941/p/7629151.html