绅士怪小孩儿

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

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

一班 刘悦博客链接:https://www.cnblogs.com/liuyue20194598/p/11720700.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

 

posted on 2019-10-22 17:40  绅士怪小孩儿  阅读(136)  评论(2编辑  收藏  举报

导航