软件工程(DBSD2016) Git Review
说明:任何问题请在评论区说明,会集中更新回复。
连连看组
源码:
git clone https://git.coding.net/jx8zjs/llk.git
提交日志
一共有20次commit日志,有基本的改动说明日志信息,可以再改进
ReadMe
描述太简略
编码规范:
源码目录和文件
、项目工程文件
的名字应该尽量使用英文名或者缩写,不要使用中文名,这属于编码和命名规范问题,例如:
- 连连看
- 连连看.sln
- 连连看/连连看.csproj
- 源代码的
namespace 连连看{}
忽略文件:
不应该提交到源码仓库的临时文件和目录
以及个人本地配置
,请添加到.gitignore文件里 ,临时生成文件变动巨大,而且占用空间大,并不需要版本化,每个获取源码的人应该自己编译,而项目工程的个人配置文件每个人都会有不同的地方,提交到源码仓库会导致频繁冲突,不应该提交到源码仓库。
.vs
连连看.v12.suo
连连看/bin
连连看/obj
程序运行:
程序可以编译并运行。但是程序运行所依赖的素材,不应该放在bin目录下,可以选择如下任意一种方式:
- 单独建一个data文件夹存放并提交,在工程配置的编译后事件里可以通过batch脚本拷贝到生成的bin目录
- 在C#项目里可以建立Resource子目录存放,将素材嵌入到程序集,在代码里从程序集获取文件。
食物链
源码
git clone https://git.coding.net/li_yuhuan/FoodChain.git
提交日志
一共有20次commit日志,没写清楚每次commit的改动简要说明
ReadMe
缺少ReadMe,拿到这份代码,对于不熟悉Flex的人来说,不知如何编译运行。bin-debug目录下有发布的版本,并没有说明如何跑起来程序。
编码规范
代码部分应该消除重复代码,多使用函数,例如:
FoodChain/src/Biology_C/FoodChain/Animaltem.as:
public function DrawObj():void
{
if ( m_Index==0 )
{
m_objSpr = new BioFoodChain_zaolei();
this.addChild(m_objSpr);
this.addChild(m_objText0);
m_objText0.text = "藻类";
Textname = "藻类";
m_nids = 0;
}
else if ( m_Index==1 )
{
m_objSpr = new BioFoodChain_lvsezhiwu();
this.addChild(m_objSpr);
this.addChild(m_objText0);
m_objText0.text = "草";
Textname = "草";
m_nids = 1;
}
else if ( m_Index==2 )
{
...
}
...
}
忽略文件
并没有.gitignore文件,用来指定哪些目录不应该提交到源码仓库,bin-debug是生成的目录,不应该提交到git仓库。
约跑App
源码
git clone https://git.coding.net/muziliquan/niceGroup.git
提交日志
一共3次提交日志,太少
ReadMe
缺少内容,没有对项目的整体描述,代码的说明,运行的说明
忽略文件
正常使用
测试程序
niceGroup/MyApplication/app/src/androidTest的测试代码并没有使用起来,只加了个example
编码规范
niceGroup/MyApplication/app/src/main/java/com/example/...
程序的正式包名不适合用example
这种
MainActivity.java,HttpUtils.java里不要的代码不要通过注释的方式提交到源码仓库,直接删掉
RegisterActivity.java里的注册验证部分的代码,if else嵌套的很深,可以改进下,使用卫语句或者提前返回的方式减少嵌套。
bool test1(){
if(...){
return false;
}
if(...){
return false;
}
}
bool test2(){
bool ret=false;
do{
if(...){
break;
}
if(...){
break;
}
...
ret = true;
}while(false);
}
程序运行
需要部署服务器,没有ReadMe说明,没法运行和部署测试。一种方式是不依赖于部署的服务器也能跑一个本地测试版,或者应该提供测试服务器地址,ReadMe里写明如何Step By Step运行。
俄罗斯方块
源码
git clone https://git.coding.net/Boxer_/homework.git
在final目录下,应该为项目单独建立git仓库,这是团队项目,不是一个个人项目,homework这种名字适合个人练手或者教师布置作业做名字,应该使用和团队项目相关的合适名字
提交日志
最后补交,也即过程中没有使用源码开发,请为团队项目创建独立仓库,完备各种细节,游戏做的是不错,也要有合适的git仓库,一个项目的生命周期远远高于你们的学期。本人上一个月还修复过一个6年前了的项目的一个BUG呢。
ReadMe
太简略以至于跟没写一样,请参考:https://github.com/dtrebilco/glintercept
编码规范
- 目录名不要使用中文,不要用final这种名字,源码仓库的目录名字应该是项目上下文相关的,例如你们的游戏,final这是一个交作业的命名风格,不适合做源码目录名字,一般根据资源、功能、模块等命名
- 请写合适的注释,如下注释毫无意义,上下文看得出来你是在获取什么:
public FrameConfig(Element frame) {
// 获取窗口高度
this.height = Integer.parseInt(frame.attributeValue("height"));
// 获取窗口宽度
this.width = Integer.parseInt(frame.attributeValue("width"));
// 获取边框内边距
this.padding = Integer.parseInt(frame.attributeValue("padding"));
// 获取边框粗细
this.border = Integer.parseInt(frame.attributeValue("border"));
// 获取游戏名
this.title = frame.attributeValue("title");
// 获取窗口拔高
this.windowUp = Integer.parseInt(frame.attributeValue("windowUp"));
//一个方块的左位移偏量
this.sizeRol = Integer.parseInt(frame.attributeValue("sizeRol"));
//失败图片
this.loseIndex=Integer.parseInt(frame.attributeValue("loseIndex"));
// 获取窗体属性
- 不要的代码要删掉,不要提交到源码仓库:src/com/ccdx/fan/config/GameConfig.java尾巴部分
- 既然有测试代码,就可以对算法代码做完整的测试,public class DataTest implements Datas { 里面的测试代码太简单
- 居然还写了个代码统计的类,其实可以使用代码分析工具的,可是写就写吧,问题是使用绝对路径不好吧,请做成命令行工具:
public static void main(String[] args) {
File file = new File("C://Users//wzy//Documents//Tencent Files//184701326//FileRecv//Tetriss//src"); // 在这里输入需要统计的文件夹路径
- 整体来说代码有基本的分层,请改进各种细节
程序运行
需要myeclipse,没有该IDE,不装了,其实eclipse就够了,为啥要用myeclipse,毕竟后者是收费的吧,破解版的你用着放心么?破解版编译的程序要有个后门您这软件发出去就完蛋了。
考试系统
源码
git clone https://git.coding.net/handsomeman/examm.git
提交日志
一共就两个commit日志,太少
ReadMe
啥都没写,仓库目录下只有一个7z压缩包,也就是根本不是通过git做了源码管理
编码规范
解压后:
- 项目名字是tjgii-web,这名字完全不知是啥意思了
- 压缩包里把bin目录也压缩进去了
- tjgjj-web/test/dhc/callcenter/ivr/下倒是有几个测试文件,看代码还写了一些实际的测试代码
- 代码看上去基于已有框架加的,应该说明是否基于已有框架开发,整体做了哪些功能设计和实现。
- 结合一共就两次的git提交,这代码都是你们写的么。。
程序运行
没有提供测试地址
礼物挑选小工具
源码
git clone https://coding.net/u/shenbaishan/p/GIFT/git
提交日志
一共有20次commit日志,有基本的改动说明日志信息
ReadMe
没有任何描述
编码规范
- 程序根目录下直接放了一堆代码文件,目录需要组织下,源代码需要工程化的组织
- 源代码、jar、css等也应该分目录组织下
忽略文件
没有.gitignore添加忽略文件目录列表
程序运行
没有如何编译、发布、执行的说明,该组历史上部署过在线项目,试用过