《重構(gòu),改善既有代碼的設(shè)計(jì)》 著:Martin Fowler 譯:熊節(jié)
序
- 在設(shè)計(jì)前期使用模式常常導(dǎo)致過(guò)度工程柳洋,“實(shí)用”是軟件壓倒一切的要素
第一章
- 重構(gòu)前,先檢查自己是否有一套可靠的測(cè)試機(jī)制叹坦,這些測(cè)試必須有自我檢驗(yàn)?zāi)芰?/li>
- 任何不會(huì)被修改的變量都可以被我當(dāng)成參數(shù)傳入新的函數(shù)熊镣,至于會(huì)被修改的變量就需要格外小心,如果只有一個(gè)變量會(huì)被修改募书,那我可以把它當(dāng)做返回值
- 最好不要在另一個(gè)對(duì)象的屬性基礎(chǔ)上運(yùn)用switch語(yǔ)句绪囱,如果不得不使用,也應(yīng)該在對(duì)象自己的數(shù)據(jù)上使用莹捡。而不是在別人的數(shù)據(jù)上使用
第二章
添加新功能不應(yīng)該修改原有代碼
重構(gòu)時(shí)就不能再添加功能
如果你對(duì)大多數(shù)程序進(jìn)行分析鬼吵,就會(huì)發(fā)現(xiàn)它把大半時(shí)間都耗費(fèi)在一小半代碼身上,如果你一視同仁優(yōu)化所有代碼篮赢,90%的優(yōu)化是為了讓程序運(yùn)行更快齿椅。但如果因?yàn)槿狈?duì)程序的清楚認(rèn)識(shí)而花費(fèi)時(shí)間,那些時(shí)間就都被浪費(fèi)掉了
每當(dāng)感覺(jué)需要以注釋來(lái)說(shuō)明點(diǎn)什么的時(shí)候启泣,我們就把需要說(shuō)明的東西寫(xiě)進(jìn)一個(gè)獨(dú)立函數(shù)中涣脚,并以用途命名
刪掉眾多數(shù)據(jù)中的一項(xiàng)目,這么做寥茫,其他數(shù)據(jù)有沒(méi)有因而失去意義遣蚀?如果它們不再有意義,這就是個(gè)明確信號(hào)纱耻,你應(yīng)該為它們產(chǎn)生一個(gè)新對(duì)象
每天至少執(zhí)行每個(gè)測(cè)試一次
每當(dāng)你收到bug報(bào)告芭梯,請(qǐng)先寫(xiě)出一個(gè)單元測(cè)試來(lái)暴露這個(gè)bug
第九章
條件表達(dá)式所有分支都是正常行為,應(yīng)該使用if...else弄喘,而如果只有一種是正常粥帚,其他都是特殊行為,應(yīng)該去掉else限次,全部使用if return方式
空對(duì)象的使用芒涡,空對(duì)象一定是常量柴灯,通常使用單例模式創(chuàng)建
第十一章
受托對(duì)象被不止一個(gè)其他對(duì)象共享,而且受托對(duì)象是可變的费尽,這種情況不適用以繼承取代委托