项目组队——欣赏与批判队友个人项目源码
写在前面:
这次是我第一次去带着批判的眼光审视别人的代码,之后还要写成一篇博客发表出来ε(┬┬﹏┬┬)3。这个过程不仅是一个挑别人毛病的过程,更是一个自我审视的过程。
才疏学浅,所以就先谈谈此位高手队友浅层的优点和不足吧!
一、代码风格:
优点:
1. 命名:变量与函数命名简洁直给。
2. 注释:简洁美观。
3. 大小写:变量名和函数名都有用到大小写这一组合,函数大都用了动宾/动词来表示。
下面是队友的部分函数命名:
Check_User( U_N, Pass); //检查用户
Topics_num(Input_Num); //题目数量
Brackets_N(); //括号数量
Print_Question(); //打印题目
Check_The_Same(S); //查重函数
Change_Topic(Change); //切换题目
Create_Folder(); //创建文件夹
4. 缩进:四个空格,从可读性上来说,是正好的。
下面是队友的某一函数内部代码:
int Check_User(String U_N,String Pass){ //检查用户 int n=All_User.length; for(int i=0;i<n;i++){ if(U_N.equals(All_User[i])){ if(Pass.equals(All_Password[i])){ User_Name=U_N;Password=Pass; System.out.println("当前选择为"+Educational_Level[i]+"出题"); Present_Grade=Educational_Level[i]; return 1; } } } System.out.println("请输入正确的用户名、密码!"); return 0; }
缺点:
1. 断行与空白的{ }行:整体格式偏向于:
If(condition){
DoSomething();
}else{
DoSomethingElse();
}
比如说此段代码:
void Close_FileOutputStream(){ //关闭输出流 try { fileOutputStream.flush(); fileOutputStream.close(); }catch(Exception e){ e.printStackTrace(); } }
可以改进,使得每一个“{”和“}”都独占一行,如:
void Close_FileOutputStream() //关闭输出流 {
try
{ fileOutputStream.flush(); fileOutputStream.close(); }
catch(Exception e)
{ e.printStackTrace(); } }
2. 下划线: 可以适当减少一些不必要的情况下下划线在变量或者函数名中的使用。
二、代码设计与功能实现:
优点:
1. 有中途退出功能。
2. 括号的添加实现了随机性并且排除了无意义括号情况(这一点也是我要学习的地方)。
缺点:
1. 缺少Private 和public的成员声明,因此编译后会产生很多warning。
2. 查重功能仅支持当次程序结果查重。
3. 高中初中小学代码部分重复 可以合并或者统一调用一个函数。
4. 扩展性稍差,多个操作数的时候,实现功能不够完善(如括号个数)。
写在最后最后的结束语:
不要过分相信你所看到的,也不要过分相信自己所猜测的,解密答案的唯一标准就是检验与实践!