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

戏子无情 提交于 2019-12-01 23:31:15

第四次作业

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

    一班刘天乐:https://www.cnblogs.com/liutianle20194597/p/11720557.html

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

       一班刘天乐的代码审查表(由刘悦完成)

 1.概要部分

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

代码符合需求也符合规格说明。
(2)代码设计是否有周全的考虑?

代码考虑略有欠缺。

(3)代码可读性如何?

代码逻辑清晰,需求明确
(4)代码容易维护么?

代码不在同一类里,易维护

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

      每一行都可以执行,没有错误语句。

     

2.设计规范部分

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

有项目中常用的模式
(2)有没有硬编码或字符串/数字等存在?

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

代码是由java 所编写,不影响移植
(4)开发者新写的代码能否用已有的Library/SDK/Framework 中的功能实现?在本项目中是否存在类似的功能可以调用而不用全部重新实现?

代码中有用到类的相关包,不需要全部重新实现

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

     没有无用代码

3.代码规范部分

 修改的部分符合代码标准和风格么?

     符合代码的标准和风格。

4.具体代码部分

(1)有没有对错误进行处理?对于调用的外部函数,是否检查了返回值或处理了异常?

有对错误进行处理 ,并在调用外部函数时检查了返回值等,没有发现异常现象。
(2)参数传递有无错误,字符串的长度是字节的长度还是字符(可能是单/双字节)的长度,是以0 开始计数还是以1 开始计数?

参数传递无错误,无字符串
(3)边界条件是如何处理的?Switch 语句的Default 是如何处理的?循环有没有可能出现死循环?

无Switch语句,循环不会出现死循环

(4)有没有使用断言(Assert)来保证我们认为不变的条件真的满足?

没有
(5)对资源的利用,是在哪里申请,在哪里释放的?有没有可能导致资源泄露(内存、文件、各种GUI 资源、数据库访问的连接,等等)?有没有可能优化?

不会导致资源泄露,不用优化
(6)数据结构中是否有无用的元素?

没有

5.效能

(1)代码的效能(Performance)如何?最坏的情况是怎样的?

     效能很好,没有出现任何错误


(2)代码中,特别是循环中是否有明显可优化的部分(C++中反复创建类,C#中 string 的操作是否能用StringBuilder 来优化)?

没有
(3)对于系统和网络调用是否会超时?如何处理?

不会

6.可读性
     

  代码可读性如何?有没有足够的注释?

     代码逻辑清晰,需求明确并著有很明确的注释

7.可测试性
     

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

不需要更新 或者创建新的单元测试

 

 

 

      一班刘悦的代码审查表(由刘天乐完成)

 

1.概要部分

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

代码符合需求规格说明还有些不足运行结果正确
(2)代码设计是否有周全的考虑?

代码考虑周全,形式缩进需要注意

(3)代码可读性如何?

代码逻辑清晰,需求明确
(4)代码容易维护么?

代码不在同一类里,易维护

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

      每一行都可以执行,没有错误

     

2.设计规范部分

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

有项目中常用的模式
(2)有没有硬编码或字符串/数字等存在?

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

代码是用java 所编写,不影响移植
(4)开发者新写的代码能否用已有的Library/SDK/Framework 中的功能实现?在本项目中是否存在类似的功能可以调用而不用全部重新实现?

代码中有用到类的相关包,不需要全部重新实现

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

     没有无用代码

3.代码规范部分

 修改的部分符合代码标准和风格么?

     代码标准和风格统一

4.具体代码部分

(1)有没有对错误进行处理?对于调用的外部函数,是否检查了返回值或处理了异常?

有对错误进行处理 ,并在调用外部函数时检查了返回值等异常现象
(2)参数传递有无错误,字符串的长度是字节的长度还是字符(可能是单/双字节)的长度,是以0 开始计数还是以1 开始计数?

参数传递无错误,无字符串
(3)边界条件是如何处理的?Switch 语句的Default 是如何处理的?循环有没有可能出现死循环?

统治了边界条件,无Switch语句,在正常数字范围内输入下数字不会出现死循环

(4)有没有使用断言(Assert)来保证我们认为不变的条件真的满足?

没有
(5)对资源的利用,是在哪里申请,在哪里释放的?有没有可能导致资源泄露(内存、文件、各种GUI 资源、数据库访问的连接,等等)?有没有可能优化?

不会导致资源泄露,不用优化
(6)数据结构中是否有无用的元素?

没有

5.效能

(1)代码的效能(Performance)如何?最坏的情况是怎样的?

     效能很好,没有出现任何错误


(2)代码中,特别是循环中是否有明显可优化的部分(C++中反复创建类,C#中 string 的操作是否能用StringBuilder 来优化)?

没有
(3)对于系统和网络调用是否会超时?如何处理?

不会

6.可读性
     

  代码可读性如何?有没有足够的注释?

     代码逻辑清晰可见,并著有很明确的注释,很容易理解

7.可测试性
     

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

不需要更新 或者创建新的单元测试

 

 

 

 

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

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

 

 我们的代码风格原则是:简明、易读、无二义性,具体要求如下:
a.注释规范
<1>边写代码边注释,修改代码同时修改相应的注释,以保证注释与代码的一致性。不再有用的注释要删除。
<2>尽量避免在注释中使用缩写,特别是不常用缩写。
<3>注释的位置应与被描述的代码相邻,可以放在代码的上方或右方,不可放在下方。
<4>命名中若使用特殊约定或缩写,则要有注释说明。说明:应该在源文件的开始之处,对文件中所使用的缩写或约定,特别是特殊的缩写进行必要的注释说明。
b.变量命名规范
<1>规范命名风格会使代码风格保持一致,更容易被团队中其他伙伴理解。总体原则是所有命名必须做到见名知意。
<2>对于变量命名,禁止取单个字符(如a、b、c…),建议除了要有具体含义外,还能表明其变量类型、数据类型等,但a、b、c作局部循环变量是允许的。
<3>程序中不要出现仅靠大小写区分的相似的标识符。
c.对齐规范
<1> 程序的分界符‘{’和‘}’应独占一行并且位于同一列,同时与引用它们的语句左对齐.
<2>若要拆分出新行要进行适当的缩进,使排版整齐,语句可读.
d.其他规范
<1>尽量不要使用与具体硬件或软件环境关系密切的变量 

 

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

 一开始遇到了很多困难,我们两个java底子比较差,也有向寝室其他人寻求帮助,合作中两个人也有很多意见分歧的地方,每个人都有自己的想法,对别人的代码不熟悉产生的抵触心理,复查的时候觉得不好理解对方的想法,但是经过大量的交流和努力之后,后来合作到后期一起克服了很多困难,总结了一致的代码编写基本规范,团队相互磨合,最后团结协作完成老师布置的任务。

        (c)结对场景照片

 

 

 

 

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

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

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

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

github的链接地址:https://github.com/clementine-lee/one

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