破坏生产很容易!
软件开发中有一句老话,我在我的职业生涯中听到过很多次……
如果它没坏,就别修它。
你可以通过优化旧代码让自己陷入麻烦。
但是,当你可以的时候,也应该清理旧代码!
你如何决定——保持不变还是修复它呢?
我的代码很好用
现在Reddit上有一个有趣的GIF在传播……
它强调了我们经常知道我们的代码不适合这个领域!
随着时间的推移,我们可以非常确定代码将被误用或以奇怪的方式扩展。
即使在编写代码时,它可能看起来不是最好的解决方案。
怎么办呢?
权衡取舍
无论是你刚写的代码还是需要重构的旧代码——你如何决定该怎么做?
- 一方面,代码工作得很好!敏捷软件开发认为够好就行了。你应该把时间花在更有价值的活动上。
- 另一方面,把混乱、令人困惑或设计不良的代码留给其他人并不好!此外,当基础代码设计良好时,未来的更改和扩展会更容易。
在许多情况下,这可能是一个真正的困境。
软件开发都是关于权衡的。你将不断做出判断。是否进行重构就是其中之一。
不是看起来那么容易
你会发现,基础代码之所以复杂,是有原因的。
一开始,看起来好像有更好的方法。但是,当你深入重构时,你会发现有些边缘情况你没有考虑到。这个核心代码被使用的方式比你预想的要多。
通常,对一个基础代码的简单清理会引发一系列问题。需要花费数天或数周的时间跟进所有相关的部分。
当你试图修复基础代码时,你必须理解其范围。这个变化会有多大?它会影响系统的多少部分?你可以合理地期望重构需要多长时间?
我认为你应该总是假设它需要的时间是你想象中的两倍。
然后,你必须问自己:“值得吗?”
需要考虑的问题
在进行大规模重构之前,有些事情需要考虑:
- 这个代码是应用程序的基础,因此可以使整个系统更易于维护吗?
- 重构会经常帮助未来的开发人员,还是这段代码很少被接触?
- 如果重构所需时间是预期的两倍,是否仍然值得?
- 是否有更小的努力可以先行尝试,以获得完整重构的部分效益,作为测试改变的难度的一种方式?
- 如果我花时间进行重构,那么将会有其他功能、改进和缺陷修复的机会成本。这个重构是否足够重要,值得这样做?
总的来说,我认为重构是一件好事!我喜欢让现有代码变得更好。我喜欢其他开发人员做这个工作,然后我可以享受到好处。
但是,我曾经在一些团队中,一次意外的重构工作耗费了我们开发人员的时间、精力和注意力,却没有带来太多的好处。
所以,请三思而后行,以清晰的思维进入你的重构工作。你的团队会感激你。
每日列表
我帮助软件开发人员建立有意义的、有目的的职业生涯。
与其他人不同——他们推荐追逐高薪、在精英公司(FAANG)工作或刻苦准备面试——我指导开发人员实现充实、平衡的软件职业生涯。
我的目标是帮助你开发可以让世界变得更好的软件。
2,000名软件开发人员会收到我的每日文章,直接发送到他们的订阅消息中。
如果你喜欢我的文章,点赞,关注,转发!
标签:重构,职业生涯,软件开发,开发人员,代码,工作,别碰,软件 From: https://blog.51cto.com/u_12409319/6252748