心法之一:“理解烂代码”与“写新代码”是一样重要的工作,嫌烂代码臭,就不去闻它,闭着眼睛捏着鼻子写新代码,似乎看起来效率高,其实是没头的苍蝇在乱撞,反而浪费时间。
心法之二(当没有时间重写烂代码时):烂代码虽然烂,但毕竟还能work,当进度压力大时,就没有推倒重写的时间。相比之下重构既不会影响烂代码的功能,也会让代码质量向好的方向转变。
手法之一:草稿式重构,即找一个新目录,把烂代码check out出来,然后不写单元测试,尽情地在烂代码里按照自己的思路将烂代码打扫一番:提取方法、移动变量、重命名等等,最后极大地深化对烂代码的认识,但是不会把草稿式重构的代码check
in。但是需要留意草稿式重构可能会误解烂代码的行为。
手法之二:剔除腐肉,即如果你断定烂代码里有一些代码肯定没有被调用,一些注释是过时的和错误的,那么就果断地删除之,不要舍不得,因为这些东西是绊脚石,即便删错了,也有SVN能够找回来。
手法之三:打印并标注,即把一段烂代码打印出来,然后将相同职责的代码用彩色笔标注出来、把代码块首尾结构标注出来、把要提取方法的代码圈起来并标注耦合数、把要改动的地方和由此改动引发的一连串变动的方法和变量都标记出来以理解修改产生的影响。
手法之四:随手在纸上画一些不是像UML图那样严格的草图来帮助理解烂代码。