代码复审结果

说明:因为本次一些特殊的原因,我与一位韩国留学生同学、以及六班的一位同学一起结对编程。

General

  • (N) Does the code work? Does it perform its intended function, the logic is correct etc.

两位结对的伙伴的代码都只能实现需求功能中的一部分:

  • Z同学目前实现的功能有:只能生成10000以内数目的,没有经过去重判断的,整数的加减乘除题目。

   这位同学没有实现的需求功能有:分数参与运算、生成的部分题目需含有括号、生成的题目不重复、用命令行控制参数、参数出错的提示、给定题目和答案文件进行检查、支持10000以上的数据量。

     这位同学实现错的功能有:值域范围包含了-r的参数该值。

  • Y同学目前实现的功能有:从键盘键入的0~10整数范围内的简单的加减乘除单项的答案检查(不包含括号)。

   这位同学没有实现的需求功能较多,基本上没有完成功能。

  • (Y) Is all the code easily understood?

因为他们代码实现功能较弱,两位同学都是用C++写的,都只有main函数:(。相对而言代码结构十分简单清晰。

  • (N) (Does it conform to your agreed coding conventions? These will usually cover location of braces, variable and function names, line length, indentations, formatting, and comments.

虽然代码行数较少,但是Z同学的代码变量命名我不是很习惯,他的命名是这样的:

int an = 0;int n;int r;int i=0;int nINT;int number_num;int op_num;int number;

其中各个变量旁均没有注释说明与解释其意义:(。

Y同学的代码变量命名(虽然只有两个)也比较简短,与我习惯的变量命名习惯略微不同。

其他方面的话,Z同学的缩进风格比较差,因为while循环等与后面是等齐的,部分代码如下:

while(an<n){
op_num = 1+rand()%3;
number_num = op_num+1;
while(i<op_num){
    number=1+rand()%r;
    cout<<1+rand()%r;
    nINT = rand()%4;

Y同学相对而言缩进风格比较好,至少看起来比较舒服。

Z同学在循环的开头有部分注释,但是Y同学没有注释。

  • (N) Is there any redundant or duplicate code?

Z同学和Y同学的代码中没有冗余的代码。(因为确实是写得比较简单)

  • (N) Is the code as modular as possible?

两位同学都是使用C++写的,并且都只有main函数。并没有模块化的思想...

  • (N) Can any global variables be replaced?

这个题选N的原因是...我的结对伙伴没有使用全局变量。

  • (N) Is there any commented out code?

两位同学看起来均没有经历过较长的代码开发时间,所以没有过时的代码与调试的代码。

  • (Y) Do loops have a set length and correct termination conditions?

有。并且从代码来看未发现无限循环的情况。

  • Can any of the code be replaced with library functions?

Z同学的代码和Y同学的代码实现的功能相对简单,能实现使用库函数的都使用了库函数。

  • Can any logging or debugging code be removed?

两位同学的代码中没有记录或用来debug遗留的代码。



Security

  • Are all data inputs checked (for the correct type, length, format, and range) and encoded?

Z同学只是对输入的-n参数>10000时进行了报错处理,在其他情况如n为负数,r为负数等情况没有进行出错检查。(看到这里,实际上我的代码里也没有这方面的出错处理,只是对参数的输入位置出错时会有提示,但是没有考虑n和r为负数的情况,真是我的失策:(。)

Y同学在自己的0~10的单项表达式的计算程序中对输入的数字的范围(0~10)进行了判断与限定,但是没有进行任何的报错处理。

  • Where third-party utilities are used, are returning errors being caught?

Z同学未使用第三方工具;程序中并没有主动抛出任何可控异常,一些出错的情况使用了打印输出的形式进行处理。

Y同学没有任何的输出错误说明。

  • Are output values checked and encoded?

两位同学都对输出的表达式进行了除数是否为0进行了检查。

但是两位同学都没有对减法的结果是否为负数进行检查。其余的因为功能也并未实现,所以并没有做出该有的检查。

  • Are invalid parameter values handled?

这两位同学都默认用户输入是合法的。所以并没有对无效的参数进行处理。



Documentation

  • Do comments exist and describe the intent of the code?

只有Z同学有类似于overview的简短注释,但是Y同学没有任何描述性的注释。

  • Are all functions commented?

两位同学都只有main函数,Z同学算是都有注释,Y同学没有注释。

  • Is any unusual behavior or edge-case handling described?

两位同学都没有对边缘情况的处理(虽然代码中处理了)写进注释中。

  • Is the use and function of third-party libraries documented?

没有...都没有使用...

  • Are data structures and units of measurement explained?

如果数组算是数据结构的话,Z同学使用了数组的数据结构并写注释说明了它的作用。

  • Is there any incomplete code? If so, should it be removed or flagged with a suitable marker like ‘TODO’?

两位同学都有大量的为完成的需求功能的代码需要编写。



Testing

  • Is the code testable? i.e. don’t add too many or hide dependencies, unable to initialize objects, test frameworks can use methods etc.

两位同学只有main函数,基本无法构造测试样例。

  • Do tests exist and are they comprehensive? i.e. has at least your agreed on code coverage.

两位同学没有写完,所以更没有测试。

  • Do unit tests actually test that the code is performing the intended functionality?

没有测试代码。

  • Are arrays checked for ‘out-of-bound’ errors?

两位同学都没有对数组的越界进行检测。

  • Could any test code be replaced with the use of an existing API?

不可以...

本次结对编程的伙伴代码能力稍差一些,我们在经过商讨后(已经跟罗老师说过)我打算使用带新人的结对编程模式:我对每个功能进行详细的模块划分后,作为领航员观察他们完成部分小的模块和一些单元测试。然后我写一些代码以及详细注释,让他们每天进行理解与自我消化。希望他们能在和我结对编程的过程中学到一些知识:D。

时间: 2024-10-04 09:09:18

代码复审结果的相关文章

作业三: 代码规范、代码复审、PSP

(1) 是否需要有代码规范         1.这些规范都是官僚制度下产生的浪费大家的编程时间.影响人们开发效率, 浪费时间的东西.(反对) 答:首先编码规范 包括了编码风格和其它规范 一个团队遵守一些规范有很多的好处! (1). 遵守编码风格使代码更容易维护 (2). 编码风格使形成代码集体所有制(集体所有制的作用很大,它能有效的增大巴士因子——一个项目能承受多少个程序员被车撞了而不影响项目的正常进行) (3). 编码风格能消除那些长久的纷争(你不需要喜欢这种编码风格.如果你不喜欢里面的某条规

MVC项目实践(七)——代码复审和运行测试

本次所有的工作都是我们小组分工完成的.同样我们主管代码复审的同学也负责任的在我们完成编码工作之后认真的完成了代码复审的工作. 以下是本次运行截图 选择业务的首页 选择队伍的页面 添加队伍的页面 计分页面 观众详情页面 查询队伍的页面 查询比赛的页面 查询具体比分的页面 以上为主要的页面测试结果.之前设计功能都能够实现.就是美化工作还没做.有些简陋.

代码复审

一.这次复审的是李成帅(130201127)同学的四则运算代码,源代码如下: using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms; names

软件工程第二周作业:代码规范和代码复审

0x01 :代码规划的要求 Q:这些规范都是官僚制度下产生的浪费大家的编程时间.影响人们开发效率, 浪费时间的东西.(反驳) 首先,我们需要明确编码规范的定义,编码规范同时包括了编码风格和其它规范(代码设计上的规范,如设计模式.程序设计.模块之间的逻辑关联等). 编码风格,牵扯到“缩进.空格使用.注释.命名习惯”等多方面的因素,是依致特定编程语言制定的软件工程开发的“约定”,而相同的编码风格,可以使得软件开发过程中轻松浏览任意一段代码,充分保证不同的开发人员能够依据统一的编码格式轻松理解代码的逻

个人博客作业-Week2 (代码规范, 代码复审)

代码规范: 1.这些规范都是官僚制度下产生的浪费大家的编程时间.影响人们开发效率, 浪费时间的东西. 编码规范它包含了代码格式,还包括了编码风格和其他规范,通常涉及:缩进.空格使用.Tab使用 注释.命题习惯.代码行长度和语言特点风格,从而使大家能够很方便得互相阅读对方的代码从而促进 团队中的沟通与交流.不是浪费时间. 2.我是个艺术家,手艺人,我有自己的规范和原则. 艺术家的表现层次如果只是在规范上面,显然不是个优秀的艺术家,通过大家都容易接受的方式可以 让自己的创造力更好得表现出来. 3.规

作业三: 代码规范,代码复审

是否需要有代码规范 1.反驳.代码规范是有实际纪意义的,斌不是形式主义的浪费时间. 2.反驳.编码风格不是代码规范. 3.反驳.代码规范就是要求格式一样的,不应该有例外. 4.反驳.一个人的规范不是规范.一个团队内部的规范也不是代码规范,所有人都遵守的才是代码规范, 总结:代码规范对团队合作很重要.一个项目大多都是由一个团队来完成,如果没有统一的代码规范,那么每个人的代码度是不同风格的,即使是分工十分明晰的,等到要整合代码的时候就会很麻烦.别人看你的代码需要很长时间,这样很没有效率.这样去读别人

代码规范、代码复审、PSP

作业三: 代码规范.代码复审.PSP 代码规范 代码规范的重要性 一.规范的代码可以促进团队合作  一个项目大多都是由一个团队来完成,如果没有统一的代码规范,那么每个人的代码必定会风格迥异.且不说会存在多个人同时开发同一模块的情况,即使是分工十分明晰的,等到要整合代码的时候也有够头疼的了.大多数情况下,并非程序中有复杂的算法或是复杂的逻辑,而是去读别人的代码实在是一件痛苦的事情.统一的风格使得代码可读性大大提高了,人们看到任何一段代码都会觉得异常熟悉.显然的,规范的代码在团队的合作开发中是非常有

结对代码复审结果

Q:是否需要有代码规范 需要,我认为非常需要,虽然现代曾经也举办过乱码大赛.但是,代码作为一种车鞥徐语言的同事也是程序员之间的交流的媒介,可读性强可移植性强是非常重要的.就我个人而言,我觉得,我更喜欢每行代码之间都有空行,大括号之后要有换行,程序要换行和缩进非常明显和统一,这样看着才会增加可读性,便于理解. 这些规范都是官僚制度下产生的浪费大家的编程时间.影响人们开发效率, 浪费时间的东西? 并不是啊...如果你这样的话,等你走上工作岗位上看到一个程序要上万行的代码的时候,我们都是知道的,每一个

同伴个人代码复审结果

同伴个人代码复审结果 一.一般性检查 1.代码能够正常运行,基本可以实现预定功能,没有大的逻辑错误. 2.代码结构非常清晰,模块化做得很好,很好地运用了面向对象的编程思想,容易阅读和理解. 3.关于字符串的匹配可以用库函数中的正则表达式来进行,当然可能在字符串比较长的时候,正则表达式会栈溢出,或者效率很低. 4.没有出现多余的调试代码. 5.代码的风格比较规范,缩进.换行.变量命名都遵守一般性的约定. 二.安全性检查 1.对输入的数据格式不合法的情况下,有些时候不能正确地识别. 2.当出现命令行

代码复审结果报告

在本次代码复审的作业中,我审阅的是我的pair project的partner郝倩的个人项目代码.下面我汇报一下本次代码复审的结果. 首先我说一下她的代码的优点.首先,她的代码在关键的地方都加上了注释,我在读她的代码的过程中会感觉到轻松很多.同时她的注释基本上没有加在那些显而易见的代码的部分,而是加在必要的点上.第二,从整个程序的结构上看,这份代码的思路十分清晰,并且每一个模块的实现都是使用尽可能简单的方法,这对于日后代码的维护有很好的作用.第三,从细节上来看,这份代码在变量命名上非常好,基本上