第四次作业-lilbetter小组成员结对作业

任务1:

      在学习通上已经完成,截图如下所示

 

 

任务2:

      结对的成员共同完成本次作业,撰写博客并将结对项目的程序发布到github上

 

博客的内容安排如下:

 

(1)结对成员的博客链接地址

 

    我的结对成员的博客园地址:

                 https://www.cnblogs.com/yxw888/

 

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

 

     李奇伦的代码审查表(由严兴旺完成)

 

 

   规范要求

            

  是否符合要求                                      

1.概要部分 (1)代码符合规格需求和说明么? 符合
(2)代码设计考虑是否周全? 是 
(3)代码可读性如何? 良好
(4)代码容易维护么?  容易 
(5)代码的每一行都执行并检查过了么?  是
2.设计规范部分 (1)设计是否遵从已知的设计模式或项目中的常用模式?  是
(2)有没有硬编码或字符串/数字等存在?  没有
(3)代码有没有依赖于某一平台,是否会影响将来的移植?  没有
(4)有没有无用的代码可以清楚?
3.代码规范部分  修改的部分符合代码标准和风格吗?  符合
4.具体代码部分       (1)有没有对错误进行处理?对于调用的外部函数是否检查了返回值或处理了异常?  有
(2)参数传递有无错误,字符串的长度是字节的长度还是字符的长度,是以0开始计数还是1开始计数?
(3)边界条件是如何处理的?switch语句的default分支是如何处理的?循环有没有可能出现死循环?  边界条件及分支通过多组测试用例测试,没有
(4)有没有使用断言来保证我们认为不变的条件真的得到满足?  没有 
(5)有没有优化的空间?  有 
(6)数据结构中有没有用不到的元素?  没有 
5.效能 (1)代码的效能如何?最坏的情况是怎样的?  代码覆盖率最高可达80%以上,最坏情况无算式结果输出
(2)代码中,特别是循环中是否有明显可优化的部分? 有 
6.可读性 代码可读性如何?有没有足够的注释? 较好,有足够注释 

 

 

       严兴旺的代码审查表(由李奇伦完成)

 

 

   规范要求

              

                 是否符合要求                                          

1.概要部分 (1)代码符合规格需求和说明么?  符合
(2)代码设计考虑是否周全? 是 
(3)代码可读性如何? 良好 
(4)代码容易维护么? 不易
(5)代码的每一行都执行并检查过了么?
2.设计规范部分 (1)设计是否遵从已知的设计模式或项目中的常用模式?  是 
(2)有没有硬编码或字符串/数字等存在?  没有
(3)代码有没有依赖于某一平台,是否会影响将来的移植?  没有
(4)有没有无用的代码可以清楚?   有 
3.代码规范部分  修改的部分符合代码标准和风格吗?  符合 
4.具体代码部分       (1)有没有对错误进行处理?对于调用的外部函数是否检查了返回值或处理了异常?  没有
(2)参数传递有无错误,字符串的长度是字节的长度还是字符的长度,是以0开始计数还是1开始计数?  有
(3)边界条件是如何处理的?switch语句的default分支是如何处理的?循环有没有可能出现死循环?  边界条件及分支通过多组测试用例测试, 没有
(4)有没有使用断言来保证我们认为不变的条件真的得到满足?   没有
(5)有没有优化的空间?   有 
(6)数据结构中有没有用不到的元素?  没有
5.效能 (1)代码的效能如何?最坏的情况是怎样的?  代码覆盖率最高可达65%以上,最坏情况输出算式相同
(2)代码中,特别是循环中是否有明显可优化的部分?  有
6.可读性 代码可读性如何?有没有足够的注释? 一般,注释不多 

 

 

(3)选取其中一个成员的项目为基础,进行结对编程。结对项目撰写的博客要求:

 

       (a)1.在变量定义方面做的比较好,能百分百的做到见名知意

      2.设计了几个功能单一且完善的函数,完成了函数的独立性

              3.能较好的遵守代码规范,代码读起来简单易懂

              4.代码的覆盖率较高

 

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

 

 

  本周出于老师作业的要求,本周体验了一下结对编程,刚开始还觉得这没什么稀奇,一样都是编程嘛,体验了之后才知道结对编程的优点。

  结对编程,从字面上讲,就是两个人一起编程。而1+1=?这个问题一直是一个疑问,可以大于2,可以等于2,可以小于2,从这次编程经历看来,结对编程(至少是我们这次结对编程),这个式子的答案应该是大于2.

  关于结对编程的许多优点和好处,在邹欣老师的博客中http://www.cnblogs.com/xinz/archive/2011/08/07/2130332.html都可以看到,我也就不多说,我主要分享一下我对这次结对编程经历的感想。在结对编程中,一个程序员负责写代码,另一个负责检查代码错误,查阅必要资料等。这样的编程看似只有一个人写代码,效率不如两个人都写代码效率高,但事实是程序员往往会画更多时间去调bug。

  编程过程中虽然遇到了很多问题,但我们最终将题目完成了,觉得还是蛮有成就感的。开始编程前,我们先讨论了题目的思路,才开始的编程。讨论确定使用面向对象的java语言。在确定类的时候我们俩出现了分歧,他认为只需要设计题目这个类,然后需要多少个题就构造多少个这样的对象。而我认为需要设计题目、题集两个类,题集里设置题目数组和题目数量两个成员。于是我就在那纠结纠结,到底怎么设置类,怎么设置类,纠结啊,或许大家的想法都有道理,但是究竟哪个好些。分析了半天,决定还是设置两个类。我敲代码,由比较细心小伙伴在旁边为我”指路“。写代码的过程中出了几个小问题,小伙伴一眼看到就给我指出来了,平时这种问题真是出的不少,如果是我一个人,待会儿估计又不知道哪里出错,又要调试半天。

  结对编程的过程收获颇多,我觉得结对编程有好有坏,但是好处远远大于的不好的地方。两个人难免会遇到意见不同的时候,关键是看此时如何协调、如何沟通、如何采纳。如果团队内部不能很好地处理这些分歧,那么非但不能提高效率,反而会拖慢工作的进程。如果团队协调得很好,那么两个人的力量是绝对大过一个人的。一个人的想法始终有限,两个人或者一群人合作,说不定还能擦出思想的火花。以前都喜欢一个人闷头闷脑的敲代码,就觉得两个人想法太多太麻烦,现在看来,合作更加有效率呢。

  结对编程还能减轻彼此的负担,一个人写完完整的代码,往往会很累,最后bug频出,但是结对编程中,在适当时候两个人可以互换角色,这样写代码的任务就被分给了两个人,也减少了bug率,这次编程我感觉bug出现得比平时少很多,基本功能的编写时间也少了很多。

  总之,结对编程减少了程序bug出现的频率,还减少了一个人写程序的负担,更有助于彼此的互相学习,大家不妨一试。

 

    

 

        (c)结对场景照片

      

 

 

(4)结对项目编程要求:(40分)

     lilbetter小组的github网站:

              https://github.com/lilbetter-l/work


posted @ 2019-10-24 19:54  李子默  阅读(187)  评论(0编辑  收藏  举报