没有工具的C++手工重构

最近在对一些公司以前遗留的BCB代码进行重构。

关于C++的重构工具现在到是有两个:SlickEdit与Ref++不过都可以支持VC,不支持BCB。

SlickEdit倒是支持的编译器很多,只是对BCB例外,唉。

看来BCB的地位在C++界也真是尴尬啊,不过也没有办法,谁叫它的底层是VCL,而且不得不使用了一些扩展的C++语法。

其实按道理如果我的python,或者vi、emacs之类的能力强一些,可能自己做一个小型重构的程序,只是现在临时抱佛脚也来不及了。没有办法,只有手工重构了。

不过也好,这样能自己控制好每一步,虽然有一点烦琐。唉,有点怀念JAVA。

有几点经验,也就献曝与大家了:

小步:一定要小步,太大的步骤,以我的智商是不能胜任的了,在将一个760行的long method分解成小函数的过程中,因为有太多的临时变量要传递,我只好用method object来做,结果发现,要与原对象要共享太多的信息,而这些信息只被这个method object与同一个类中另一个long method用到,应该只可以抽象出一个新的类来。结果我就直接去就这两个函数的逻辑进行类的抽象重构工作。结果这一步实在是太大了,让我只是决定要抽象出来的新类的数据成员都千头万绪,不知从何下手。最终放弃,重来,从将一些要传递的临时变量替换成数据成员开始,分解成小函数,再创建新类,移动数据成员与函数开始,总算能够达到目标。

const:用const能验证你的很多想法,让编译器去告诉你是对的还是错的。

编译器:多用编译器,让它来告诉你很多事情,比你在没有什么提示与只凭想象的去重构要好一些。

正则表达式:用正则表达式来搜索,能节约很多的时间。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值