重构随笔——重构的原则
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
重構(gòu)的基本原則之一:不改變軟件的可觀察行為。
這一基本原則闡述的是我們在做重構(gòu)的時(shí)候,維持外部的功能外觀不變,讓用戶無法感知重構(gòu)的變化。其實(shí)這很好理解,重構(gòu)與添加新功能兩者的角色仿佛總是對立的。添加新的功能與重構(gòu)所做的事情應(yīng)該恰恰相反:不應(yīng)該修改既有的代碼,只是添加功能而已。
我們總是在不知不覺中切換兩者的角色,業(yè)務(wù)需求總是要我們添加新的功能,但是我們在開發(fā)過程中會(huì)發(fā)現(xiàn),如果重構(gòu)一下代碼,可以更優(yōu)雅的添加我們的功能。所以你會(huì)發(fā)現(xiàn)兩者其實(shí)并非絕對對立:重構(gòu)為了更好的增新,增新則會(huì)帶來新的重構(gòu)。
這與中國道家的陰陽理論不謀而合,“奇正相生,如循環(huán)之無端,孰能窮之。”沒有一勞永逸的重構(gòu),在代碼的編寫上,重構(gòu)與增新總是循環(huán)往復(fù),交織在一起。分清你現(xiàn)在的角色就顯得很重要了,重構(gòu)的時(shí)候一定要牢記自己的原則與初衷,這樣才不會(huì)在重構(gòu)上偏的太遠(yuǎn)。
重構(gòu)的時(shí)間原則:理論上,當(dāng)你感覺到代碼讓你寫起來覺得惡心的時(shí)候,意味著重構(gòu)的時(shí)機(jī)已到。沒有什么特定的時(shí)間去重構(gòu),想到了就去做,隨時(shí)隨地,不用為重構(gòu)留出特意準(zhǔn)備的時(shí)間,你會(huì)發(fā)現(xiàn)你定好的時(shí)間總是或早或晚,早了沒有必要,晚了則承受了太多痛苦。但是在項(xiàng)目的開發(fā)中,我們總要遵循一定的規(guī)范,那么我建議是下面三個(gè)時(shí)機(jī)是最好的。
1.添加功能的時(shí)候。最重要的時(shí)機(jī),你總會(huì)在新增功能的時(shí)候發(fā)現(xiàn)設(shè)計(jì)上不合理的時(shí)候,這是你可以體會(huì)你設(shè)計(jì)上優(yōu)缺點(diǎn)最敏感的時(shí)候,不要錯(cuò)過這個(gè)時(shí)機(jī)。
2.修復(fù)BUG的時(shí)候。錯(cuò)誤往往是由于你的設(shè)計(jì)不合理而產(chǎn)生的,設(shè)計(jì)上的不合理會(huì)讓你產(chǎn)生對代碼的誤解,從而在修改代碼的時(shí)候引入新的錯(cuò)誤。如果你的項(xiàng)目中總是有一些無法一眼看到的BUG隱藏在角落里,那么這個(gè)時(shí)候你就需要考慮去重構(gòu)你的代碼。
3.審核代碼的時(shí)候。審核代碼一般都是很多人在一起或者是一個(gè)老手在審核你的代碼,人們往往總是針對一個(gè)熟識(shí)的東西會(huì)無意識(shí)的過濾其優(yōu)缺點(diǎn)。代碼也是,我們需要?jiǎng)e人給我們提供建議,他們的建議是站在別人的角度,這對于我們是尤為重要,代碼是要給人讀的,能寫出給機(jī)器讀的代碼很容易,寫出給人讀的代碼才是高手。
轉(zhuǎn)載于:https://my.oschina.net/hantianyu/blog/715669
總結(jié)
以上是生活随笔為你收集整理的重构随笔——重构的原则的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 线程执行器
- 下一篇: Atitit 面向对象编程(OOP)、面