【重构】重构步骤与重构案例

 合格的重构:

  重构之十六字心法: https://insights.thoughtworks.cn/principles-of-refactoring/
  • 消除味道:一个重构应该是从识别一个坏味道(Bad Smell)开始,以消除一个坏味道结束,任何不以消除坏味道为目标的重构都是耍流氓。
  • 始终工作:即重构定义中的“在不改变软件可观察行为的前提下”,说白了就是重构过程不能破坏甚至改变软件外在功能。
  • 持续集成:不需要为重构单建分支,重构过程可以做到Feature开发在同一分支上持续集成持续交付。
  • 随时中止:例如一个方法重命名,需要修改100个调用点,当改到50个的时候有个紧急的Feature,我可以随时暂停重构,立即切换到Feature开发上,且不需要回滚已做的重构。
  • 断点续传:还是上边的例子,假如我已经完成了紧急Feature的开发,可以随时继续之前的重构,完成剩下50个调用点的重命名。
  • 过程可逆:对于重构,经常有人会问:你怎么保证重构就会更好而不是更坏呢?重构的伟大就在于他跳出了对错之争,将关注点放到如何快速平滑安全的变化上,当然也包括反向重构。所以我的回答是:无法保证,但是我可以一分钟就重构回来。如果仔细看,《重构》书里的所有重构手法都是双向的,比如“Extract Method”和“Inline Method”。

重构手法:

  基于IDEA的重构实战视频:https://www.bilibili.com/video/BV1dB4y1i7ZJ/?spm_id_from=333.337.search-card.all.click   基于《重构》书籍

  重构还是重写?聊聊 Java 代码臭味与重构技巧:https://www.bilibili.com/video/BV1hK4y1v7rU?from=search&seid=8446977210386113029


 TDD实质分为3个步骤:  红绿灯

  红色: 编写失败的测试方案;    绿色:添加代码满足要求;  重构:提高代码质量


代码坏味道大类、样例及解决思路:

来自《重构与模式》

     

      

 


案例 

去除多余的if else:工厂类、枚举、命令模式、规则引擎、策略模式:https://pdai.tech/md/develop/refactor/dev-refactor-if-else.html

Code Smell 重构你的日常代码-圈复杂度高多层嵌套     https://developer.aliyun.com/article/1074328?spm=a2c6h.12873581.technical-group.dArticle1074328.43957e04NUDzG3

代码圈复杂度治理小结    https://developer.aliyun.com/article/996748?spm=a2c6h.12873581.technical-group.dArticle996748.43957e04NUDzG3

是什么让一段20行代码的性能提升了10倍     https://developer.aliyun.com/article/1009355?spm=a2c6h.12873581.technical-group.dArticle1009355.43957e04NUDzG3

理论与实践:如何写好一个方法     https://developer.aliyun.com/article/1024543?spm=a2c6h.12873581.technical-group.dArticle1024543.43957e04NUDzG3

posted @ 2020-12-24 23:21  飞翔在天  阅读(132)  评论(0编辑  收藏  举报