我们在做代码重构时,最麻烦的问题是什么?各人有各人的答案。
对我来说,找到哪一段代码需要重构是最大的麻烦。产品写好了,程序怎么样?怎么判断?我的标准是,最复杂的代码就是最需要重构的代码。对于由整个团队写的代码,全面阅读是不太现实的。开会?程序员最最不喜欢开会了!那可是个技术活。:)
最近,我用了一个小工具,SourceMonitor,取得了意想不到的好效果。推荐大家使用。
SourceMonitor是一个源代码衡量工具,由http://www.campwoodsw.com/开发,免费下载。
使用方法如下:
Step 1. 创建一个项目,比如,Java项目。
<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"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"></path><lock v:ext="edit" aspectratio="t"></lock></shapetype><shape id="_x0000_i1025" style="WIDTH: 333pt; HEIGHT: 255.75pt" type="#_x0000_t75"><imagedata src="file:///C:%5CDOCUME~1%5CSUMMER~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image001.png" o:title="sm1"></imagedata></shape>
Step 2 选择目录
<shape id="_x0000_i1026" style="WIDTH: 333pt; HEIGHT: 256.5pt" type="#_x0000_t75"><imagedata src="file:///C:%5CDOCUME~1%5CSUMMER~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image003.png" o:title="sm2"><font face="Times New Roman" size="3"></font></imagedata></shape>
Step 3. 输入项目名
<shape id="_x0000_i1027" style="WIDTH: 333.75pt; HEIGHT: 254.25pt" type="#_x0000_t75"><imagedata src="file:///C:%5CDOCUME~1%5CSUMMER~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image005.png" o:title="sm3"><font size="3"></font></imagedata></shape>
Step 4 指定目录
<shape id="_x0000_i1029" style="WIDTH: 330pt; HEIGHT: 252pt" type="#_x0000_t75"><imagedata src="file:///C:%5CDOCUME~1%5CSUMMER~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image007.png" o:title="sm4"><font size="3"></font></imagedata></shape>
Step 5 指定检查点,缺省值就可。
<shape id="_x0000_i1028" style="WIDTH: 331.5pt; HEIGHT: 254.25pt" type="#_x0000_t75"><imagedata src="file:///C:%5CDOCUME~1%5CSUMMER~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image009.png" o:title="sm5"><font size="3"></font></imagedata></shape>
Step 6 完成
<shape id="_x0000_i1035" style="WIDTH: 332.25pt; HEIGHT: 252.75pt" type="#_x0000_t75"><imagedata src="file:///C:%5CDOCUME~1%5CSUMMER~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image011.png" o:title="sm6"><font face="Times New Roman" size="3"></font></imagedata></shape>
Step 7 指定本次检查点
<shape id="_x0000_i1030" style="WIDTH: 415.5pt; HEIGHT: 259.5pt" type="#_x0000_t75"><imagedata src="file:///C:%5CDOCUME~1%5CSUMMER~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image013.png" o:title="sm7"><font size="3"></font></imagedata></shape>
Step 8 检查结果
<shape id="_x0000_i1031" style="WIDTH: 414.75pt; HEIGHT: 92.25pt" type="#_x0000_t75"><imagedata src="file:///C:%5CDOCUME~1%5CSUMMER~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image015.png" o:title="sm8"><img alt="" src="https://p-blog.csdn.net/images/p_blog_csdn_net/summerfang/211141/r_sm8.PNG"></imagedata></shape>
Step 9 最复杂的文件,这应该是首选的准备重构的文件。<shape id="_x0000_i1032" style="WIDTH: 414.75pt; HEIGHT: 92.25pt" type="#_x0000_t75"><font face="Times New Roman"> </font></shape>
<shape style="WIDTH: 414.75pt; HEIGHT: 92.25pt" type="#_x0000_t75"><font face="Times New Roman"><imagedata src="file:///C:%5CDOCUME~1%5CSUMMER~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image017.png" o:title="sm9"><img alt="" src="https://p-blog.csdn.net/images/p_blog_csdn_net/summerfang/211141/r_sm9.PNG"></imagedata></font></shape>
Step 10 双击此行可以看到对此文件的评估。
<shape id="_x0000_i1033" style="WIDTH: 414.75pt; HEIGHT: 388.5pt" type="#_x0000_t75"><imagedata src="file:///C:%5CDOCUME~1%5CSUMMER~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image019.png" o:title="sm10"><font face="Times New Roman" size="3"></font></imagedata></shape>
Step 11 打开文件可以直达最复杂的函数。
<shape id="_x0000_i1034" style="WIDTH: 414.75pt; HEIGHT: 247.5pt" type="#_x0000_t75"><imagedata src="file:///C:%5CDOCUME~1%5CSUMMER~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image021.png" o:title="sm11"><font size="3"></font></imagedata></shape>
你看,现在寻找需要重构的函数简单多了!