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

本文介绍了一款名为SourceMonitor的小工具,它能帮助开发者轻松找到需要进行重构的代码片段。通过简单的几步设置,即可获得复杂度高的文件及函数列表,为代码优化提供明确的方向。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 
http://blog.youkuaiyun.com/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.youkuaiyun.com/TrackBack.aspx?PostId=1176916

特别说明 -------- 新版本请访问网站www.bluefishes.net. 考虑到稳定性,新版本不支持Visual Studio.NET 2002. 产品名称 -------- SharpRefactor(C#代码重构工具) 产品简述 -------- 本工具用于代码重构代码自动生成。现阶段主要用于C#代码重构。 所谓重构也就是“保持软件的外在功能不变,重新调整其内部结构”。 关于每种重构模式的含义,请参见http://www.refactoring.com/ 具体功能参见具体版本的特性列表。 对重构很感兴趣或是很关注使用效率的用户,希望[使用指南]一节对你有所助益。 版本 ---- 1.0.0(BETA). 发布日期 -------- 2003/6/13 作者 ---- C# Refactor Team. 制作 ---- Blue Workshop. 环境要求 -------- Visual Studio.Net 2003 Windows 2000 + SP2 + SMTP Service 特别提示 -------------- 本插件使用了异常处理和报告机制。 一般而言,环境、代码以及其他原因都会导致程序出错。因此,在您使用本插件的过程中,可能会弹出错误报告。一部分错误不会影响使用,另一部分会影响使用。 C# Refactor Team愿意随时提供技术支持,及时为你解除问题。 版本1.0.0特性 ------------- Rename Parameter Rename Local Variable Rename Field Rename Property Rename Class Rename NameSpace Safe Delete Parameter Safe Delete Local Variable Safe Delete Field Safe Delete Property Safe Delete Method Safe Delete Class Safe Delete NameSpace Extract Interface Undo/Redo Preview usage before refactor(重构前预览) Auto build after refactor(重构后自动生成) Options(工具选项) User feedback(用户反馈) 使用指南 -------- 所有功能暂不支持静态成员。 尽量使用鼠标右键菜单。 尽量使用快捷方式,比如:单击鼠标右键,弹出菜单后再连续按‘R’键和‘C’键就可以调用[Rename]菜单下的[Rename Class]命令。 在使用Rename系列命令时,需要先到定义代码元素的地方。此时,可以先使用右键菜单中的[到定义]命令。 在Option中可以设置首选项。 由于Visual Studio在生成较大的解决方案时有时会不成功,所以Auto build after refactor通常用于较小的解决方案。 Rename NameSpace与Move Class不同。Move Class的焦点在Class,即改变类所在的NameSpace。而Rename NameSpace的焦点在NameSpace,即改变指定NameSpace的名字,并更新该NameSpace的所有引用(Usages)。 错误报告以及建议功能需要网络连接和Windows自带的SMTP服务。因为发送速度很快,所以不会占用您宝贵的时间。 可以使用User feedback功能提出您睿智的建议、批评、任何意见。 技术支持 -------- Tiger.BlueWorkshop@163.net 下载 ---- www.youkuaiyun.com 版本 发布日期 ----------------------------- 1.0.0(Beta) 2003/6/13
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值