重構(gòu)的作用

—— from Kent Beck

程序有兩面價(jià)值:今天的價(jià)值和明天的價(jià)值。但大多時(shí)候我們都只是關(guān)注今天的價(jià)值,也就是今天的程序能做什么。不論是修復(fù)錯(cuò)誤或是添加特性,我們都是為了讓程序能力更強(qiáng),讓它在今天更有價(jià)值。
  但是系統(tǒng)當(dāng)下的行為,只是整個(gè)故事的一部分,如果沒(méi)有認(rèn)清這一點(diǎn),你無(wú)法長(zhǎng)期從事編程工作。如果你為求完成今天的任務(wù)而不擇手段,導(dǎo)致不可能在明天完成任務(wù),那么最終還是會(huì)失敗。但是,你知道自己今天需要什么,卻不一定知道自己明天需要什么。也許你可以猜到明天的需求,也許吧,但肯定還有些事情出乎你的意料。
對(duì)于今天的工作,我了解得很充分:對(duì)于明天的工作,我了解得不夠充分。但是如果只是為今天的工作,明天我將無(wú)法工作。
  重構(gòu)是一條擺脫困境的道路。如果你發(fā)現(xiàn)昨天的決定已經(jīng)不適合今天的情況,放心改變這個(gè)決定就是,然后你就可以完成今天的工作了。明天,喔,明天回頭看今天的理解也許覺(jué)得很幼稚,那是你還可以改變你的理解。
  是什么讓程序如此難以 相與?眼瞎我能響起下述四個(gè)原因,它們是:

  • 難以閱讀的程序,難以修改;
  • 邏輯重復(fù)的程序,難以修改;
  • 添加新行為時(shí)需要修改已有代碼的程序,難以修改;
  • 帶復(fù)雜條件邏輯的程序,難以修改。
      因此,我們希望程序:1.容易閱讀;2.所有邏輯都只有在唯一地點(diǎn)指定;3.新的改動(dòng)不會(huì)危險(xiǎn)現(xiàn)有行為;4.盡可能使用簡(jiǎn)單表達(dá)條件邏輯。
      重構(gòu)是這樣一個(gè)過(guò)程:它在一個(gè)目前可運(yùn)行的程序上進(jìn)行,在不改變程序行為的前提下使其具備上述美好性質(zhì),使我們能夠繼續(xù)保持高速開發(fā),從而增加程序的價(jià)值。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 《重構(gòu)》讀書筆記 總覽 第一部分 第一章從實(shí)例程序出發(fā),展示設(shè)計(jì)的缺陷,對(duì)其重構(gòu)可以了解重構(gòu)的過(guò)程和方法。 第二部...
    白樺葉閱讀 2,534評(píng)論 2 5
  • 先說(shuō)項(xiàng)目開發(fā)過(guò)程中團(tuán)隊(duì)人員的分工協(xié)作。 一 人員安排 畢業(yè)至今的大部分項(xiàng)目都是獨(dú)立完成,雖然也有和其他同事協(xié)作的時(shí)...
    SnowflakeCloud閱讀 11,135評(píng)論 3 59
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,029評(píng)論 25 709
  • 恐懼,是一種人類及生物心理活動(dòng)狀態(tài),通常稱為情緒的一種。從心理學(xué)的角度來(lái)講,恐懼是一種有機(jī)體企圖擺脫、逃避...
    掮商閱讀 1,281評(píng)論 0 3
  • 未散場(chǎng)的青春和不能接近的美麗,永遠(yuǎn)都像是帶刺的玫瑰。莫使金樽空對(duì)月,心比天高,游過(guò)就好⊙⊙情人節(jié)的狂歡,情人節(jié)的情人…
    hotIcecream閱讀 317評(píng)論 0 1

友情鏈接更多精彩內(nèi)容