《代码大全》读书笔记——重构

重构

         首先说一下重构的概念,重构是一个过程,是在不改变代码外在行为的前提下,对代码进行修改,以改进程序的内部结构,达到提高软件的质量和性能,使程序的设计和架构更加合理,提高软件的可扩展和可维护性。

         看书的时候先想到的是何时进行重构,主要还是在软件的扩展和维护的时候居多。在软件开发的时候,有时候写着写着,在实现一个功能或者某个算法的时候,发现有很多重复代码、当前算法有效率问题需要修改,这时候的修改也算是重构吧?

         关于如何重构,其中有一点觉得很赞同:同一时间只做一件事,将后面想做的一件件记下来。因为在重构的时候经常会遇到那样的问题,开始的时候只是想改A,结果写着写着,发现A调用的B改一下会更好,但B改了又看到了C,就这样越扯越宽,改不完了,代码也编译不过了,只能全部Revert了,一看时间,可能改了好几个小时,白做了,痛苦啊!其实回头想想,这也说明一点,在下手去改既有代码的时候,应该先仔细权衡一下做这次重构要修改的量和付出的代价,及注意事项,如何才算是改好了,把改后的测试考虑进去,这个以前还真没好好想过,以后要注意喽~~

         接着上面的,另外在重构的时候要时刻记得删掉不要的废弃的代码,在我的代码中发现最常见的是经常会改完以后,无用的SQL语句依然坚挺健在,结果单元的ConstSQL常量越来越多。

         关于“超前设计”那点,个人觉得在设计的时候为了便于扩展很多时候会考虑很多东西,留出扩展的空间来,特别的最底层的数据结构、代码框架,因为这层如果没有设计好,后面添加功能什么的,可能就会非常费力了;但如果在把那些现在需求中还没有提到的功能都一股脑儿写出来,变成了可执行的代码确实没有必要,无谓的增加的软件的复杂度,测试量,别人也不容易理解。

         有一点很有意思,不要把重构代替重写。在我们维护软件中,往往看到某些代码很难读懂,或者读懂了但修改的量会很大。记得在排版中有这么两处,一个是单元格的合并中,搞了半天看明白了,结果却陷入了他的逻辑中去重构了,最后还好问了一下杨灿才猛然跳出来,重写了那个功能。还有一个就是在上周五中的排版中的生成子目编码功能,那个有经验了,看了眼已有代码,发现实现很繁琐,但其实功能很简单,直接选择了重写。真的,如果发现已有代码很繁琐,本来就逻辑不清晰,而且牵扯大量无谓的东西,应该要考虑重写了。

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值