结对编程队友代码分析

这次结对编程的队友是可熊,感谢可熊不嫌弃我这个鶸,,和我组队

通过分析可熊的代码,深刻体会到了自己代码的不规范以及代码可延展性的缺失

比如using namespace std; ,这一行代码虽然自己写的时候很方便,但没有考虑到别人的编程习惯,某些工程代码里会出现以关键字做变量名的情况,这样写会不兼容

所以要用cin,cout作为标准输入输出应该如下面代码:

int x;
std::cin >> x ;
std::cout << x << std::endl;

或者像这样

using std::cin;
using std::cout;
using std::endl;
int x;
cin >> x;
cout << x << endl;

详细的分析参考博客https://blog.csdn.net/my_precious/article/details/49701339

然后是变量名的命名规则,可熊的代码很好的遵从了构建之法的要求,对类的成员命名符合Pascal形式,变量符合Camel形式,函数则用动词或动宾组合词表示

如下所示:

函数部分

void get_countname(std::string & cn);
void get_password(std::string & pw);

void get_countname(std::string & cn)
{
    std::cin >> cn;
}

void get_password(std::string & pw)
{
    std::cin >> pw;
}
类的内部实现

private:
    std::string s_countname;
    std::string s_password;
    grade count_grade;
public:
    Count(const std::string & cn, const std::string & pw, const grade & cg);
    void ProduceQuestion() const;
    bool CheckPass(const std::string & cn, const std::string & pw) const;
    void ChangeGrade(const grade & cg);

这种规范的编码方式使得我在看代码的时候可以毫不费力的读懂,便于维护,与今天上课讲的具体要求吻合的很好,与自己的相比较顿时感觉自己不适合敲代码,感觉会像新闻里的一样(大雾),,。

分析具体的代码结构,可熊是用类的方式实现,方法具体为:

1、检查账号密码,

2、切换难度等级,

3、生成相应题目,

体现出了低耦合的特点,就是每一个模块只负责一件事,类的接口设计的也很好,便于实现新的需求。。

接着介绍一些小小的缺点,关于软件工程,我认为不只是软件写出来就行了,还得配上相应的说明文档,可熊恰恰犯了这个错误,他并没有写说明文档

所以虽然他的代码写的很漂亮,需求也满足的很好,但是第一次我拿到工程文件的时候,我很是花了一番功夫从弄清楚了各个文件的作用以及代码的整体结构

也就是说,用户体验不好,我认为这一点很重要!!!

总结:可熊的代码写的很好,细节方面处理的很到位,可却缺少了工程周期很重要的一环。(ps:我自己写了说明文档,哈哈哈)

原文地址:https://www.cnblogs.com/clearlove8/p/9715060.html

时间: 2024-08-01 12:57:10

结对编程队友代码分析的相关文章

软件工程导论 结对编程 队友代码分析

这次的个人项目是中小学数学卷子自动生成程序,每个人都自己动手编写了自己的代码.今天的任务是看队友的代码,并指出他代码中的优点和缺点. 以下是对队友代码的个人评价. 优点: ①代码结构组织有序. 代码非常的模块化,每一个函数的功能清晰明了,框架结构清晰.而我是一个main()函数写到底,这一点我应该以后注意. 他的框架 我的框架 ②交互友好 经过对程序的实际测试,发现交互是非常友好的,我每一步都知道我应该输入什么内容,他做的比项目原本需求的交互更好. 比需求更加人性化. ③程序严谨,测试未发现明显

结对编程——队友代码分析

队友使用的是c++语言,IDE用得是VS2015.下面开始进行优缺点的分析. 优点:①严格按照代码规范,分文件进行模块的分类.整个工程一共有8个文件,Login.h,Login.cpp,Subject.h,Subject.cpp,User.h,User.cpp,UsersTable.h,main.cpp,类的声明在几个头文件中,然后再在另一个文件中对类中的方法进行具体实现.比如login类: #pragma once #include"User.h" using namespace s

结对编程-队友代码分析

