🐱 个人主页:不叫猫先生,公众号:前端舵手
🙋♂️ 作者简介:2022年度博客之星前端领域TOP 2,前端领域优质作者、阿里云专家博主,专注于前端各领域技术,共同学习共同进步,一起加油呀!
💫优质专栏:vue3+vite+typeScript从入门到实践
📢 资料领取:前端进阶资料可以找我免费领取
🔥 摸鱼学习交流:我们的宗旨是在「工作中摸鱼,摸鱼中进步」,期待大佬一起来摸鱼(文末有我wx或者私信)
目录
- 前言
- 技能
- 文化
- 重构
- 什么时候重构
- 本书目录
- 最后
前言
在软件开发中,我们将问题放在下图所示的某个位置,表明缺乏足够的技能、文化、工具或这些问题的组合。重构是一项复杂的工作,因此处于中间位置。进行重构有以下要素:
技能
我们需要技能来知道哪些代码是坏的,即哪些代码需要重构。有经验的程序员可以通过他们对代码异味的了解来确定这一点。但是代码异味的界限是模糊的(需要判断力和经验),或许会有不同的解释,因此不容易理解学习;对于初级开发人员来说,理解代码异味似乎更像是一种第六感, 而不是一种技能。
文化
我们需要一种鼓励花时间进行 重构的文化和工作流程。许多情况下,这种文化是通过在测试驱动开发中使用的著名红绿重构循环来实现的。然而,在我看来,测试驱动开发更困难。红绿重构也很难被在遗留代码库中进行重构所替代。
- 工具一 我们需 要一些东西来帮助确保我们所做的事情是安全的。实现这一目标的最常,见方法是自动化测试。但如前所述,学习如何进行有效的自动化测试本身就很困难。
重构
重构是指在不改变代码功能的情况下更改代码,使代码可读性和可维护性更强。此外,我们考虑的重构类型在很大程度上依赖于使用面向对象的编程语言。
许多人认为编程就是编写代码;然而,大多数程序员会花更多的时间阅读代码并尝试理解代码,而不只是编写代码。这是因为我们处于一个复杂的领域,在不了解的情况下改变某些东西可能会导致灾难性的失败。
因此,重构的第一个论点纯粹是经济性的:程序员的时间是宝贵的,因此如果我们使代码库更具可读性,就可以节省出时间来实现新功能。第二个论点是,让代码更易于维护意味着缺陷更少且更容易修复。第三个论点是,好的代码库更有意思。当阅读代码时,我们会在脑海中建立一个关于代码在做什么的模型;我们想同时记在脑中的东西越多,就越是筋疲力尽。这就是从头开始会更有趣的原因,也是调试会令人害怕的原因。
什么时候重构
如果你定期进行重构,那么重构效果最好,成本最低。因此如果可以,我建议你把重构融入日常工作。大多数文献都提出了红绿重构工作流程;但正如前面提到的,这种方法将重构与测试驱动开发联系在一起,而在本书中,我们希望将它们分开并重点关注重构这一部分。因此,我推荐一一个更通用的六步开发工作流程来解决任何编程任务。
(1) 探索。通常,一开始我们并不能完全确定需要构建什么。有时客户不知道他们希望我们构建什么;有时客户的需求表述不明;有时我们甚至不知道任务是否可以解决。因此,总是要从实验开始,快速展开实施,然后可以与客户确认他们的需求。
(2)指定。一旦你知道需要构建什么,就让这一需求更明确。 理想情况下,这会导致某种形式的自动化测试。
(3)实施(即实现代码)。
(4)测试。确保代码遵循步骤(2)中的规范。
(5)重构。在交付代码之前,确保下一个人可以轻松使用。
(6)交付。交付方式有很多种,最常见的是拉取请求或推送到特定分支。最重要的是要保证你的代码可以送达用户手中。
本书目录
《重构的时机与方法》目录如下:
最后
送给同行两句话,共勉之。
“Talk is cheap, show me the code.”
“You build it, you run it.”
购书链接直达