日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
代碼重構(gòu)方向原則指導(dǎo)

重構(gòu)是一種對軟件進行修改的行為,但它并不改變軟件的功能特征,而是通過讓軟件程序更清晰,更簡潔和更條理來改進軟件的質(zhì)量。代碼重構(gòu)之于軟件,相當(dāng)于結(jié)構(gòu)修改 之于散文。每次人們對如何對代碼進行重構(gòu)的討論就像是討論如果對一篇文學(xué)作品進行修訂一樣無休無止。所有人都知道應(yīng)該根據(jù)項目的自身情況來對代碼進行重 構(gòu),而重構(gòu)是無止境的。莫扎特從來不不對他的作品進行修訂,特羅洛普對自己作品修訂的恰到好處,大多數(shù)作家認為他們倆這樣做都是合適的,但他們的合適對于 你我來說未必是合適的。

為華坪等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及華坪網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都做網(wǎng)站、網(wǎng)站建設(shè)、華坪網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!

最常見的基本重構(gòu)方法 可以歸納為兩個方向。通過歸納方法將一個長的過程分解為小的可以重用的組件,和通過內(nèi)聯(lián)(inline)方法來消除那些不夠份量的小方法。我們可以提煉方法來讓大量的子類共享相同的功能特征,我們可以下放方法來讓只有用到這些功能的子類才知道它們的存在。重構(gòu)就是爬山,通過一步一步的小的提高來逐漸的改進整體的質(zhì)量,但在重構(gòu)時,我們?nèi)绾沃滥姆N方法是上山的正確道路?

關(guān)于代碼地形學(xué)的這個問題公認的方法有兩種。去除有異味的代碼和重構(gòu)成模式。 如果能做到這樣,當(dāng)然是很好的。就像是糾正作文里的一個語法錯誤或不恰當(dāng)?shù)谋扔?。如果我們可以找到這些四處隱藏的有異味的代碼,將它們重寫成整潔的,條理 的,結(jié)構(gòu)化的形式,何樂而不為。但這些都是特殊情況。如果沒有明顯的模式來重構(gòu),或沒有很直接的方法來去除代碼異味,那該怎么辦呢?

這才是 我們?nèi)缃窬幊趟囆g(shù)的中心問題,而很少人討論這些。通常我們討論這些問題時都是羅列出更多更長的有異味的代碼模式的清單,但這并不是解決問題的方法。代碼異 味應(yīng)該是我們公認的不好的東西,而不是那些置之不理也無妨的事情。我們經(jīng)常會說到老板不給我們重構(gòu)的機會,甚至代碼有明顯的異味,老板們認為這是浪費時 間。并不是每個人都有懂軟件的老板。我很吃驚為什么只有很少的討論談到點子上。。也許我這篇文章才說到問題關(guān)鍵處。

我的觀點,當(dāng)重構(gòu)沒有現(xiàn)成的明顯的方向時,我們可以遵循下面的原則:

  1. 當(dāng)屬性、方法或類存在任何的需要復(fù)用的意向時,歸納提煉它們。
  2. 不要低估小方法對代碼整潔的作用。使用小方法能讓你節(jié)省很多筆墨。
  3. 能讓代碼長度變短的提煉都應(yīng)該去提煉,包括注釋。
  4. 用switch()代替多形——即使這樣做會使代碼變長。
  5. 用封裝控制可見度。
  6. 消除依賴。
  7. 簡化構(gòu)造方法——即使這樣做會使代碼變復(fù)雜。
  8. 封裝或避免條件表達式。使用guard語句,避免使用else語句。
  9. 使用常量代替魔幻數(shù)字。
  10. 不確定時,偏向使用組合而不是繼承。
  11. 不確定時,將計算操作移入到這些數(shù)據(jù)的所有者對象里,或?qū)?shù)據(jù)移動到執(zhí)行計算操作的對象里(也就是迪米特法則(Law of Demeter))。
  12. 使用小對象,松耦合,避免大對象,高聚合。
  13. 不確定時,偏向使用遞歸而不是循環(huán)。
  14. 使用代理對象,模擬對象和輔助對象來隔離網(wǎng)絡(luò),數(shù)據(jù)庫,文件和用戶接口。
  15. 不確定時,盡量在model里添加代碼,必要時才往controler添加代碼。view里添加的都應(yīng)該是便捷功能和簡寫方法,但不要局限于此。
  16. 偏向使用apply, each, mapcar,而不是loop.
  17. 盡量使用新技術(shù)。

原文鏈接:http://www.markbernstein.org/Oct13/HillClimbingWonkish.html

譯文鏈接:http://www.aqee.net/hill-climbing-wonkish/


標(biāo)題名稱:代碼重構(gòu)方向原則指導(dǎo)
網(wǎng)站鏈接:http://www.5511xx.com/article/cdjcece.html