按照老师的要求,对队友的代码进行解析,先说缺点在看优点,改正缺点学习优点,一起进步! 1.首先打开代码的时候,关于账号密码的存储,将账号和密码直接存储在了一个数组中.按照"用户名 密码"的格式,这在之后的登陆检测中确实可以方便检测,但是个人感觉将账号密码直接存储在一起会造成一些安全问题. string allUser[]={"张三1 123","张三2 123","张三3 123","李四1 123",&q

结对编程——队友代码的优缺点分析

一·项目的需求分析 需求文档中给出5个需求,第一个是用户的登录要求用户名和密码相匹配,并且有着初始的出题类型:需求二则限制题目的操作数和取值范围: 需求三要求我们输入题目数量,这里给出限定条件10-30个题目并且要求同一位老师的题目不能一样:需求四则要我们满足切换出题类型:需求五则 是对题目保存路径和文件的要求. 二·代码优缺点分析 main函数大体框架为:一个循环加一个if的判断语句来确定登陆对象,并且每一个登录对象都有一个唯一的标识,eg:张三1的标识为(0,1),再将其标 识传递给user

中小学数学卷子自动生成程序: 结对编程对方代码分析

需求分析: 1.命令行输入用户名和密码,两者之间用空格隔开(程序预设小学.初中和高中各三个账号,具体见附表),如果用户名和密码都正确,将根据账户类型显示“当前选择为XX出题”,XX为小学.初中和高中三个选项中的一个.否则提示“请输入正确的用户名.密码”,重新输入用户名.密码: 2.登录后,系统提示“准备生成XX数学题目,请输入生成题目数量(输入-1将退出当前用户,重新登录):”,XX为小学.初中和高中三个选项中的一个,用户输入所需出的卷子的题目数量,系统默认将根据账号类型进行出题.每道题目的操作

结对编程-队友代码欣赏

运行结果: 优点: 1.注释恰当,符合命名规范 2.添加了新增用户的功能 3.将不选用初中/高中的操作符视为正常情况而不是特殊情况,使代码的分支减少,逻辑清晰 缺点: 1.user.java下的三个类都存储了用户名与密码,而没有特别的区别与彼此的函数,显得有点多余,个人认为可以用一个类表示,减少代码量以及数据的传递次数 2.题目之间没有空行,没有检查题目是否重复 原文地址:https://www.cnblogs.com/marinmoring/p/9710751.html

结对编程队友个人项目分析

队友代码分析: 优点: 1:首先在函数中对账号进行了判断 具有良好的扩展性,也方便之后的功能里面增加新的账号,并且进行了注释 2.结构的逻辑性良好,根据不同的年级,通过if语句能够跳转到对应的模块进行输出 3.代码简洁明了,方便阅读以及理解代码的功能实现 4.变量命名规,具有良好可读性 5.在对输入判断这方面,提示的很好 缺点: 1.对账号密码判断位于一行,影响了代码的可读性 2.在生成出题文件这块,没有注释具体生成的文件的位置,影响后续的测试,并且在文件名字上,没有按照需求中所给的名字进行文件

结对编程:队友代码分析

按照结对编程要求,对队友的代码进行分析.在代码中发现的问题可以提醒队友或者警示自己. 优点: 一.代码以外: 1.使用语言为Python,比起JAVA和C++方便许多,而且实现许多功能也方便许多,可以说是从开始就为拓展打好了基础.事实上也的确因为这点,我们选用了他的代码作为核心 2.文件按功能分为几个文件,命名为CreatSymbol.CreatFirst.CreatSecond.CreatThird.Test.各个函数位置明确,命名规范 3.注释详细且明确.文件/函数的开头都有注释,各关键部分

中小学数学卷子自动生成程序-结对编程之队友代码分析

一.编程语言:C++ 二.代码解读与分析: 1. 项目逻辑 通过输入信息与数组中存储账户信息比对完成用户登录.根据不同的类型要求生成相应类型的试卷并查重.将生成题目以指定的形式存放在指定文件夹下.过程中可切换试卷类型. 2.函数功能说明 int main():主函数负责调用各个功能函数,将各个功能模块按照项目实际的使用情况与应用逻辑结合适当的提示性信息进行组织和套用. void SetPrimary(int n):生成小学类型的试卷. void SetMiddle(int n):生成初中类型的试