任务1:(5分)
在学习通上注明结对的成员对: 1班魏佳辛-----1班张娜
任务2:(95分)
结对的成员共同完成本次作业,撰写博客并将结对项目的程序发布到github上
博客的内容安排如下:
(1)提供你的结对成员的博客链接地址(5分)
-
魏佳辛的博客园链接地址:https://www.cnblogs.com/weijxx91/
- 张娜的博客园链接地址:https://home.cnblogs.com/u/zhangnaa03/
(2)结对成员对四则运算项目进行代码互审,并给出代码审查结果表
魏佳辛的代码审查表(由张娜完成)(10分)
张娜的代码审查表(由魏佳辛完成)(10分)
互查内容 |
魏佳辛 |
张娜 |
|
1.概要部分 |
代码符合需求和规格说明么? |
符合 |
符合 |
代码设计是否考虑周全? |
周全 |
不周全 |
|
代码可读性如何? |
易读 |
易读 |
|
代码容易维护么? |
不容易 |
容易 |
|
代码的每一行都执行并检查过了吗? |
是 |
是 |
|
2.设计规范部分 |
设计是否遵从已知的设计模式或项目中常用的模式? |
是 |
是 |
有没有硬编码或字符串或数字等存在? |
有 |
无 |
|
代码有没有依赖于某平台? |
无 |
有 |
|
开发者新写的代码能否用已有的Library/SDK/Framework中的功能实现?是否存在类似的功能可以调用而不用全部重新实现? |
否 否 |
否 否 |
|
有没有无用的代码可以清除? |
有 |
有 |
|
3.代码修改部分 |
修改的部分符合代码标准和风格么(详细条文略) ? |
符合 |
符合 |
4.具体代码部分 |
有没有对错误进行处理?对于调用的外部函数,是否检查了返回值或处理了异常? |
有 是 |
有 否 |
参数传递有无错误,字符串的长度是字节的长度还是字符(可能是单1双字节)的长度,是以0开始计数还是以1开始计数? |
无 0 |
无 0 |
|
边界条件? |
有 |
有 |
|
有没有使用断言(Assert)来保证我们认为不变的条件真的得到满足? |
无 |
无 |
|
对于资源的申请释放,有无泄漏,有无优化空间? |
无 |
有 |
|
数据结构中有没有用不到的元素? |
无 |
无 |
|
5.效能 |
代码的效能( Performance )如何? |
良好 |
良好 |
代码中,特别是循环中是否有明显可优化的部分(C++中反复创建类,C#中string的操作是否能StringBuilder来优化) ? |
否 |
否 |
|
对于系统和网络的调用是否会超时?如何处理? |
否 |
无调用 |
|
6.可读性 |
代码可读性如何?有没有足够的注释? |
易读 足够 |
易读 足够 |
7.可测试性 |
代码是否需要更新或创建新的单元测试?针对特定领域的开发(如数据库、网页、多线程等),可以整理专门的核查表。 |
需要 |
不需要 |
(3)选取其中一个成员的项目为基础,进行结对编程。结对项目撰写的博客要求:(30分)
(a)结合课堂讲授内容,制订一份2人共同遵守的代码编写基本规范(至少包括注释规范与变量命名规范)。
-
空行:空行起着分隔程序段落的作用。空行得体(不过多也不过少)将使程序的布局更加清晰,空行不会浪费内存,断行与空白的{}行:每个“{”和“}”都独占一行。
为便于阅读代码,每行代码的长度应少于100个字符。 - 在每个类声明之后、每个函数定义结束之后都要加空行。
- 代码行:一行代码只做一件事情,如只定义一个变量,或只写一条语句。这样的代码容易阅读,并且方便于写注释。if等语句自占一行,执行语句不得紧跟其后。不论执行语句有多少都要加{}。这样可以防止书写失误。
-
注释:修改代码同时修改相应的注释,以保证注释与代码的一致性。
-
定义变量:在定义变量的同时必须初始化该变量。
如果变量的引用处和其定义处相隔比较远,变量的初始化很容易被忘记。如果引用了未被初始化的变量,可能会导致程序错误。
- 对齐:程序的分界符‘{’和‘}’应独占一行并且位于同一列,同时与引用它们的语句左对齐。{ }之内的代码块在‘{’右边一个制表符左对齐。
-
类命名:首字母大写,每个单词首字母大写(大驼峰命名法)。
-
方法名:首字母小写,剩余的每个单词的首字母大写(小驼峰命名法)。
(b)描述结对编程的感受。
-
魏佳辛感受:在结对编程中,两个人相互讨论可以更快更有效地解决问题,增强代码和产品质量,并有效的减少BUG。而且在开发伙伴身边坐下,一起调试代码的时候,可以从她身上学到一些编程经验与技巧,得到能力上的互补,两个人都可以快速的学习进步。
- 张娜感受:两个人一起写代码可以避免很多小错误,细节考虑更全面,质量可以得到很大的保证,代码风格也能保持一致。而且我相信结对编程可以提高工作效率,增加成员的积极性,不容易沮丧。因为在面对问题的时候,会有人一起分担,共同尝试新的策略。
(c)结对场景照片
(4)结对项目编程要求:(40分)
对结对项目首先完成代码规范和设计规范的修改,其次完成项目增加的需求,最后将完成的项目提交到github上,给出github的连接地址,可以给出简单的设计说明。
github链接地址:https://github.com/zhangna-zn/-/tree/master
增加的需求:(a)考虑数据异常处理问题,如在输入题目生成范围的数据时,输入了“abc“等字符数据,程序报错。
(b)增大算式生成数的范围(如整数存不下的数),程序报错。