第四次博客作业-结对项目

杀马特。学长 韩版系。学妹 提交于 2019-12-02 00:28:59

(一) 在学习通上注明结对的成员对  格式: 班级姓名-----班级姓名

                  192404杨烈伟------192404王硕------192404徐逗

(二)杨烈伟的博客地址:https://www.cnblogs.com/yangliewei/p/11713140.html

     王硕的博客地址:https://www.cnblogs.com/www37/

     徐逗的博客地址:https://www.cnblogs.com/xudou19/

(三)结对成员对四则运算项目进行代码互审,并给出代码审查结果表

代码复审表

杨烈伟的代码复审表(由王硕完成)

(Y表示可以,N表示不可以)

1.概要部分

1).代码符合需求和规格说明么?(Y)

2).代码设计是否考虑周全?(Y)

3).代码可读性如何?(Y)

4).代码容易维护吗?(Y)

5).代码的每一行都执行并检查过了吗?(Y)

2.设计规范部分

1).设计是否遵从已知的设计模式或项目中常用的模式?(Y)

2).有没有硬编码或字符串/数字等存在?(Y)

3).代码有没有依赖于某一平台,是否会影响将来的移植(如Win32或Win64)?(N)

4).开发者新写的代码能否用已有的Library/SDK/Framework中的功能实现?(Y)

5).有没有无用的代码可以清楚?(N)

3.代码规范部分

修改的部分标准和风格么?(Y)

4.具体代码部分

1).有没有对错误进行处理?(Y)

2).每行是否只声明了一个变量?(Y)

3).本代码是否存在类似的功能可以调用而不用全部重新实现?(Y)

4).参数传递是否达到了预期的标准?(Y)

5).if/if-else/if-else if-else/do-while/switch-case语句的格式是否符合规范?(Y)

6).变量是否已经在定义的同时初始化?(Y)

7).循环可不可能出现死循环?(N)

8).数据结构中有没有用不到的元素?(N)

9).是否合理地使用了空格使程序更清晰?(Y)

10).对于调用的外部函数,是否检查了返回值或处理了异常?(Y)

11).是以 0开始计数还是以 1 开始计数?(N)

12).命名是否遵循了最小长度最多信息原则?(N)

13).注释是否较清晰且必要?(Y)

14).代码段落是否被合适地以空行分隔?(Y)

15).操作符+ +和- -操作符的应用是否复合规范?(Y)

16).边界条件是否进行了处理?(Y)

17).字符串的长度是字节的长度还是字符的长度?(Y)

18).for循环是否都使用了包含下限不包含上限的形式?(N)

5.效能

1).代码的效能如何?(N)

2).代码中,特别是循环中是否有明显可优化的部分?(Y)

3).最坏的情况是怎样?(Y)

4).对于系统和网络的调用是否会超时?如何处理?(N)

6.可读性

1).代码可读性如何,有没有足够的注释?(Y)

2).折行是否恰当?(Y)

3).缩进层数是否不超过规定?(Y)

7.可测试性

1).代码是否需要更新或创建新的单元测试?(Y)

王硕的代码复审表(由徐逗完成)

1.概要部分

1).代码符合需求和规格说明么?(Y)

2).代码设计是否考虑周全?(Y)

3).代码可读性如何?(Y)

4).代码容易维护吗?(Y)

5).代码的每一行都执行并检查过了吗?(Y)

2.设计规范部分

1).设计是否遵从已知的设计模式或项目中常用的模式?(Y)

2).有没有硬编码或字符串/数字等存在?(Y) 

3).代码有没有依赖于某一平台,是否会影响将来的移植(如Win32或Win64)?(N)

4).开发者新写的代码能否用已有的Library/SDK/Framework中的功能实现?(Y)

5).有没有无用的代码可以清楚?(N)

3.代码规范部分

修改的部分标准和风格么?(Y)

4.具体代码部分

1).有没有对错误进行处理?(Y)

2).每行是否只声明了一个变量?(Y)

3).本代码是否存在类似的功能可以调用而不用全部重新实现?(Y)

4).参数传递是否达到了预期的标准?(Y)

5).if/if-else/if-else if-else/do-while/switch-case语句的格式是否符合规范?(Y)

6).变量是否已经在定义的同时初始化?(N)

7).循环可不可能出现死循环?(N)

8).数据结构中有没有用不到的元素?(N)

9).是否合理地使用了空格使程序更清晰?(Y) 

10).对于调用的外部函数,是否检查了返回值或处理了异常?(Y)

11).是以 0开始计数还是以 1 开始计数?(N)

12).命名是否遵循了最小长度最多信息原则?(Y)

13).注释是否较清晰且必要?(Y)

14).代码段落是否被合适地以空行分隔?(Y)

15).操作符+ +和- -操作符的应用是否复合规范?(Y)

16).边界条件是否进行了处理?(Y)

17).字符串的长度是字节的长度还是字符的长度?(Y) 

18).for循环是否都使用了包含下限不包含上限的形式?(N) 

5.效能

1).代码的效能如何?(N)

2).代码中,特别是循环中是否有明显可优化的部分?(Y) 

3).最坏的情况是怎样?(Y)

4).对于系统和网络的调用是否会超时?如何处理?(N) 

6.可读性 

1).代码可读性如何,有没有足够的注释?(Y)

2).折行是否恰当?(Y)

3).缩进层数是否不超过规定?(Y)

7.可测试性

