当你修改别人代码觉得很痛苦时,觉得晦涩难懂是,觉得设计混乱时,当你发现自己写的代码自己都理不清思路时,这个时候你就应该毫不犹豫地对待吗进行重构了!
不过很多项目经理,都是进度驱动,还没有达到质量驱动的高度。所以,当我们面对进度的催促时,我们还有时间重构吗?肯定会有一些程序员认为重构这个时候是栏肺时间,其实不然,重构是保证进度的最快的方式,所以你就大胆地去做吧!
首先我们先弄清楚复用和重复的区别。刚工作的时候,如果遇到一个和自己以前做过的项目很相似的任务时,就会把这个工程copy了一份,在此基础上修改。这个就叫做重复。再举个例子,若两个函数(方法)用到同一段代码,如果你将一段代码拷贝到另一个函数(方法)中,这也叫重复。后果:若需要修改,则两个函数(方法)都要修改,以后你可能记不清多少地方需要修改,植入潜在的bug。不过,如果你将这段代码重新生成一个方法,这个就叫复用,我们提倡复用。
其次大胆去掉临时变量。由于临时变量可能形成问题,因为他们只在自己所属的函数(方法)中有效,这样会使函数变得冗长,会影响理解,也会影响性能。我们提倡短函数(方法),争取一个函数(方法)表达一种意思。
关于变量的名称。重构中也包括该步骤,不要认为更改变了名称不值得。一段可读的代码应该表达清楚自己的功能,变量就是其中的关键。
最后引用Martin Fowler的几句建议。1、重构之前,首先检查自己是否已一套可靠的测试机制;2、惟有写出人类容易理解的代码,才是优秀的程序员;3、重构技术是以微小的步伐修改程序。(连载待续)
分享到:
相关推荐
东吴证券-中国电建(601669)全球清洁能源建设龙头,投建营一体化转型重构价值-230519.pdf
重构行业价值链,投行转型亟需六大能力.pdf
“连接”重构生态价值.docx“连接”重构生态价值.docx
计算机:物联网的心脏——物联网操作系统,重构产业链价值.pdf
首次专门讨论数据库重构,向数据专业人员展示了如何运用重构...重构的价值是毋庸置疑的,这已在许多项目中证明了。重构能帮助软件专业人士改进系统设计及其可维护性、可扩展性和性能。 注: 此文件大小为45.7 MB
传媒行业:社区团购系列报告之一,仓储物流篇-社区团购,重构商品履约价值链.pdf
巨量引擎-价值重构:2020十大新消费人群-2021.1-62页.pdf
重构网络价值构建数字经济基础设施.pdf
重构银行估值体系:财富管理,价值重估(2021)(103页).pdf
4.1 自我测试码的价值 4.2 JUnit测试框架 4.3 添加更多测试 第5章 重构名录 5.1 重构的记录格式 5.2 寻找引用点 5.3 这些重构准则有多成熟 第6章 重新组织你的函数 6.1 Extract Method(提炼函数) 6.2 Inline ...
本书凝聚了软件开发社区专家多年摸索而获得的宝贵经验,拥有不因时光流逝而磨灭的价值。今天,无论是重构本身,业界对重构的理解,还是开发工具对重构的支持力度,都与本书出版时不可同日而语,但书中所蕴涵的意味和...
本书凝聚了软件开发社区专家多年摸索而获得的宝贵经验,拥有不因时光流逝而磨灭的价值。今天,无论是重构本身,业界对重构的理解,还是开发工具对重构的支持力度,都与本书最初出版时不可同日而语,但书中所蕴涵的...
自动驾驶如何重构汽车产业价值链.pdf
20210817-中信证券-小鹏汽车-XPEV.US-投资价值分析报告:小鹏的破局,押注自动驾驶,重构商业模式.pdf
重构,一言以蔽之,就是在不改变外部行为的前提下,有条不紊地改善代码。多年前,正是本书原版的出版,使重构终于从编程高手们的小圈子走出,成为众多普通程序员日常开发工作中不可或缺的一部分。本书也因此成为与...
银行业重构银行估值体系:财富管理,价值重估.pdf
4.1 自测试代码的价值89 4.2 JUnit测试框架91 4.3 添加更多测试97 第5章 重构列表103 5.1 重构的记录格式103 5.2 寻找引用点105 5.3 这些重构手法有多成熟106 第6章 重新组织函数109 6.1 ExtractMethod(提炼函数...
美兰空港-0357.HK-投资价值分析报告:双重共振,价值重构
本书凝聚了软件开发社区专家多年摸索而获得的宝贵经验,拥有不因时光流逝而磨灭的价值。今天,无论是重构本身,业界对重构的理解,还是开发工具对重构的支持力度,都与本书最初出版时不可同日而语,但书中所蕴涵的...
4.1 自测试代码的价值 89 4.2 JUnit测试框架 91 4.3 添加更多测试 97 第5章 重构列表 103 5.1 重构的记录格式 103 5.2 寻找引用点 105 5.3 这些重构手法有多成熟 106 第6章 重新组织函数 109 6.1 ...