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

任务一:结对成员:192404班董美地—192404班徐淑娜

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

博客的内容安排如下:

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

①徐淑娜的博客链接地址:https://www.cnblogs.com/smilena/

②董美地的博客链接地址:https://www.cnblogs.com/dongdi/

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

      ①徐淑娜的代码审查表(由董美地完成)

 序      号 内容 完  成  度 其  它
  概要部分 符     合   
1 代码符合需求和规格说明吗?  
2 代码设计是否考虑周全?  好  
3 代码可读性如何? 易      于  
4 代码易于维护吗?  
5 代码的每一行都执行并检查过了吗?    
  设计规范部分    
1 设计是否遵从已知的设计模式或设计中常用的模式?  
2 有没有硬编码或字符串/数字等存在?  
3 代码有没有依赖于某一平台,是否会影响将来的移植? 否           
4

开发者新写的代码能否用已有的 Library/SDK/Framework 中的功能实现?在本项目中是否存在类似的功能可以调用而不用全部重新实现?

 
5 有没有无用的代码可以清除?(很多人想保留尽可能多的代码,因为以后可能会用上,这样导致程序文件中有很多注释掉的代码,这些代码都可以删除,因为源代码控制已经保存了原来的老代码。)  
6

代码规范部分
修改的部分符合代码标准和风格么(详细条文略)

符      合  
  具体代码部分    
1 有没有对错误进行处理?对于调用的外部函数,是否检查了返回值或处理了异常? 有  ; 已检查  
2 参数传递有无错误?  
3 边界条件是如何处理的?switch 语句的default 分支是如何处理的?循环有没有可能出现死循环?    
4  有没有使用断言(Assert)来保证我们认为不变的条件真的得到满足? 没      有  
5 有无可能存在资源泄漏(内存、文件、各种GUI 资源、数据库访问的连接,等等)?有没有优化的空间?

可能;有

 
6  数据结构中有没有用不到的元素?  
  效能    
1  代码的效能(Performance)如何? 较      好   
2  代码中,特别是循环中是否有明显可优化的部分(C++中反复创建类、C#中 string的操作是否能用 StringBuilder 来优化)?  
3  对于系统和网络的调用是否会超时?如何处理?  
  可读性    
1 代码可读性如何?有没有足够的注释?

良      好

存      在 

 
  可测试性    
1 代码是否需要更新或创建新的单元测试?  

       ②董美地代码审查表(由徐淑娜完成)

 序      号 内容 完  成  度 其  它
  概要部分 符     合   
1 代码符合需求和规格说明吗?  
2 代码设计是否考虑周全? 较      好  
3 代码可读性如何? 易      于  
4 代码易于维护吗?  
5 代码的每一行都执行并检查过了吗?    
  设计规范部分    
1 设计是否遵从已知的设计模式或设计中常用的模式?  
2 有没有硬编码或字符串/数字等存在?  
3 代码有没有依赖于某一平台,是否会影响将来的移植? 否           
4

开发者新写的代码能否用已有的 Library/SDK/Framework 中的功能实现?在本项目中是否存在类似的功能可以调用而不用全部重新实现?

 
5 有没有无用的代码可以清除?(很多人想保留尽可能多的代码,因为以后可能会用上,这样导致程序文件中有很多注释掉的代码,这些代码都可以删除,因为源代码控制已经保存了原来的老代码。)  
6

代码规范部分
修改的部分符合代码标准和风格么(详细条文略)

符      合  
  具体代码部分    
1 有没有对错误进行处理?对于调用的外部函数,是否检查了返回值或处理了异常? 有  ; 已检查  
2 参数传递有无错误?  
3 边界条件是如何处理的?switch 语句的default 分支是如何处理的?循环有没有可能出现死循环?    
4  有没有使用断言(Assert)来保证我们认为不变的条件真的得到满足? 没      有  
5 有无可能存在资源泄漏(内存、文件、各种GUI 资源、数据库访问的连接,等等)?有没有优化的空间?

可能;有

 
6  数据结构中有没有用不到的元素?  
  效能    
1  代码的效能(Performance)如何? 较      好   
2  代码中,特别是循环中是否有明显可优化的部分(C++中反复创建类、C#中 string的操作是否能用 StringBuilder 来优化)?  
3  对于系统和网络的调用是否会超时?如何处理?  
  可读性    
1 代码可读性如何?有没有足够的注释?

良      好

存      在 

 
  可测试性    
1 代码是否需要更新或创建新的单元测试?  

 

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

(a)结合课堂讲授内容,制订一份2人共同遵守的代码编写基本规范(至少包括注释规范与变量命名规范)。

1.缩进规范:用四个空格,不使用Tab键。

2.行宽规范:行宽可以限定为100个字符。

3.括号规范:在复杂的条件表达式中,用括号清楚地表明逻辑优先级。

4.断行与空白的{ }行规范:选择每个“{”和“}”都独占一行的格式。

5.分行规范:不要把多条语句放在一行上,更严格地说,不要把多个变量定义在一行上。

6.变量命名规范:

(1)变量命名中不要提到类型或其他语法方面的描述。

(2)避免过多的描述。

(3)如果信息可以从上下文中得到,那么此类信息就不必写在变量名中。

(4)避免可要可无的修饰词。

7.下划线:

下划线用来分隔变量名字中的作用域标注和变量的语义。

8.大小写:

用大小写来区分由多个单词组成的变量名。

7.注释规范:

(1)复杂的注释应该放在函数头。

(2)注释也要随着程序的修改而不断更新。注释只用ASCII字符,不要用中文和特殊字符,影响程序可移植性。

(3)使用不同的显示风格来表示程序的不同部分。

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

 通过这次结对编程,我们两人都学到了很多以前没有学到的知识。

①首先,我们了解到了代码复审的各个流程,如何规范自己的程序。

②在自我复审和同伴复审的过程中,了解到了对方程序的优越性,也发现了自己的程序中很多没有发现的漏洞,并很好的做出了修复,实现了程序的完整性和正确性。

③在结对编程的过程中,互相取长补短,提高了团队合作精神,共同进步,也学到了更多现代软件工程的知识。     

(c)结对场景照片

 

(4)结对项目编程要求

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

 增加的需求:

①程序修改后不仅运用了if、else分支提高了程序的运行速度,还运用了switch分支语句,大大加快了程序的运行速度。

②考虑数据异常处理问题,如在输入题目生成范围的数据时,输入了“abc“等字符数据,程序如何处理。

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

(4)github地址

https://github.com/dong-dong-dong/dong

posted @ 2019-10-22 22:42  20194705董美地  阅读(85)  评论(0编辑  收藏  举报