我们在做代码重构时,最麻烦的问题是什么?各人有各人的答案。
对我来说,找到哪一段代码需要重构是最大的麻烦。产品写好了,程序怎么样?怎么判断?对于由整个团队写的代码,全面阅读是不太现实的。开会?程序员最最不喜欢开会了!那可是个技术活。:)
最近,我用了一个小工具,SourceMonitor,取得了意想不到的好效果。推荐大家使用。
<o:p> </o:p>
SourceMonitor是一个源代码衡量工具,由http://www.campwoodsw.com/开发,免费下载。
使用方法如下:
<o:p> </o:p>
Step 1. 创建一个项目,比如,Java项目。
<v:shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"></v:path><o:lock v:ext="edit" aspectratio="t"></o:lock></v:shapetype><v:shape id="_x0000_i1025" style="WIDTH: 333pt; HEIGHT: 255.75pt" type="#_x0000_t75"><v:imagedata src="file:///C:\DOCUME~1\SUMMER~1\LOCALS~1\Temp\msohtml1\01\clip_image001.png" o:title="sm1"></v:imagedata></v:shape>
Step 2 选择目录
<o:p></o:p>
<v:shape id="_x0000_i1026" style="WIDTH: 333pt; HEIGHT: 256.5pt" type="#_x0000_t75"><v:imagedata src="file:///C:\DOCUME~1\SUMMER~1\LOCALS~1\Temp\msohtml1\01\clip_image003.png" o:title="sm2"></v:imagedata></v:shape>
Step 3. 输入项目名
<v:shape id="_x0000_i1027" style="WIDTH: 333.75pt; HEIGHT: 254.25pt" type="#_x0000_t75"><v:imagedata src="file:///C:\DOCUME~1\SUMMER~1\LOCALS~1\Temp\msohtml1\01\clip_image005.png" o:title="sm3"></v:imagedata></v:shape>
Step 4 指定目录
<v:shape id="_x0000_i1029" style="WIDTH: 330pt; HEIGHT: 252pt" type="#_x0000_t75"><v:imagedata src="file:///C:\DOCUME~1\SUMMER~1\LOCALS~1\Temp\msohtml1\01\clip_image007.png" o:title="sm4"></v:imagedata></v:shape>
Step 5 指定检查点,缺省值就可。
<v:shape id="_x0000_i1028" style="WIDTH: 331.5pt; HEIGHT: 254.25pt" type="#_x0000_t75"><v:imagedata src="file:///C:\DOCUME~1\SUMMER~1\LOCALS~1\Temp\msohtml1\01\clip_image009.png" o:title="sm5"></v:imagedata></v:shape>
<o:p></o:p>
<o:p></o:p>
<o:p></o:p>
Step 6 完成
<o:p></o:p>
<v:shape id="_x0000_i1035" style="WIDTH: 332.25pt; HEIGHT: 252.75pt" type="#_x0000_t75"><v:imagedata src="file:///C:\DOCUME~1\SUMMER~1\LOCALS~1\Temp\msohtml1\01\clip_image011.png" o:title="sm6"></v:imagedata></v:shape>
<o:p></o:p>
Step 7 指定本次检查点
<v:shape id="_x0000_i1030" style="WIDTH: 415.5pt; HEIGHT: 259.5pt" type="#_x0000_t75"><v:imagedata src="file:///C:\DOCUME~1\SUMMER~1\LOCALS~1\Temp\msohtml1\01\clip_image013.png" o:title="sm7"></v:imagedata></v:shape>
<o:p></o:p>
Step 8 检查结果
<v:shape id="_x0000_i1031" style="WIDTH: 414.75pt; HEIGHT: 92.25pt" type="#_x0000_t75"><v:imagedata src="file:///C:\DOCUME~1\SUMMER~1\LOCALS~1\Temp\msohtml1\01\clip_image015.png" o:title="sm8"></v:imagedata></v:shape>
<o:p></o:p>
Step 9 最复杂的文件,这应该是首选的准备重构的文件。<v:shape id="_x0000_i1032" style="WIDTH: 414.75pt; HEIGHT: 92.25pt" type="#_x0000_t75"> </v:shape>
<v:shape style="WIDTH: 414.75pt; HEIGHT: 92.25pt" type="#_x0000_t75"><v:imagedata src="file:///C:\DOCUME~1\SUMMER~1\LOCALS~1\Temp\msohtml1\01\clip_image017.png" o:title="sm9"></v:imagedata></v:shape>
Step 10 双击此行可以看到对此文件的评估。
<o:p></o:p>
<v:shape id="_x0000_i1033" style="WIDTH: 414.75pt; HEIGHT: 388.5pt" type="#_x0000_t75"><v:imagedata src="file:///C:\DOCUME~1\SUMMER~1\LOCALS~1\Temp\msohtml1\01\clip_image019.png" o:title="sm10"></v:imagedata></v:shape>
<o:p></o:p>
Step 11 打开文件可以直达最复杂的函数。
<v:shape id="_x0000_i1034" style="WIDTH: 414.75pt; HEIGHT: 247.5pt" type="#_x0000_t75"><v:imagedata src="file:///C:\DOCUME~1\SUMMER~1\LOCALS~1\Temp\msohtml1\01\clip_image021.png" o:title="sm11"></v:imagedata></v:shape>
<o:p> </o:p>
你看,现在寻找需要重构的函数简单多了!
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1176916
相关推荐
博文链接:https://laorer.iteye.com/blog/48324
国产软件<br>博客主页:http://blog.csdn.net/zwhfyy<br><br><br><br><br>开发工具:Eclipse 3.1 , jdk 5.0<br>测试环境:tomcat 5.5 , mysql 4.1<br>系统环境:WindowXp<br><br>软件简介:<br><br><br>声明:<br>...
Windows 脚本技术参考手册(CHM)<br>目录:<br>Windows 脚本技术 <br><br> Windows 脚本技术<br><br> JScript<br> VBScript<br> 脚本运行时<br><br> Dictionary 对象<br> FileSystemObject 对象<br> 脚本 Encoder<br>...
SourceMonitor 代码重构的小工具
<br><br>一、用ant编译源码(所有源文件及目录结构请下载)<br><br>C:\cs>ant compile<br>Buildfile: build.xml<br><br>compile:<br>[mkdir] Created dir: C:\cs\build<br>[javac] Compiling 60 source files to C:\cs...
JPEG软件解码源代码,下附软件文档部分说明:<br>Overview:<br> Functions provided by the library<br> Outline of typical usage<br>Basic library usage:<br> Data formats<br> Compression details<br> ...
作者:talent_marquis<甜菜侯爵><br>联系方式:<br>talent_marquis@163.com<br>marquis.hou@dextrys.com<br><br>简单说明:<br>这个小工具对于软件开发用户,特别是Bug fix类型的超小项目会很有用。对于普通用户用处...
反编译后的源码<br/>包含一个自己写的测试用例<br/><br/>// Assembly WebChart, Version 1.1.1.4<br/><br/>[assembly: AssemblyVersion("1.1.1.4")]<br/>[assembly: AssemblyCopyright("By: Carlos Aguilar Mares ...
来自http://www.horseb.org/opensource.htm<br>IPDOG帮助:<br>[ -x ] list network interface <br>[ -c ] [ --count ] Exit after receiving 'count' packets<br>[ -i ] [ --interface ] Listen on interface '...
<br><br>Source code and latest release are available at:<br>http://salvatoremeschini.cjb.net<br><br>History:<br> 1.0 - First release<br> 1.1 - Automatic delay management using a command line parameter...
<br><br><br>Development<br>===========<br><br>If you're interested in changing and extending ProGuard, you can start by<br>compiling the source code yourself:<br><br> mkdir classes<br> javac -...
<br>* Is a complete, practical resource for programmers wishing to incorporate LOD technology into their own systems.<br>* Is an important reference for professionals in game development, computer ...
<br><br>分为php4 php5两个版本<br><br>关于批量反编译的方法(未验证):<br><br>方法一:<br><br>for /R %a in (*.php) do php -c c:\dezender %a<br><br>方法二:<br><br>fragment.batset filename=tcdezender....
c#入门经典中文第三版,针对vs2005,...<br>/***************************************/<br>第1部分<br>http://download.csdn.net/source/427034<br>第2部分<br>http://download.csdn.net/source/427056<br>第3部分<br>...
Software Testing and Continuous Quality Improvement<br><br>SECTION I SOFTWARE QUALITY IN PERSPECTIVE . . . . . . . . . . . . . . . 1<br>1 Quality Assurance Framework. . . . . . . . . . . . . . . . . ....
Subclipse 1.4.x requires Subversion 1.5.0 version of JavaHL/SVNKit <br><br>Links for 1.4.x Release:<br>Changelog: http://subclipse.tigris.org/subclipse_1.4.x/changes.html<br>Eclipse update site URL: ...
c#入门经典中文第三版,针对vs2005,...<br>/***************************************/<br>第1部分<br>http://download.csdn.net/source/427034<br>第2部分<br>http://download.csdn.net/source/427056<br>第3部分<br>...