扫码阅读
手机扫码阅读

对重构的重新认识

282 2023-08-30

提起重构不得不让我立刻联想到这本书《重构:改善既有代码的设计》。


何谓重构?重构就是在不改变软件客观行为的前提下,提高其可理解性,降低其修改成本。在软件开发过程中,软件设计会逐渐的腐败变质。

正如物理中的熵一样,当熵值升高则会趋于不可控的状态。打一个比方就像家里长期不做保洁,灰尘和垃圾就会堆积,房屋就越来越乱不适合人的居住。那么重构也是这样,当人们为了短期的利益快速上线了一个功能,然而代码却没有经过很充分的设计和考虑,程序员对于这类代码的理解会越来越困难。

软件中的bug通常是比较隐蔽难以发现的,通过重构对于原有的设计意图重新的考虑,就会更容易发现未曾考虑的处理情况,从而发现难以察觉的bug提升软件的鲁棒性。

重构还可以帮助提升开发速度,没有良好的设计可能会在短暂的一段时间内提升开发速度,但糟糕的设计往往让开发速度慢下来。糟糕的设计会导致代码难以测试,从而引入更多的bug。再此后需要加入新特性时,会投入更多的代码量,导致整个项目延期的风险大大提升。

俗话说种一棵树最好的时间是十年前其次就是现在。那么重构也正是如此,重构不需要程序员抽出特定的时间进行重构,而是无时无刻的进行重构这个动作,对于代码质量而言牺牲的重构时间是值得的也是必须要投入的成本。

但重构不是万能的银弹,不能奢望依靠重构解决软件开发中的所有问题。当原有的代码都无法通过测试用例时,应该考虑重写而不是重构。

编程解决的问题很大程度上是对于现实世界问题的抽象,同理既然重构对于改善既有代码的设计有帮助,那么对于现实世界的问题也同样有很多的启发。

一个健硕的身材,是一个人长期自律健身的结果;得体而又有美感的着装,是一个人长期的审美陶冶的产物。为了维护一个良好的系统状态,系统必须有自我更新和迭代的能力。一个健硕的身材背后要拥有控制饮食和保持运动健身的系统能力并不断精进。

以上是我对重构新的认识,但在重构的道路上还有许多需要学习和重构的地方。

原文链接: http://mp.weixin.qq.com/s?__biz=MzI5Njc4MDQyMQ==&mid=2247483914&idx=2&sn=15d6c1c12320e152f24a2ca8ad7a1ee4&chksm=ecbe55e0dbc9dcf612585092e72c833863f863071ed964eef7304664f50b2765fefbf64b43bd#rd