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

流过昼夜 提交于 2019-12-02 03:20:25

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

高丛帅博客:https://www.cnblogs.com/gaocongshuai/p/11726764.html

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

代码复审核查表 由一班方诣完成
1.概要部分
1)代码符合需求和规格说明吗符合?
2)代码设计是否考虑周全? 周全 功能和要求相符
3)代码可读性如何? 清晰
4)代码容易维护么?
5)代码每一行都检查过了吗?
2.设计规范部分
1)设计是否遵循从已知的设计模式或项目中常用的模式?
2)有没有硬编码或字符串/数字等存在?
3)代码有没有依赖于某平台,是否会影响将来的移植?
4)4.开发者新写的代码能否用已有Library/SDK/Framework中的功能实现?在本项目中是否存在类似的功能可以调用而不用全部重新实现?
5)5.有没有无用的代码可以清除?
3.代码规范部分
1)修改的部分符合代码标准和风格嘛?
4.具体代码部分
1)有没有对错误进行处理?对于调用外部函数,是否检查了返回值或处理了异常?
2)参数传递有无错误,字符串的长度是字节的长度还是字符(可能是单/双字节)的长度,是以0开始计数还是以1开始计数? 0
3)边界条件如何处理的?switch语句的default分支是如何处理的?循环有没有可能出现死循环? 在分支中填入break
4)有没有使用断言(Assert)来保证我们认为不变的条件真的满足?
5)对资源的利用,是在哪里申请,在哪里释放的?有没有可能导致资源泄露(内存,文件,各种GUI资源,数据库访问的连接,等等)?有没有可能优化? 有些泄露的可能,但是没有必要过度的处理,因为这是生成一次性数据的程序
6)数据结构中有没有用不到的元素? 所定义的使用的数据均为实用数据不存在闲置的数据
5.效能
1)代码的效能如何?最坏的情况是怎样的? 数据控制在一定的范围内,按照固定模式执行,不存在好坏情况
2)代码中特别是循环中是否有明显可优化的部分(C++中反复创建类,c#中string的操作是否能用StringBuilder来优化)?
6.可读性
1)代码可读性如何?有没有足够的注释? 代码的可读性不好,由于从c平台移植到Java所有的功能均在主类中实现
7.可测试性
1)1.代码是否需要更新或创建新的单元测试?针对特定领域的开发(如数据库,网页,多线程等),可以整理专门的核查表。 代码可以创建新的测试单元但是没有必要,代码的功能单一,无需过多的测试
代码复审核查表 由一班高丛帅完成
1.概要部分
1)代码符合需求和规格说明吗符合?
2)代码设计是否考虑周全? 周全 功能和要求相符
3)代码可读性如何? 一般
4)代码容易维护么? 容易
5)代码每一行都检查过了吗?
2.设计规范部分
1)设计是否遵循从已知的设计模式或项目中常用的模式?
2)有没有硬编码或字符串/数字等存在?
3)代码有没有依赖于某平台,是否会影响将来的移植?
4)4.开发者新写的代码能否用已有Library/SDK/Framework中的功能实现?在本项目中是否存在类似的功能可以调用而不用全部重新实现?
5)5.有没有无用的代码可以清除?
3.代码规范部分
1)修改的部分符合代码标准和风格嘛?
4.具体代码部分
1)有没有对错误进行处理?对于调用外部函数,是否检查了返回值或处理了异常?
2)参数传递有无错误,字符串的长度是字节的长度还是字符(可能是单/双字节)的长度,是以0开始计数还是以1开始计数? 0
3)边界条件如何处理的?switch语句的default分支是如何处理的?循环有没有可能出现死循环? 在分支中填入跳转语句
4)有没有使用断言(Assert)来保证我们认为不变的条件真的满足?
5)对资源的利用,是在哪里申请,在哪里释放的?有没有可能导致资源泄露(内存,文件,各种GUI资源,数据库访问的连接,等等)?有没有可能优化? 有些泄露的可能,但是没有必要过度的处理,因为这是生成一次性数据的程序
6)数据结构中有没有用不到的元素? 所定义的使用的数据均为实用数据不存在闲置的数据
5.效能
1)代码的效能如何?最坏的情况是怎样的? 程序按照固定模式执行,不存在好坏情况
2)代码中特别是循环中是否有明显可优化的部分(C++中反复创建类,c#中string的操作是否能用StringBuilder来优化)?
6.可读性
1)代码可读性如何?有没有足够的注释? 代码的可读性不好,注释足够,能读懂代码的含义
7.可测试性
1)1.代码是否需要更新或创建新的单元测试?针对特定领域的开发(如数据库,网页,多线程等),可以整理专门的核查表。 代码可以创建新的测试单元但是没有必要,代码的功能单一,无需过多的测试

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

#(a)结合课堂讲授内容,制订了一份2人共同遵守的代码编写基本规范#
           1.命名规范:
                                标识符命名应当直观且可以拼读,可望文生义。
                                标识符的长度如果过长,选择使用“--”来连接。
                                程序中不要出现仅靠大小写来区分的相似标识符。
                                不要使局部变量和全局变量同名的情况。
                                类型名和函数名均以大写字母开头的单词组合而成。
           2.语句编写规范:
                                函数变量都应该初始化。
                                对于For循环语句,计数器尽量从0开始。
                                对于分层的“{”,“}”结构,采用如下形式:
                                public static void main(String[] area) {
                                .........;
                                }
           3.函数编写规范
                                需要某种功能的函数时,查看现有库中是否提供类似的函数。不编写多余函数。
                                应当在函数原型中写出形参名称。
                                如果函数没有参数,那么使用void而不要空着。
                                参数命名要恰当,输入参数和输出参数的顺序要合理。
#(b)描述结对编程的感受。#
           1.结对编程有利于漏洞的减少和思维逻辑上的片面性,两个人可以一起排查出现的一些BUG和逻辑死循环的情况,不仅节约时间,还提高了编程效率。
           2.结对编程在促进编程积极性上又有很高的作用。结对编程可以起到督促作用,大大减少个人编程时消极怠工的情况,并且结对编程时两人可以互相交流与编程接力,提高了代码的准确性。
           3.两个人共同设计代码结构,框架设计,共同有、探讨逻辑模块如何实现。有的时候虽然会出现流程设计等方面上的分歧,但是不同的设计方案,反而拓宽了思路。并且如果之后要重构,也可以快速的采用另一种方案。
           4.结对编程可以有共同学习的动力,比如在对某种功能的实现存在疑惑时,两人可以一起去查找资料,共同学习,解决问题。 
           5.结对编程乐趣大于一个人,成功可以一起分享喜悦。而失败之时,两个人可以一起努力调试改进。

结对编程照片

项目github的连接地址,并附带简单的设计说明

            地址:https://github.com/fyfyfyfy11/-/blob/master/%E5%9B%9B%E5%88%99%E8%BF%90%E7%AE%97
            设计说明:本项目是实现不同功能的模块来进行设计的。从上层到下层成树形,每一个分支都是一个选择判断的情况解决方式。先是从用户输入需求的前端模块开始,然后根据用户输入的需求进入对应的代码模块来执行,并输出符合用户需求的结果。
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!