大話重構連載4:大布局與小步快跑

來源:互聯網
上載者:User

標籤:blog   http   問題   html   工作   代碼   

以往我們在重新設計一個系統時,總是喜歡大布局。全面地整理系統需求,全面地分析系統功能,再全面地設計系統、開發、測試。這樣一個過程往往會持續數月,花費大量的工作量。但是,不到最後設計出來,誰都不知道會不會存在問題。這就是“大布局”的弊病。

正因為如此,軟體大師在講述系統重構時總是強調,系統重構應當避免大設計,而應當盡量採用一個一個連續不斷的小設計。這就是我們所說的“小步快跑”的設計模式。

小步快跑體現出了敏捷式軟體開發 (Agile Software Development)的特點——簡單與快速反饋。不要想得太多了,活在今天的格子裡,因為你永遠不可能預知今後會發生什麼。所以,做今天的設計,解決今天的問題,完成今天的重構,讓明天見鬼去吧。要知道,簡單對於我們是多麼的重要。當我們的大腦開始思考各種複雜的問題時,就開始充血,然後就是夢遊,最後的結果就是顧此失彼。既然如此,我們為何不選擇一種更加簡單的生活呢?

非常遺憾的是,很多時候我們不能選擇這種簡單的生活,因為我們害怕明天,害怕明天會出現那些我們處理不了的業務情境,因此我們開始過度設計。我不是批判我們不應當有預見,預見性設計與過度設計往往就是一線之隔。有限的預見是可以的,但不要想得過於遙遠。當明天真的需求變更了,我們現在的設計不能滿足了,怎麼辦呢?沒什麼大不了的,因為我們有重構。通過安全而平穩的重構方法先重構我們的系統,使之可以應付那個需求,然後再添加代碼,實現新需求。這個過程被稱為“兩頂帽子”:一頂是只重構而不新增功能,一頂是增加新的功能實現新需求。正因為如此,我們在設計時思考當下就可以了。

另外一個問題就是及時反饋,落實到此地就是及時測試。只有測試通過了,此次重構才算成功,我們才能繼續往下重構,否則我們必須還原。從這裡我們不難看出,重構的周期是多麼的重要。在我以往的重構工作中,一次重構的周期也就在10分鐘到1小時。重構的周期越長,說明你考慮的問題越複雜,最終出錯的機率也就越大。所以,我們一定要習慣“小步快跑”的工作方式,讓自己只活在當下。

說了那麼多重構,相信一定有一個疑問開始在你腦中縈繞。既然系統重構對於客戶來說是透明的,客戶完全感覺不到它的存在,毫無疑問,它對於客戶來說就是毫無價值的。這下疑問就來了:既然重構對於客戶來說就是毫無價值的,我們做它還有什麼意義呢?要說明白這個問題,我們需要首先談一談軟體修改的四種動機。


大話重構連載首頁:http://www.cnblogs.com/mooodo/p/talkAboutRefactoringHome.html

特別說明:希望網友們在轉載本文時,應當註明作者或出處,以示對作者的尊重,謝謝!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.