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

一、提供你的结对成员的博客链接地址

常颖同学的博客地址:https://www.cnblogs.com/nuah/p/11721555.html

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

      根据书上76页的代码复查的核查表,常颖对我的代码进行了复查,我对常颖的代码进行了复查,结果如下:

 

复查内容

南海茹的代码复查(由常颖完成)

常颖的代码复查(由南海茹完成)

概要部分

代码符合需求和规格说明么?

 没有完成删除重复运算的功能

 没有完成删除重复运算的功能以及结果存储到本地的功能

代码设计是否考虑周全?

 总体来说比较周全,但是有些边界值没有考虑到

 总体来说比较周全,但是有些边界值没有考虑到

代码可读性如何?

 可读性很好

 可读性很好

代码容易维护吗?

 不太容易维护,因为所有方法都在一个类里面

 不容易维护,因为所有方法都在一个类里面,且是用C语言编写

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

 都已经检查过

 都检查过

设计规范部分

设计是否遵循已知的设计模式或项目中常用的模式?

 有遵循

 遵循了

有没有硬编码或字符串/数字的存在?

 没有

 没有

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

 没有依赖某一平台

 用C语言编写的代码,所以可能不太利于后期课程的学习

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

 没有

没有 

有没有无用的代码可以清除?

 有些之前修改的代码用注释注掉

 有些注释的修改的代码,还有几个没有用到的变量

代码规范部分

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

 符合

符合 

具体代码部分

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

 有处理错误,检查了返回值并处理了异常

 有处理错误,检查了返回值并处理了异常

参数传递有没有错误,字符串的长度是字节的长度还是字符(可能是单/双字节)的长度,是以0开始计数还是以1开始计数?

 参数传递没有错误,字符串的长度是字符长度,以0开始计数

 参数传递没有错误,字符串的长度是字符长度,以0开始计数

switch语句的default分支是如何处理的?循环有没有可能出现死循环?

 没有default分支,不会出现死循环

 没有default分支,不会出现死循环

数据结构中有没有用不到的元素?

 没有

有些变量没用到 

效能

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

代码效能较慢,最坏可能造成编程软件卡死

 代码效能较慢,最坏可能造成编程软件卡死

代码中是否有明显可优化的部分?

 有可优化的地方

有可优化的地方 

对于系统或网络的调用是否会超时?如何处理?

 不涉及此问题

不涉及此问题 

可读性

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

 代码可读性可以,注释虽少但清晰

代码可读性很好,有足够的注释 

可测试性

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

 需要创建新的单元测试

需要创建新的单元测试 

 

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

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

        

代码风格原则是:简明,易懂,无二义性。      

缩进:

1.        缩进4个空格

2.        大括号的开始在代码块开始的行尾,闭合在和代码块同一缩进的行首

行宽:不超过100个字符

断行与空白的{}行:采用每个“{”和“}”都独占一行的形式

分行:每条语句各占一行,不要把多余的变量定义在一行

括号:在复杂的条件表达式中,用括号表达逻辑优先级

变量命名规范:

1.        由$、字母、数字和下划线组成,首字母不为数字

2.        使用英文单词来命名变量(避免使用中文出现乱码)

3.        变量名中不要出现类型或其他语言方面的描述

4.        避免过多的描述

5.        避免使用过长的名字命名

6.        可采用大小写混合的方式命名

大小写规范:

Camel形式编写(第一个单词全部小写,随后单词的第一个字母都大写)

注释规范:

1.        复杂的注释放在函数头

2.        注释应尽量简洁明了,明确程序所需信息即可

3.        行注释(在句尾使用//进行注释)

4.        字段名注释(使用/* */注释)

5.        类注释(使用/* */注释)

6.        块级别注释(单行时用// 多行时用/* */)

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

一开始,我以为这个真的麻烦,还要一直跟对方解释我为什么要这样做,有分歧了还要辩论。

但是结对之后我发现不是这样的,结对编程就是互相监督的过程,

你的一举一动都在对方的视线范围内,所有的想法都要受到对方的评价。这种督促的压力,使得我必须认真编写程序。

而且结对编程迫使我们必须频繁交流,而且要提高自己的技术能力,以免被对方看不起。

因为我们两个人的角色是经常转化的,所以也不会对彼此不公平,我们彼此的观察力和判断力都有所提高。

而且这个过程是我们互相学习、互相磨合的过程,有什么想法跟对方分享,使双方都会有知识面的扩充。

有什么不懂的一起查资料,一起能理解共同进步。

但是可能是我刚开始接触结对编程的原因,我觉得有人盯着我编程我有点不自在,有些想法放不开,总是在想说出来

不知道对不对这种问题,我觉得耽误了很多时间,对于别人说的想法不知道怎么评价。

 

(3)结对场景照片

 

第四次博客作业-结对项目_第1张图片

四、结对项目编程要求:

通过代码审核我们两人决定运用南海茹的代码进行本次作业的完成,因为相对来说功能完成先对更好一些,并且用的Java编程语言。

我们修改的地方如下:
(1)原来本来所有的实现方法都在同一个类中,后来将加,减,乘,除四个运算的运算方法分别放到四个类中来实现

(2)如何判断运用那个运算进行计算时,以前运用的是if,else分支完成的这样的就导致了程序的运行速度,所以改成switch分支语句,加快了程序的运行速度。

(3)对运算的边界值进行了处理,对一些异常进行了处理。

(4)对如果用户输入了abc等字符时出现的异常进行了处理。

  github的连接地址:https://github.com/xiaoaru111/fist

你可能感兴趣的:(第四次博客作业-结对项目)