结对编程——队友代码分析篇
结对编程——队友代码分析篇
队友的代码采用了C++编程,结构从main开始往上一步步查看,只有一个大类User,定位成用户类,类内包括一些私有变量和外部接口函数。
class User
{
private:
string m_userID; //用户名
string m_password; //密码
int m_number; //题目数量
string m_grade; //年级
ofstream m_paper; //流
string m_path; //相对路径
stringstream m_question;
public:
void Login();
void Test_make();
void Name_File();
void Type_switch();
void Symbol(int option,int ope);
};
以及一个global的map变量:
map<string,string> mapStudent;
其余就是主要函数功能的实现,不再赘述。
最后,在功能验证上,基本通过了测试。

总体来说,对比我自己的代码,队友的代码具有如下优点:
- 类定义只有一个,集成度高,在完成基本功能的基础上能够清晰地展现各个变量和名称的作用。易读易拓展。
- 利用全局变量存储账号信息,方便访问,便于查找和检索对比账号的信息。
- 分装了类内功能模块的实现,便于修改和查看。
- 在类内函数的单独定义方面,主要是思路和本人的思路不同,队友的思路是随机生成操作数为"+"或"-"的两边的括号,并且进行了多种情况的判断保证生成的括号合法和有效(即删除后肯定会对表达式产生影响)。
- 贴心地将题目编号后的点换成了中文的'、',让题目看起来更清晰。
而在缺点上:
- 代码的耦合度比较高,一些数据被拿来反复使用,如果要修改会是一件很麻烦的事情。
- 功能提示性不够,用户体验会变差。
- 没有文件夹是否存在的检查,重复登录会让不需要提示给用户的信息显示出来。
- 查重功能不完备,可能会生成重复的题目。
总结
虽然自己也写了这个项目,但是通过查看别人的代码,也切实发现了自己的一些问题,比如代码写的逻辑性太复杂,会让可读性变得很差,还有可能会因为某些小地方写的不够好导致一些奇奇怪怪的bug等。每个人都有自己的思路和规划,自己想的可能并不是最好的方案,这时候参考别人的想法就很重要了,因此,我们需要在项目中多多参考别人的意见和建议,了解他人的想法,毕竟项目编程早已不是一个人的事情,而是一个团队,只有在这样的环境中,我们才能完成更好的设计,写出更好的代码。

浙公网安备 33010602011771号