时间:2021-05-25
前言
之前也介绍过我们团队的前端项目从零开始经历8个月迭代业务代码10万行(仅为产品长期规划需求的20%),至今仍然在不断迭代的过程。
团队成员除了设计好的架构来管理这种复杂度极高的前端应用,还开始补充设计模式以及重构方面的知识,目的是为了让项目代码在不断迭代的过程中优化项目代码,保持代码的新鲜度,鲁棒性,可维护性… 让后续加入的团队新人也可以快速加入我们的产品开发中
PS: 不管对于何种语言,重构都是软件开发过程中不可或缺的一部分。如果已经了解重构的基础,可以直接跳往至文章后面的重构案例部分。
重构背景
“如果尿布臭了,就换掉它”。
什么是重构
我们回过头来看一下"什么是重构"
摘自《重构 - 改善既有代码的设计》(下面简称《重构》)
何时重构?
我们需要明确的一点是: 重构不是一件应该特地拨出一段时间来做的事情。重构不是目的,但是重构可以帮助你把事情做好。
事不过三,三则重构
重构的衡量指标
抓重点 抓重点啦
说了这么多废话,其实大家都明白没有与实践结合的理论都是空虚的。
但是 重构和 设计模式一样,也是需要一个"学习——领悟——突破"的过程。第一步的学习让你了解基本的重构手法,第二步的实践勾起你对重构手法的回忆以及重温应用,第三步的应用以及实践经验激发你的思考,领悟以及总结,以致于灵活运用。
但凡是人,总是在不断学习,不断温习,以达到具体场景具体应用,灵活自如。
重构是一个很大的话题,《重构》作者本人也是经历了N多的项目,以及多年的经验才总结出来的重构技巧。
重构技巧
《重构》一书作者总结的重构手法实在是太多了,只能通过图片来展示一下所有作者总结的重构列表。
具体的补充,大家可以看看《重构》一书。
重构的实践
作者推荐的一种做法:
作为开发者, 应当把重构作为开发的一部分,一边开发一边重构。在快速堆叠代码,实现基本需求功能的基础上,写好测试用例,保证功能不变,逐步重构。
这也是我们团队要求每个人都掌握重构这门必备技能的原因。优秀的程序员应当尽量避免低质量的代码。
重构案例
故事场景
有三种类型的电影,顾客可以进行租赁
租赁规则
价格计算规则:
普通片儿 —— 起步价2¥,超过2天的部分每天每部电影收费1.3元
新片儿 —— 每天每部3元
儿童片 —— 起步价2¥,超过3天的部分每天每部电影收费0.8元
积分计算规则:
每借一部电影积分加1,新片每部加2
原始代码
CODEPEN
程序结果:(请保证重构后结果不变~)
类图
有兴趣的可以先看看原始代码,考虑一下其中的原始对象关系,再行考虑如何重构代码。原始代码其实是有很多问题可以挖掘的,下面是我们的讨论整理:
部分重构
这里为了更好的展示重构的手法,使用TS,根据上面的讨论进行了部分重构,重构的方式其实是根据业务未来的扩展方向而定,并没有最优解,有兴趣的可以加入我们,抛出你的见解~
CODEPEN 执行结果:
重构后的类图关系
基本技巧
推荐书籍
《代码整洁之道》
《重构 - 改善既有代码的设计》
《修改代码的艺术》
《代码大全》
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
在软件工程学里,重构代码一词通常是指在不改变代码的外部行为情况下而修改源代码。软件重构需要借助工具完成,而重构工具能够修改代码同时修改所有引用该代码的地方。本文
本文分析讲述了PHP代码维护,重构变困难的4种原因。分享给大家供大家参考,具体如下:代码维护,重构是件很令人不爽的一件事。以下几种情况,会让代码维护和重构变得很
Java代码的重构模式主要有三种:重命名方法重构模式、引入解释性变量重构模式、以查询取代临时变量重构模式重命名方法重构模式建议执行如下的步骤来完成:1.建立一个
Python最大的优点之一就是语法简洁,好的代码就像伪代码一样,干净、整洁、一目了然。要写出Pythonic(优雅的、地道的、整洁的)代码,需要多看多学大牛们写
Python最大的优点之一就是语法简洁,好的代码就像伪代码一样,干净、整洁、一目了然。要写出Pythonic(优雅的、地道的、整洁的)代码,需要多看多学大牛们写