也说“重构”
作者:网络转载 发布时间:[ 2013/12/13 11:29:59 ] 推荐标签:
“重构”,太火爆的字眼儿了!
“重构”是什么意思?答:Refactor。可答案却远远不只是这几个字母这样简单。
有人和我说,“重构”是在eclipse里右键点击抽象方法,改变量名这些个操作。那对不起了,我并不是在批判谁,但这只是诸多开发工具提供的重构工具而已,它还远远不是“重构”。
“重构”本身,是一种方法,一种思想。
它是一种改善既有代码的方法,提高原有代码的易读性,可重用性,节省后期代码的维护成本,在提升代码本身质量的同时,在一定程度上提升程序的效率。比方说,改掉代码中糟糕的匈牙利命名法;比方说,将反复出现的代码抽象成方法;再比方说,消灭掉代码中的循环交互……
当然,这些东西我们可以借由重构工具,右键点击的方式实现以上操作。可换言之,没有重构工具,这些事不是我们想做,也应该做的么?
另外,“重构”之所以是一种方法,因为它本身是一种思想。一种改善的思想。
重构与设计是互补的,程序应该是先设计,而在开始编码后,设计上的不足可以用重构来弥补.但一颗“重构”的心,可以帮助我们规避掉诸多在设计中出现的不足。换言之,它的存在不完全是为了改善既有代码的质量,完美的状态应该是在软件的设计阶段将这种思想应用其中,而不是先做出一番糟糕的设计,写出一堆糟糕的代码,再去重构。
在编程伊始,我们应该考虑“重构”的问题,将代码本身的复用性、易读性,以及后期的维护成本考虑其中。进而也会大幅的缩短开发周期,也节省了后期维护的时间。这也是好的设计与糟糕设计之间的差别所在。
还有人和我说,“SOA”、“云计算”、“敏捷”、“重构”等等都不过是空谈,不过是一群专家教授拿出来炒得李郊外嫩的概念,虚无缥缈的技术理念而已。对,仅此而已,我们不需要这样的概念!但也不仅此而已。
我的确承认包括重构在内的这些概念,都有人在不停的提出新理念,而且是单纯的提出理念,毫无实际应用的价值,往往忽略了这些概念存在的意义是什么!
矫枉过正,将某些东西追求到一定程度上,往往会适得其反。有位“大神”和我说,所有的方法长度不应该超过五行代码,我的回答是,你可以去死了!
一切状态只要适合好,不对么?
我们需要的重构的思想,而不是它的概念。拥有一颗“重构”的心,然后去寻找一种思想和应用之间平衡的佳状态。至于,砖家的概念——Up yours!
综上所述,为什么要有重构?
有些代码难以阅读的程序,难以修改;
在添加新行为时需要修改现有的代码,难以修改;
程序中带复杂条件逻辑的程序,难以修改;
诸多逻辑重复的程序,难以修改。
“重构的”状态大概会是个什么样子,或者说它的目标是什么?
使代码容易阅读;
逻辑只出现在指定的、合适的地点;
低冗和度,新的改动不会危及现有的行为;
尽可能简单的表达条件逻辑。
(或者你也可以说,我所说的也是空谈!我同样要说声谢谢!因为我觉得我写的也是空谈,因为我也在摸索,也在尝试,也同样拿不出一个合理有力的“重构”状态来证明我以上的言论。但归根结底,一切适合好,“重构”是其中之一!)
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11