1).代码是否需要更新或创建新的单元测试?(Y)

王硕的代码复审表(由徐逗完成)

1.概要部分

1).代码符合需求和规格说明么?(Y)

2).代码设计是否考虑周全?(Y)

3).代码可读性如何?(Y)

4).代码容易维护吗?(Y)

5).代码的每一行都执行并检查过了吗?(Y)

2.设计规范部分

1).设计是否遵从已知的设计模式或项目中常用的模式?(Y)

2).有没有硬编码或字符串/数字等存在?(Y) 

3).代码有没有依赖于某一平台,是否会影响将来的移植(如Win32或Win64)?(N)

4).开发者新写的代码能否用已有的Library/SDK/Framework中的功能实现?(Y)

5).有没有无用的代码可以清楚?(N)

3.代码规范部分

修改的部分标准和风格么?(Y)

4.具体代码部分

1).有没有对错误进行处理?(Y)

2).每行是否只声明了一个变量?(Y)

3).本代码是否存在类似的功能可以调用而不用全部重新实现?(Y)

4).参数传递是否达到了预期的标准?(Y)

5).if/if-else/if-else if-else/do-while/switch-case语句的格式是否符合规范?(Y)

6).变量是否已经在定义的同时初始化?(N)

7).循环可不可能出现死循环?(N)

8).数据结构中有没有用不到的元素?(N)

9).是否合理地使用了空格使程序更清晰?(Y) 

10).对于调用的外部函数,是否检查了返回值或处理了异常?(Y)

11).是以 0开始计数还是以 1 开始计数?(N)

12).命名是否遵循了最小长度最多信息原则?(Y)

13).注释是否较清晰且必要?(Y)

14).代码段落是否被合适地以空行分隔?(Y)

15).操作符+ +和- -操作符的应用是否复合规范?(Y)

16).边界条件是否进行了处理?(Y)

17).字符串的长度是字节的长度还是字符的长度?(Y) 

18).for循环是否都使用了包含下限不包含上限的形式?(N) 

5.效能

1).代码的效能如何?(N)

2).代码中,特别是循环中是否有明显可优化的部分?(Y) 

3).最坏的情况是怎样?(Y)

4).对于系统和网络的调用是否会超时?如何处理?(N) 

6.可读性 

1).代码可读性如何,有没有足够的注释?(Y)

2).折行是否恰当?(Y)

3).缩进层数是否不超过规定?(Y)

7.可测试性

1).代码是否需要更新或创建新的单元测试?(Y)

(四)选取其中一个成员的项目为基础,进行结对编程

 (a)结合课堂讲授内容,制订一份2人共同遵守的代码编写基本规范

1.明确方法功能,精确(而不是近似)地实现方法设计。如果一个功能将在多处实现,即使只有两行代码,也应该编写方法实现

2.应明确规定对接口方法参数的合法性检查应由方法的调用者负责还是由接口方法本身负责,缺省是由方法调用者负责。

3.明确类的功能,精确(而不是近似)地实现类的设计。一个类仅实现一组相近的功能。说明:划分类的时候,应该尽量把逻辑处理、

数据和显示分离,实现类功能的单一性。

4.异常捕获后,如果不对该异常进行处理,则应该记录日志。

5.自己抛出的异常必须要填写详细的描述信息。

6.避免使用不易理解的数字,用有意义的标识来替代。涉及物理状态或者含有物理意义的常量,不应直接使用数字,必须用有意义的静态变量来代替。

 (b)描述结对编程的感受。

杨烈伟:俗话说“三个臭皮匠,胜过一个诸葛亮”,三个人一起学习做同一件事,集思广义发挥各自优点,可以使我分析更能切中要害。经过这次结对编程,

       首先让我自己意识到了自己的不足,技术上有一些方法自己想的太复杂啦,幸好有队友的及时纠正。其次,我觉得从队友的身上学到了很多自己以前

       写程序没有想到的想法。总的来说,自己在编程时犯下的错误,有些尽管很简单,但却难以发现,而这些在另一个人眼中,却会十分明显。这次的结

       对编程让我收获了很多。

王硕:1、互相鼓励不容易沮丧,在面对不同问题的时候,会有人一起分担,一起尝试新的方法。
     2、互相学习编程上技巧,在编程过程中可以相互讨论,更快更有效地解决问题,可以得到能力上的互补。
     3、减少bug:三个人互相监督工作,可以增强代码质量,并有效的减少bug。

徐逗:1.我们互相鼓励不容易沮丧,能增加我们工作的积极性,因为在面对问题的时候会有人一起分担共同尝试新的策略。
     2.我们互相监督不容易偷懒。三个人一起工作需要互相配合,如果想偷懒去干别的就会拖延工作进度。
     3.我们能够互相学习编程技巧,在编程中相互讨论,可以更快更有效的解决问题,互相请教对方可以得到能力上的互补。
     4.我们在一起工作,研究讨论,还能增进我们之间的友谊。

 (c)结对场景照片

(五)结对项目编程要求:

对结对项目首先完成代码规范和设计规范的修改,其次完成项目增加的需求,最后将完成的项目提交到github上,给出github的连接地址,可以给出简单的设计说明。

github链接地址:https://github.com/yangliewei/yangliewei.git

 

增加的需求:(a)考虑数据异常处理问题,如在输入题目生成范围的数据时,输入了“abc“等字符数据,程序如何处理。

            (b)增大算式生成数的范围(如整数存不下的数),程序如何处理。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!