軟件設(shè)計(jì)

重構(gòu)

在應(yīng)用程序的整個(gè)生命周期中躺酒,我們夠可以使用重構(gòu)河质。
持續(xù)學(xué)習(xí)使我們經(jīng)常聽(tīng)到的一句話冀惭,這句話也非常試用于重構(gòu)震叙。例如重構(gòu)可以獲得更好的模型
重構(gòu)是一步步的執(zhí)行小的,眾所周知的變更散休,以改變現(xiàn)有代碼的設(shè)計(jì)媒楼,既不改變顯性的行為的情況獲得可維護(hù)性質(zhì)。換句話說(shuō)就是:改變方式戚丸,但不改變內(nèi)容

簡(jiǎn)單地說(shuō)重構(gòu)就是把糟糕的代碼轉(zhuǎn)化為良好的划址,可維護(hù)的代碼,就是這么簡(jiǎn)單限府,因此我們不必在前期就給出一個(gè)完美的架構(gòu)或者答案夺颤。這是一個(gè)好消息,因?yàn)闊o(wú)論我們?nèi)绾卧O(shè)計(jì)都不會(huì)達(dá)到完美的狀態(tài)(可以證明嗎胁勺?)世澜。

我們?cè)谧R(shí)別糟糕的代碼方面幾乎人人都是高手,沒(méi)有問(wèn)題署穗,但是重點(diǎn)在于如何修復(fù)他寥裂。在我看來(lái)應(yīng)該在一發(fā)現(xiàn)問(wèn)題之后就立馬進(jìn)行處理,我們應(yīng)該使用重構(gòu)案疲。因?yàn)槿绻粚?duì)代碼進(jìn)行持續(xù)維護(hù)封恰,那么他將退化和崩潰,就像房子一樣的络拌。如果在bug修復(fù)和功能擴(kuò)展期間如果不使用重構(gòu)俭驮,那么可以想象在不遠(yuǎn)的將來(lái)將會(huì)發(fā)生什么情況回溺。所以理解軟件的生命周期很重要春贸,能夠在更高的層次掌握軟件開(kāi)發(fā)的核心。塵封不動(dòng)的代碼將滋生bug

如何使用重構(gòu)

正如文章開(kāi)頭的第一句話所說(shuō)遗遵,在軟件開(kāi)發(fā)的整個(gè)生命周期中都可以使用重構(gòu)萍恕。假如我們不使用重構(gòu),而沿用前期的车要,傳統(tǒng)的設(shè)計(jì)為重點(diǎn)的過(guò)程方法允粤,我們?cè)诔跏蓟敿?xì)設(shè)計(jì)階段反復(fù)琢磨,花費(fèi)大量時(shí)間翼岁,創(chuàng)建大量的UML类垫,作為結(jié)果我們希望在后期的軟件開(kāi)發(fā)中過(guò)程會(huì)變得很順利和快速,但即使是這樣琅坡,代碼還是會(huì)有變得很糟糕的風(fēng)險(xiǎn)悉患。

相反我們應(yīng)該接受這樣一個(gè)事實(shí),我們不可能在一開(kāi)始就設(shè)計(jì)的很完美正確榆俺,另一種略微不同的方法是將一些工作從初始詳細(xì)設(shè)計(jì)階段轉(zhuǎn)移到開(kāi)發(fā)過(guò)程中去(這種情況所有的開(kāi)發(fā)人員都是設(shè)計(jì)人員)售躁,并且準(zhǔn)備好持續(xù)學(xué)習(xí)坞淮,當(dāng)了解到更多的內(nèi)容的時(shí)候進(jìn)行持續(xù)的重構(gòu),在我們開(kāi)發(fā)的過(guò)程中陪捷,我們會(huì)學(xué)習(xí)到更多的東西回窘,此時(shí)進(jìn)行重構(gòu)的設(shè)計(jì),會(huì)做的更正確市袖,也的確符合我們?nèi)粘i_(kāi)發(fā)的模式啡直,所以重構(gòu)的使用很重要。
因此苍碟,與其進(jìn)行更多的推測(cè)的詳細(xì)設(shè)計(jì)付枫,不如進(jìn)行更多的學(xué)習(xí)和驗(yàn)證,并反復(fù)重構(gòu)

1. 重構(gòu) + TDD = 事實(shí)

為了安全的重構(gòu)驰怎,我們必須執(zhí)行全面的測(cè)試阐滩,如果不這樣做,這將會(huì)引入bug县忌。
使用TDD+重構(gòu)來(lái)修復(fù)bug是一張好的思想掂榔,首先是紅色的來(lái)暴露bug,然后修復(fù)bug成為綠色症杏,然后重構(gòu)就算是成功了装获。

最后:領(lǐng)域模型DDD非常適合TDD

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市厉颤,隨后出現(xiàn)的幾起案子穴豫,更是在濱河造成了極大的恐慌,老刑警劉巖逼友,帶你破解...
    沈念sama閱讀 222,590評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件精肃,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡帜乞,警方通過(guò)查閱死者的電腦和手機(jī)司抱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)黎烈,“玉大人习柠,你說(shuō)我怎么就攤上這事≌掌澹” “怎么了资溃?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,301評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)烈炭。 經(jīng)常有香客問(wèn)我溶锭,道長(zhǎng),這世上最難降的妖魔是什么梳庆? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 60,078評(píng)論 1 300
  • 正文 為了忘掉前任暖途,我火速辦了婚禮卑惜,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘驻售。我一直安慰自己露久,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,082評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布欺栗。 她就那樣靜靜地躺著毫痕,像睡著了一般。 火紅的嫁衣襯著肌膚如雪迟几。 梳的紋絲不亂的頭發(fā)上消请,一...
    開(kāi)封第一講書(shū)人閱讀 52,682評(píng)論 1 312
  • 那天,我揣著相機(jī)與錄音类腮,去河邊找鬼臊泰。 笑死,一個(gè)胖子當(dāng)著我的面吹牛蚜枢,可吹牛的內(nèi)容都是我干的缸逃。 我是一名探鬼主播,決...
    沈念sama閱讀 41,155評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼厂抽,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼需频!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起筷凤,我...
    開(kāi)封第一講書(shū)人閱讀 40,098評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤昭殉,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后藐守,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體挪丢,經(jīng)...
    沈念sama閱讀 46,638評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,701評(píng)論 3 342
  • 正文 我和宋清朗相戀三年吗伤,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了吃靠。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,852評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡足淆,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出礁阁,到底是詐尸還是另有隱情巧号,我是刑警寧澤,帶...
    沈念sama閱讀 36,520評(píng)論 5 351
  • 正文 年R本政府宣布姥闭,位于F島的核電站丹鸿,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏棚品。R本人自食惡果不足惜靠欢,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,181評(píng)論 3 335
  • 文/蒙蒙 一廊敌、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧门怪,春花似錦骡澈、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,674評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至坦弟,卻和暖如春护锤,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背酿傍。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,788評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工烙懦, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人赤炒。 一個(gè)月前我還...
    沈念sama閱讀 49,279評(píng)論 3 379
  • 正文 我出身青樓修陡,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親可霎。 傳聞我的和親對(duì)象是個(gè)殘疾皇子魄鸦,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,851評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容