要求1 《代码规范》包括10项条款。制定条款的目的是在程序设计的过程中(触犯和)约束代码风格,希望切实可行,容易观察和客观检验。
比如, 每个函数不超过5行,对于初学者是不切实际的; 大括号匹配纵列对齐,是切实可行的; 变量名易读,是不易检验的,变量名必须是名词短语,遵循匈牙利命名法,是易于检验的。 (10分)
1.大括号匹配纵列对齐。
2.为避免代码长度过长需要断行造成难以阅读的问题,规定每行只写一条语句。
3.如何处理缩进问题?当遇到有关命名空间、类、结构、函数、以及枚举等等复杂程序结构的定义的时候,需要将它的内容缩进一层。
4.如何取变量名?规定变量名的取名原则是:变量名=属性+类型+对象描述,其中每一对象的名称都要求有明确含义,可以取对象名字全称或名字的一部分。
5.使用空行分隔代码块。
6.分行定义变量。
7.不能使用连续的两个或多个空格。
8.注释要写在函数的上方,注释不能跟代码写在同一行。
9.每个代码文件要有一个相对应的readme文档说明。
10.编程原则是先确定代码结构,写出框架再逐步分模块进行填充。
(这是我自己对于代码风格的初步设想,最终版需要跟partner一起敲定)
最终与结对编程的小伙伴冉华同学确定了最终的代码规范,如下:
开始时间: 2017年10月3日 上午9时35分 结束时间: 2017年10月3日 11时22分22秒 1. 格式 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; 2. 命名 变量主要分为类的公有和私有变量,方法的参数变量与内部使用的临时变量。 A. 变量的名称由多个名词单词或一个名词单词组成时,第一个单词首字母小写,其他单词首字母均大写。如makeRule。 B. 对于const常量,所有单词均大写,且单词之间由下划线”_”连接,如APP_NAME。 C. 函数名称的第一个单词为小写的动词。如isValidExp(表达式是否合法)。 D. 变量名和函数名能够表达它所具有的实际含义。如函数名isValid表示返回值是否合法,res表示是返回值。 E. 尽量避免单词缩写,即便它可能是众所周知的。 3. 注释 A. 只用采用“//”作为注释符 B. 注释的位置 (1) 注释在被注释函数定义的顶部 (2) 注释在函数内部变量声明的右边 (3) 注释在函数内部逻辑代码的顶部 C. 注释的内容 (1) 代码的功能 (2) 对读者阅读代码时可能产生的疑问做解释,比如,该段代码使用了堆栈,为什么需要堆栈而并非数组,在此处代码部分给出注释
git地址:https://coding.net/u/Dawnfox/p/f4/git/tree/master/doc
要求2 记录完成本周作业过程中,《代码风格规范》执行情况。包括记录每一条规则的违反和纠正、次数,规范中某项条款的增强、消弱、或废除。在编码过程中完全未被违反的条款,说明过于宽松,或你们已经完全"本能"反应,不应作为条款,在本要求及要求1中不得分。此种情况,应补充一条新的条款。 (20分)