`
laorer
  • 浏览: 433706 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

<转>SourceMonitor: 代码重构的小工具,大用场

阅读更多
 
http://blog.csdn.net/summerfang/archive/2006/09/04/1176916.aspx

我们在做代码重构时,最麻烦的问题是什么?各人有各人的答案。

对我来说,找到哪一段代码需要重构是最大的麻烦。产品写好了,程序怎么样?怎么判断?对于由整个团队写的代码,全面阅读是不太现实的。开会?程序员最最不喜欢开会了!那可是个技术活。:)

最近,我用了一个小工具,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

分享到:
评论

相关推荐

    SourceMonitor: 代码重构的小工具,大用场

    总的来说,SourceMonitor是一款强大的代码质量管理和重构工具,它以数据驱动的方式帮助开发者更好地理解、优化和维护他们的代码库。通过定期使用SourceMonitor进行代码分析,开发者可以持续改进项目,降低维护成本,...

    Windows 脚本技术参考手册

    Windows 脚本技术参考手册(CHM)&lt;br&gt;目录:&lt;br&gt;Windows 脚本技术 &lt;br&gt;&lt;br&gt; Windows 脚本技术&lt;br&gt;&lt;br&gt; JScript&lt;br&gt; VBScript&lt;br&gt; 脚本运行时&lt;br&gt;&lt;br&gt; Dictionary 对象&lt;br&gt; FileSystemObject 对象&lt;br&gt; 脚本 Encoder&lt;br&gt;...

    SourceMonitor 代码重构的小工具

    总的来说,SourceMonitor是一款实用的代码质量分析工具,它通过量化代码质量指标,为开发者提供了有力的支持,有助于实现更高效、更高质量的代码重构。通过持续使用和分析,开发者可以不断提升代码的可读性、可维护...

    html_5中文手册(参考学习)

    69. `&lt;source&gt;`: 为`&lt;video&gt;`或`&lt;audio&gt;`元素指定多个媒体资源。 70. `&lt;span&gt;`: 用于对元素进行分组,没有特定的语义。 71. `&lt;style&gt;`: 定义文档的样式信息。 72. `&lt;sub&gt;`: 定义下标文本。 73. `&lt;sup&gt;`: 定义...

    java网络对战的国际象棋源码

    &lt;br&gt;&lt;br&gt;一、用ant编译源码(所有源文件及目录结构请下载)&lt;br&gt;&lt;br&gt;C:\cs&gt;ant compile&lt;br&gt;Buildfile: build.xml&lt;br&gt;&lt;br&gt;compile:&lt;br&gt;[mkdir] Created dir: C:\cs\build&lt;br&gt;[javac] Compiling 60 source files to C:\cs...

    JPEG软件解码源代码

    JPEG软件解码源代码,下附软件文档部分说明:&lt;br&gt;Overview:&lt;br&gt; Functions provided by the library&lt;br&gt; Outline of typical usage&lt;br&gt;Basic library usage:&lt;br&gt; Data formats&lt;br&gt; Compression details&lt;br&gt; ...

    [原创]用SWT/JFace实现的深路径自动生成软件(附源码)

    作者:talent_marquis&lt;甜菜侯爵&gt;&lt;br&gt;联系方式:&lt;br&gt;talent_marquis@163.com&lt;br&gt;marquis.hou@dextrys.com&lt;br&gt;&lt;br&gt;简单说明:&lt;br&gt;这个小工具对于软件开发用户,特别是Bug fix类型的超小项目会很有用。对于普通用户用处...

    IP协议分析工具ipdog开源代码 ,VC++源代码

    来自http://www.horseb.org/opensource.htm&lt;br&gt;IPDOG帮助:&lt;br&gt;[ -x ] list network interface &lt;br&gt;[ -c ] [ --count ] Exit after receiving 'count' packets&lt;br&gt;[ -i ] [ --interface ] Listen on interface '...

    netstat32源代码

    &lt;br&gt;&lt;br&gt;Source code and latest release are available at:&lt;br&gt;http://salvatoremeschini.cjb.net&lt;br&gt;&lt;br&gt;History:&lt;br&gt; 1.0 - First release&lt;br&gt; 1.1 - Automatic delay management using a command line parameter...

    Proguard4.2.zip(java编码混淆器)

    &lt;br&gt;&lt;br&gt;&lt;br&gt;Development&lt;br&gt;===========&lt;br&gt;&lt;br&gt;If you're interested in changing and extending ProGuard, you can start by&lt;br&gt;compiling the source code yourself:&lt;br&gt;&lt;br&gt; mkdir classes&lt;br&gt; javac -...

    C#入门经典中文版(第三版).part08

    c#入门经典中文第三版,针对vs2005,...&lt;br&gt;/***************************************/&lt;br&gt;第1部分&lt;br&gt;http://download.csdn.net/source/427034&lt;br&gt;第2部分&lt;br&gt;http://download.csdn.net/source/427056&lt;br&gt;第3部分&lt;br&gt;...

    subclipse 1.4.1

    Subclipse 1.4.x requires Subversion 1.5.0 version of JavaHL/SVNKit &lt;br&gt;&lt;br&gt;Links for 1.4.x Release:&lt;br&gt;Changelog: http://subclipse.tigris.org/subclipse_1.4.x/changes.html&lt;br&gt;Eclipse update site URL: ...

    C#入门经典中文版(第三版).part07

    c#入门经典中文第三版,针对vs2005,...&lt;br&gt;/***************************************/&lt;br&gt;第1部分&lt;br&gt;http://download.csdn.net/source/427034&lt;br&gt;第2部分&lt;br&gt;http://download.csdn.net/source/427056&lt;br&gt;第3部分&lt;br&gt;...

    FTP,LINUX,Windows,网络经典命令

    7. `mv &lt;source&gt; &lt;destination&gt;`:移动或重命名文件或目录。 8. `rm &lt;file&gt;`:删除文件,`rm -r &lt;directory&gt;`删除目录。 9. `chmod &lt;permissions&gt; &lt;file&gt;`:更改文件或目录的权限。 10. `sudo &lt;command&gt;`:以超级...

    Source Insight Extend Macro for emulation Ultraedit F3 Search Key behavior.

    &lt;br&gt;&lt;br&gt;* 1.Copy it onto the SourceInsight path.&lt;br&gt;&lt;br&gt;* 2.Please select "Project/Open Project", open "Base" project.&lt;br&gt;&lt;br&gt;* 3.Added the ultraedit.em onto Base project.&lt;br&gt;&lt;br&gt;* 4.Restart Source...

    代码复杂度检查工具Source Monitor

    Source Monitor通过计算循环、条件语句和嵌套结构来确定每个函数的圈复杂度,帮助开发者识别可能过于复杂的代码段,以期进行重构优化。 **二、代码深度注释率** 良好的注释是代码可读性和可维护性的保证。Source ...

    VCLSkin.v4.94.Full.Source

    &lt;br&gt;&lt;br&gt;主要特点:&lt;br&gt;&lt;br&gt; * 支持SDI,MDI窗口,Dialog,MessageBox对话窗口。嵌入式,Dockable窗口。&lt;br&gt; * 支持Delphi标准控件,并支持大量第三方控件。&lt;br&gt; * 完美支持DevExpress QuantumnGrid5.&lt;br&gt; * 完美...

Global site tag (gtag.js) - Google Analytics