每次面试时我都会问一个问题: 你们平时都做代码重构吗?都是怎么做代码重构的?很遗憾,有相当一部分人从来没有进行过代码重构,也有一部分人对重构的了解也仅仅是停留在: 对之前写的不好的代码做些优化,加些注释。重构到底是啥,真的有那么大的作用吗?我们又该怎么做重构呢?本文让我来给各位掰扯掰扯。
我们首先要明白一个事实:作为一个程序员,你看代码的时间远远大于你修改代码的时间!你肯定有过为了新增一个已有功能或则修复一个现网bug,而不得不去阅读大量已有代码的经历。在看这些祖传代码的时候,你常常会完全不知道之前作者为什么要这么写,你会试着去猜测作者的原有意图,但往往你猜到了开头,却猜不到这结尾[奸笑]。接着我们的暴脾气就上来了,然后就开始口吐芬芳,心里默念诅咒。我们还能不能愉快的阅读代码了?Martin Flower在《重构》中有一句经典的话:"任何一个傻瓜都能写出计算机可以理解的程序,只有写出人类容易理解的程序才是优秀的程序员。套用经典《电影肖生克救赎》中的一句话,程序员的救赎之道就在《重构》这本书中。
何为软件重构?实际上软件重构分为架构重构和代码重构两个纬度。架构重构往往是一个大的有计划的重构,例如要把之前的jsp服务器重构为前后端分离的架构,要把厚重的单体应用重构为微服务架构,要把传统IT架构重构为云原生架构等等,此类重构的改动会非常大,甚至会等价于重写。本文要介绍的属第二个纬度的重构:代码重构。
先看代码重构定义: 在不修改外在功能的基础上,进行代码内部结构调整,以提高代码可读性和降低修改成本。 从定义我们可以得到一个重要信息,一个是代码重构不会给我带来新功能,也不会给我们修改代码bug。代码重构的唯一目的就是让代码读起来更简单,修改起来也更方便。你可以把代码重构理解为收拾衣柜。收拾的目的就是让我们的衣物分门别类的叠好放整齐。外套和外套放一起,内衣和内衣放一起,袜子和袜子也放在固定的位置。这样就有了两个好处,首先是我们下次找袜子时(阅读已有代码)就会很方便了,不会出现袜子只找到一只,另外一只怎么都找不到的情况。还有个好处就是我们下次买新衣服(开发新功能)的时候,很快就能找到一个合适的地方来安置了。另外,在我们收拾完衣服的时候,你尝尝会发现有些衣服你已经完全不需要了(项目中的无效代码),或者某些内裤已经破了个大洞(软件bug)这些都是整理衣柜(代码重构)带来的好处。
上面说了这么多,只是让大家了解到了什么时代码重构。代码重构有一套完整的方法论和最佳实践,也是很多IT大厂在不断推广实践的一种软件开发方式。更多的关于我们该什么时候进行代码重构?我们又该怎么进行代码重构?我们后面文章再讲。
本人具有多年软件开发经验,擅长IT系统,云服务的设计和开发以及devops开发模式实践,有关软件开发的问题欢迎大家和我交流[奸笑]
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved