談談代碼重構

來源:互聯網
上載者:User

     開發人員可能聽到過"bad
smell"這個詞,這個詞用在軟體編碼中是什麼意思呢? 代碼還有smell嗎?當然沒有,正如電腦病毒,bug等詞一樣,這隻是個形象的說法。這個
詞在這裡的意思是代碼實現了需求,但是代碼卻不精鍊,冗餘,結構混亂,難讀懂,難維護,難擴充等等。與之相對應的一個詞是"refactor",即代碼重
構。我們在看些外國人寫的程式時可以發現,他們的代碼裡一般會定義大量的類、介面、方法,類與類,類與介面之間很多是繼承和實現的關係,方法的程式碼數很
少,超過20行代碼的方法不多,看他們的代碼感覺最多的就是方法之間的調來調去,不像我們的代碼,一個方法下來幾十上百甚至兩三百行都是最基本的語句構
成,很少調用自己的方法。兩相比較,可以看出,前者在結構上更清晰,通過類別檢視就可看出設計意圖,並且總的代碼量不會高於後者,而後者代碼量龐大,代碼冗
餘現象嚴重,結構不清晰,很難維護,如要修改某個錯誤,可能涉及到要修改的代碼點很多,這樣後來的維護者就很頭疼了。造成這種狀況的原因有這樣一些:

1.經驗不足,分析設計不到位

2.敏捷開發,雖然經驗很多,但為了快速開發,沒有經過分析設計

3.缺乏意識,只為實現功能而寫代碼,不管代碼品質

對於這樣的代碼,我們怎樣將其變得更為精鍊和易於維護呢?這就是代碼重構。重構不是針對功能,純粹是對代碼本身。重構後的代碼不會影響到系統的運行。

我們來看看可以在哪些方面對代碼進行重構:

1.重新命名:對類,介面,方法,屬性等重新命名,以使得更易理解

2.抽取代碼:將方法內的一段代碼抽取為另一個方法,以使得該段代碼可以被其他方法調用,這是重構中很重要很常用的,此舉可以極大的精鍊代碼,減少方法的程式碼數

3.封裝欄位:將類的某個欄位轉換成屬性,可以更加合理的控制欄位的訪問

4.抽取介面:將類的某些屬性,方法抽取組成個介面,該類自動實現該介面

5.提升方法內的局部變數為方法的參數:這主要是在寫代碼的過程中會使用到

6.刪除參數:將方法的一個或多個參數刪掉

7.重排參數:將方法的參數順序重新排列

實際應用中,用的最多的是1、2、3,我們可以在寫代碼的時候有意識的運用代碼重構,這樣當我們完成編碼時代碼的品質也能得到保證。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.