微软web2.0开发示例Kobe,重蹈了Oxite的覆辙。Ayende连续发表了五篇高质量的Kobe探讨贴:
- Kobe – In the nuts & bolts and don’t really liking it
- Kobe – Data Access done wrong
- Kobe – When the documentation is the only delivery that matters
- Kobe – an example of exception handling done wrong
- Kobe – Architectural Overview
Ayende使用Simian工具对代码进行静态分析,发现位于67个文件中的873个方法共有5138行代码是重复的。进入正题,介绍一下Simian这个冗余代码检查工具,目前的版本是2.2.24,不光是c#代码,它也可以用来检查C, C++, COBOL, Ruby, JSP, ASP, HTML, XML, Visual Basic等格式的代码。simian并非免费工具,如果你用它来检查开源代码或非商业代码的话,它是免费使用的,如果是商业应用的话,就需要付费了。
使用方法:
到官方站点上下载最新的版本,下载完毕后,将文件解压,将simian所在的路径添加到windows环境变量path下,同时,将simian-2.2.24.exe的文件名改成simian.exe,这样方便我们的使用,simian是命令行工具,在cmd中运行simian即可:
c:\>simian.exe [options] files
下面介绍具体的使用方法:
- 检查包括子目录下的所有的c#文件:
"-includes=*.cs"
- 检查当前目录下的所有c#文件 ,并且只检查代码3行以上重复的代码
-threshold=3 "*.cs"
- 检查所有的c#文件:
"*.cs"
使用命令行输出的话,对于代码的定位不是很方便,可以通过Visual Studio的外部工具(参看http://blogs.conchango.com/howardvanrooijen/archive/2006/02/08/2776.aspx)或者Howard van Rooijen's 写的一个工具MonkeyWrangler。也可以整合到持续集成中,可参看DotNet持续集成环境构建及配置之安装篇,DotNet持续集成环境构建及配置之配置篇。