Day 28 重构也是需要时间的不是吗?

重构也是需要时间的不是吗?

Imgur

的确,重构也是需要额外时间的,但这应该是我们专业的一部份。一个好的重构时间点就是无时无刻,也就是说一边写程序码的时候也要一边重构它。基於这个理由,所以重构不应该是一个特定的 Item, 它应该是我们写程序的一部份。

事不过三原则

无时无刻也许不容易做到,这边介绍另一个重构的原则叫做事不过三原则。

它的意思是说当我们一开始写程序的时候,我们就按照我们的想法把它写出来,也不需要去重构它。当第二次写到类似的东西时,我们就用最简单的方式把它完成。也许是复制贴上,或是简单的加个 if else。 但当第三次我们又碰到他的时候,这个时间点我们就要开始思考如何重构它了,这就叫做事不过三。

第一次我不确定是否以後会用到它,所以我就先不重构它,第二次我睁一只眼闭一只眼就让它这样吧。但第三次我就无法不理它了,因为已经第三次了,後面还会有第四次第五次,所以现在是重构的好时机,不会太早也不会太晚。

Baby Steps 原则

重构的时候我们还要记得一个原则叫做 Baby Steps,它的原理就是我们在重构的时候要尽量像婴儿学走路一样,一小步一小步的前进。不要一次跨太大步。确保在每一个小改动都能够通过测试。

这里我们又提到了测试,但不代表你没有测试或不会写测试就不能重构,你原本程序写完後怎麽做就怎麽做,也就是如果你都手动测试那你重构完也就手动测试来确保程序是正确的。当然有自动化测试会省下你更多的时间,也让你更敢去重构,因为你会知道你没有改坏任何东西。


<<:  什麽是 Cloud 2.0 ?

>>:  【Day28】建立一个 LUIS Bot

[Day 29] PHP array_map

假设目前有阵列 $fruits = [ ['id'=>0,'fruit'=>'apple...

第29天-CSS-影像-(3-3)

背景位置 background-position 可以使用这个属性将背景图片指定到想要的位置 有以下...

更新android专案API版本

接下来要来讲些Android 的部分,因为种种因素所以必须处理一些android专案,但因为我没有正...

第六天:在 Windows 上安装 Gradle

在 Windows(在这系列里指的是 Windows 10 以上的版本)上除非您使用 WSL 环境,...

[Day 11 - JS] 互动吧网页 — Javascipt的DOM 操作 / 事件

在前一篇,我们介绍完 Javascript 的语法和基本功能,包括宣告变数、条件陈述式、函式、物件阵...