软件工程(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目录下,可以选择如下任意一种方式:

  1. 单独建一个data文件夹存放并提交,在工程配置的编译后事件里可以通过batch脚本拷贝到生成的bin目录
  2. 在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添加忽略文件目录列表

程序运行

没有如何编译、发布、执行的说明,该组历史上部署过在线项目,试用过

posted @ 2016-12-07 11:05  ffl  阅读(831)  评论(18编辑  收藏  举报