一.成员博客地址
https://www.cnblogs.com/x1chen/p/11720963.html
二.项目代码互审
部分 | 内容 | 郭长春被审结果 | 于耀铭被审结果 |
---|---|---|---|
概要 | 代码符合需求和规格说明吗? | 符合 | 符合 |
代码设计是否考虑周全? | 是 | 是 | |
代码可读性如何? | 易读 | 容易 | |
代码容易维护吗? | 易维护 | 容易 | |
代码每一行都执行并检查过了吗? | 已查 | 已检查 | |
代码设计规范 | 设计是否遵从已知的设计模式或项目中常用的模式? | 是 | 遵从 |
有没有硬编码或字符串/数字等存在? | 无 | 没用 | |
代码有没有依赖于某一平台,是否会影响将来的移植(如Win32到Win64)? | 影响 | 依赖,会影响 | |
开发者新写的代码能否用已有的Library/SDKFramework中的功能实现?在本项目中是否存在类似的功能可以调用而不用全部重新实现? | 不能 不存在 |
否 否 |
|
有没有无用的代码可以清除? | 无 | 无 | |
代码规范格式 | 修改的部分符合代码标准和风格么? | 完全符合 | 大部分符合 |
具体代码部分 | 有没有对错误进行处理?对于调用的外部函数,是否检查了返回值或处理了异常? | 有 已检查 |
已处理 已检查 |
参数传递有无错误,字符串的长度是字节的长度还是字符(可能是单/双字节)的长度,是以0开始计数还是以1开始计数? | 无错 字符长 从0开始 |
无错误 字符 从0开始 |
|
边界条件是如何处理的? switch语句的 default分支是如何处理的?循环有没有可能出现死循环? | 无死循环 | 无死循环 | |
有没有使用断言( Assert)来保证我们认为不变的条件真的得到满足? | w无 | ||
对资源的利用,是在哪里申请,在哪里释放的?有无可能存在资源泄漏(内存、文件、各种GUI资源、数据库访问的连接,等等)?有没有优化的空间? | 无 有优化空间 |
无 可优化 |
|
数据结构中有没有用不到的元素? | 没有 | 无 | |
效能 | 代码的效能( Performance)如何?最坏的情况是怎样的? | 一般 | 还行 |
代码中,特别是循环中是否有明显可优化的部分C++中反复创建类,C中 string的操作是否能用 StringBuilder来优化)? | 可以 | 可以 | |
对于系统和网络的调用是否会超时?如何处理? | 无 | 无 | |
可读性 | 代码可读性如何?有没有足够的注释? | 易读 注释少 |
易读 注释不够 |
可测试性 | 代码是否需要更新或创建新的单元测试? | 否 | 不需要 |
三.结对编程,采用郭长春的代码
A.代码编写基本规范
- 每行不超过80个字符
- 用4个空格来缩进代码
- 按照标准的排版规范来使用标点两边的空格
- 确保对模块, 函数, 方法和行内注释使用正确的风格
- 通常每个语句应该独占一行
- 项目中不起作用的文件、代码、变量等应删除
- 一段代码写上具体的注释,标注具体完成什么功能
- 尽可能地避免使用前置声明。使用
#include
包含需要的头文件即可 - 函数命名, 变量命名, 文件命名要有描述性; 少用缩写
- 注释统一使用
//
B.结对编程感受
- 我的感受:小伙伴非常聪明,沟通顺利,结对编程互帮互助效率极高
- 他的感受:同伴写的代码质量、效率极高,跟他一起学了很多好的编程习惯。第一次尝试采用结对编程这种编程模式,虽然时间不长,但还是感觉体会颇多
C. 照片
四.结对编程项目
设计说明:
数据异常处理:利用scanf错误返回值,判断错误类型数据,利用循环保证正常输入
处理数据溢出:改为unsigned long,扩大数据范围
项目地址: