美文网首页Unity探路营
重构是什么、为什么要重构

重构是什么、为什么要重构

作者: 洪智 | 来源:发表于2020-11-16 10:01 被阅读0次

洪流学堂,让你快人几步。
本篇内容来自洪流读书会精选内容。

昨天我们解读了重构这个词怎么来的?今天我们来聊聊重构是什么、为什么要重构?

重构是什么、为什么要重构

我们先来举个例子。

现在,设想有一个戏剧演出团,演员们经常要去各种场合表演戏剧。通常客户会指定几出剧目,而剧团则根据观众人数及剧目类型来向客人收费。该团目前出演两种戏剧:悲剧和喜剧。给客户发出账单时,剧团还会根据到场观众的数量给出“观众量积分”优惠,下次客户再请剧团表演时可以使用积分获取折扣。

假设我们将剧目的数据和开出的账单都存储在JSON文件中,然后再创建一个简单的函数用于打印账单详情,这样几十行代码就可以搞定。

那么暂时满足了用户需求是否就可以宣告完成软件了?

如果接下来用户需要以HTML格式输出详单或者演员们将尝试表演的类型加上历史剧、田园剧、田园喜剧、田园史剧、历史悲剧或者田园历史悲剧等等。这将对戏剧场次的计费方式和积分的计算方式都产生影响。可以肯定的是,不管最终提出什么方案,用户一定会在短期内再次修改它。毕竟需求常常会不来则已,一来便接踵而至。

在这里我们强调一下,是需求的变化使重构变得必要。

如果你要给程序添加一个特性,但发现代码因缺乏良好的结构而不易于进行更改,那就先重构那个程序,使其比较容易添加该特性,然后再进行添加。

一般来说,重构早期的主要动力是尝试理解代码如何工作。通常你需要先通读代码,找到自己的一些感觉,然后再通过重构将这些感觉从脑海中搬回到代码里。清晰的代码更容易理解,使你能够发现更深层次的设计问题,从而形成积极正向的反馈环。

既然我们谈论的是通过重构改善代码,那么什么样的代码才算好代码?
对此,程序员们有很多争论:
有人说傻瓜都能写出计算机可以理解的代码。唯有能写出人类容易理解的代码,才是优秀的程序员。

如果我们说代码关乎美学,其实代码是各花入各眼,没有好坏高低之分,那除了诉诸个人品味就没有任何客观事实的依据了吗?

于我而言,这并不关乎个人品味,而是有客观标准的,因为你的代码是要面向阅读者、使用者的。好代码就应该直截了当,好代码的检验标准就是人们是否能轻而易举的修改它。

我们都需要一个健康的身体,健康是创造一切生产力的基础,代码亦是如此。

一个健康的代码库能够最大限度的提升我们的生产力,支持我们以更快的速度、更低的成本为用户添加新特性、新功能。那么为了维系一个健康的代码库,就需要时刻留意现状与理想之间的差距,然后通过不断的重构不断接近这个理想,这就如同维持健美的身材需要不断的重塑自身的肌肉线条一样。

我们都知道在动感单车中坚持不掉队的关键在于跟随节奏,踩的每一下都压在节拍上。
那么在重构中,最重要的是什么?是节奏感!开展高效有序的重构,我关键的心得是:小步稳走反而能更快前进。

保持代码永远处于可工作状态的同时,以小步修改累积起来,也能大大改善系统的设计。当然每一小步的前进都需要遵循营地法则:保证你离开时的代码库一定比来时更健康,就像保证你的每一脚都踩在单车的脚蹬上。

小结

今天我们已经了解了重构就是在不改变代码外在行为的前提下,对代码做出修改,以改进程序的内部结构的一个过程。下次我将向大家介绍重构的原则。


我是大智,你的技术探路者,下次见!

别走!点赞收藏哦!

好,你可以走了。

相关文章

  • 重构代码之美

    什么是重构; 为什么要重构; 什么时候重构; 怎样避免重构的现象; 重构的难点在哪里; 如何来实施代码重构; 重构...

  • 重构三部曲(一):思想准备篇

    一、概述 重构三部曲为:思想准备,单元测试,重构 思想准备的目的是明确:为什么要重构,重构的理论支撑是什么 单元测...

  • 重构是什么、为什么要重构

    洪流学堂,让你快人几步。本篇内容来自洪流读书会精选内容。 昨天我们解读了重构这个词怎么来的?今天我们来聊聊重构是什...

  • 一次简单代码重构

    一、为什么要重构? ...

  • 代码重构?为什么要重构

    代码重构简介:(英语:Code refactoring)重构就是在不改变软件系统外部行为的前提下,改善它的内部结构...

  • 编程的方法——重构、测试等

    重构 为什么要重构? 重构代码是保持代码质量的一个极其有效的手段,它可以避免你的代码腐化到无可救药的地步。 重构可...

  • React设计思维的启发 - Android View Comp

    Android View Component 架构设计思维 重构记事 为什么要重构? 项目当前采用的DataBin...

  • 代码重构

    为什么要重构 重构改进软件的设计 设计欠佳的程序往往需要更多的代码,重构一个重要方向就是消除重复代码 软件变坏的途...

  • 《重构》 如何不通读全书的情况下充分用好它?

    如果你想知道重构是什么,请阅读第1章,其中示例会让你清楚重构的过程。 如果你想知道为什么应该重构,请阅读前两章。它...

  • 为什么要重构?何时去重构?

    核心:重构是在不改变软件可观察行为的前提下改善其内部结构。 为什么重构? 重构改进软件设计:如果没有重构,程序的设...

网友评论

    本文标题:重构是什么、为什么要重构

    本文链接:https://www.haomeiwen.com/subject/ctwvbktx.html