一、结对的成员对
一班王欢---四班高金库
二、结对的成员共同完成本次作业,撰写博客并将结对项目的程序发布到github上
博客的内容安排如下:
(1)高金库的博客链接地址:https://www.cnblogs.com/beautifulwh/p/11708119.html
(2)结对成员对四则运算项目进行代码互审,并给出代码审查结果表
王欢的代码审查表(由高金库完成)
类别 |
审查项 |
结论 |
重要性 |
程序的版式 |
空行是否得体? |
是 |
|
|
代码行内的空格是否得体? |
是 |
|
|
一行代码是否只做一件事?如只定义一个变量,只写一条语句。 |
是 |
重要 |
|
If、for、while、do等语句自占一行,不论执行语句多少都要加 “{}”。 |
是 |
重要 |
|
注释是否有错误或者可能导致误解? |
否 |
|
命名规则 |
命名规则是否与所采用的操作系统或开发工具的风格保持一致? |
是 |
重要 |
|
类名、函数名、变量和参数、常量的书写格式是否遵循一定的规则? |
否 |
重要 |
|
程序中是否出现相同的局部变量和全部变量? |
是 |
|
|
静态变量、全局变量、类的成员变量是否加前缀? |
是 |
|
表达式与基本语句 |
如果代码行中的运算符比较多,是否已经用括号清楚地确定表达式的操作顺序? |
是 |
重要 |
|
是否编写太复杂或者多用途的复合表达式? |
否 |
|
|
是否用隐含错误的方式写if语句? |
否 |
|
|
Case语句的结尾是否忘了加break? |
否 |
重要 |
|
使用goto 语句时是否留下隐患? 例如跳过了某些对象的构造、变量的初始化、重要的计算等。 |
否 |
重要 |
常量 |
如果某一常量与其它常量密切相关,是否在定义中包含了这种关系? |
是 |
重要 |
|
是否使用含义直观的常量来表示那些将在程序中多次出现的数字或字符串? |
是 |
|
高金库的代码审查表(由王欢完成)
类别 | 审查项 | 结论 | 重要性 |
程序的版式 | 空行是否得体? | 是 | |
代码行内的空格是否得体? | 是 | ||
一行代码是否只做一件事?如只定义一个变量,只写一条语句。 | 否 | 重要 | |
If、for、while、do等语句自占一行,不论执行语句多少都要加 “{}”。 | 是 | 重要 | |
注释是否有错误或者可能导致误解? | 否 | ||
命名规则 | 命名规则是否与所采用的操作系统或开发工具的风格保持一致? | 是 | 重要 |
类名、函数名、变量和参数、常量的书写格式是否遵循一定的规则? | 否 | ||
程序中是否出现相同的局部变量和全部变量? | 是 | 重要 | |
静态变量、全局变量、类的成员变量是否加前缀? | 否 | ||
表达式与基本语句 | 如果代码行中的运算符比较多,是否已经用括号清楚地确定表达式的操作顺序? | 是 | 重要 |
是否编写太复杂或者多用途的复合表达式? | 否 | ||
是否用隐含错误的方式写if语句? | 是 | ||
Case语句的结尾是否忘了加break? | 否 | 重要 | |
使用goto 语句时是否留下隐患? 例如跳过了某些对象的构造、变量的初始化、重要的计算等。 | 否 | 重要 | |
常量 | 如果某一常量与其它常量密切相关,是否在定义中包含了这种关系? | 是 | 重要 |
是否使用含义直观的常量来表示那些将在程序中多次出现的数字或字符串? | 是 |
三、选取其中一个成员的项目为基础,进行结对编程。结对项目撰写的博客要求:
(a)结合课堂讲授内容,制订一份2人共同遵守的代码编写基本规范(至少包括注释规范与变量命名规范)。
注释规范:
1、注释形式统一在整个应用程序中,使用具有一致的标点和结构的样式来构造注释。
2、注释内容准确简洁内容要简单、明了、含义准确,防止注释的多义性,错误的注释不但无益反而有害。
变量命名规范:
1. 标识符只能使用数字(0 ~ 9) 字母(A ~ Z a ~ z) 唯一可以使用的标点符号下划线(_)
2. 要求标识符必须用字母开头
3. 在标识符中严格区分大小写 And and Not same
4. 标识符没有严格的长度限制
5. 标识符要做到 见名知意
6. Java内部已经被征用的关键字不能用来做标识符(例如: public static void int long double )
函数的声明与定义规范:
1.返回类型和函数名在同一行,合适的话,参数也放在同一行。
2.返回值总是和函数名在同一行;参数列表的左圆括号总是和函数名在同一行。
3.函数名和左圆括号间没有空格;圆括号与参数间没有空格。
4.左大括号总是新起一行;右大括号总是单独位于函数最后一行。
5.函数的内容总与左括号保持一个制表符的缩进。
6.函数声明前应加上注释,注明该函数的作用,如果该函数有比较多的参数,还应该加上参数含义和返回值的注释。
7.如果函数的参数是类对象,应使用对象的指针或引用来传递,以提高效率。
(b)结对编程的感受:
编程过程中虽然遇到了很多问题,但我们最终将题目完成了,觉得还是蛮有成就感的。开始编程前,我们先讨论了题目的思路,才开始的编程。讨论确定使用面向对象的java语言。在确定类的时候我们俩出现了分歧,她认为只需要设计题目这个类,然后需要多少个题就构造多少个这样的对象。而我认为需要设计题目、题集两个类,题集里设置题目数组和题目数量两个成员。于是我就在那纠结纠结,到底怎么设置类,怎么设置类,纠结啊。。。或许大家的想法都有道理,但是究竟哪个好些。分析了半天,决定还是设置两个类。我敲代码,由比较细心小伙伴在旁边为我”指路“。代码的过程中出了几个小问题,小伙伴一眼看到就给我指出来了,平时这种问题真是出的不少,如果是我一个人,待会儿估计又不知道哪里出错,又要调试半天。
结对编程的过程收获颇多,我觉得结对编程有好有坏,但是好处远远大于的不好的地方。两个人难免会遇到意见不同的时候,关键是看此时如何协调、如何沟通、如何采纳。如果团队内部很好地处理这些分歧,那么非但不能提高效率,反而会拖慢工作的进程。如果团队协调得很好,那么两个人的力量是绝对大过一个人的。一个人的想法始终有限,两个人或者一群人合作,说不定还能擦出思想的火花。以前都喜欢一个人闷头闷脑的敲代码,就觉得两个人想法太多太麻烦,现在看来,合作更加有效率呢结对编程还能减轻程序员的负担,一个人写完完整的代码,往往会很累,最后bug频出,但是结对编程中,在适当时候两个人可以互换角色,这样写代码的任务就被分给了两个人,也 减少了bug率,这次编程我感觉bug出现得比平时少很多,基本功能的编写时间也少了很多。而且本人其实是第一 次写javascript程序,但是在队友的帮助下,感觉对这种语言并不是那么陌生,学到了很多东西。
(c)结对场景照片
四、结对项目编程要求:
程序设计说明:
(1)分析四则运算需要完成的功能
(2)考虑异常处理
(3)编码实现各个功能
Github链接地址
github链接地址:https://github.com/wh-chc/cccann