最近一直在搞重構。 目前又再新重構一個小工具。 因為工具功能比較簡單,但是需求不太明確,所以之前寫代碼的時候有點隨意,現在寫完了,感覺代碼很亂。 也因為現在對這個小工具比較熟悉了,覺得是時候重構一發了。 因為重構,我也正在看《重構,改善既有代碼的設計》一書。實踐一下我看了幾章的感悟和這幾年的經驗。 ...
最近一直在搞重構。
目前又再新重構一個小工具。
因為工具功能比較簡單,但是需求不太明確,所以之前寫代碼的時候有點隨意,現在寫完了,感覺代碼很亂。
也因為現在對這個小工具比較熟悉了,覺得是時候重構一發了。
因為重構,我也正在看《重構,改善既有代碼的設計》一書。實踐一下我看了幾章的感悟和這幾年的經驗。
我的重構步驟:
一:看和想,然後做標記。
1.梳理流程。先把自己的項目的幾個數據入口整理出來,然後數據處理怎麼提取公共類,怎麼定義介面,
大致寫出來。然後看看每步節點處是否需要介面處理。需要怎麼處理。然後看整個項目可以分成幾個模塊。
2. 然而在想流程的時候,你也許還會有很多疑問,比如當初設計這個項目的人問什麼這裡要這麼做?那麼
你一定要解決這些疑問。因為,你要完全瞭解這些業務功能才能使你更加自如的處理接下來的重構。
所以把你的疑問列出來,然後搞明白。(重要)
3. 查看之前代碼。
首先看看每個類的位置是否放在該放的地方,或者是否需要創建新的地方。然後查看那些地方的類是不必要的。
還有那些類的存在不單純。然後想想怎麼處理好每個類的關係,怎麼讓一個類單純。然後查看哪些方法是多餘的,
那些代碼是重覆的。哪些放啊需要定義一個介面,規範一下步驟。那些方法不單純,需要拆分一下代碼(分成兩個或者幾個類)。
二:測試部分。
修改之前你一定已經寫了一版測試。在修改之前一定要重新看一下你的集成測試。因為你的每一
步修改,都有可能導致問題。當然測試也不是一開始就知道測試什麼。但是當你流程梳理明白之後,你會發現,
有哪些地方,需要寫單元測試。哪些地方可以測試幾種情況,哪些地方需要集成測試重新覆蓋新的方法。然後
配合後邊你的修改,一鍵測試,也許是一個不錯的體驗。
三:移動位置,根據一,知道那些類放置的位置不正確。移動到對應的位置。整理好之後發現一切一目瞭然。
四:修改代碼。位置都清楚了,那麼哪些要修改就很明顯了
1.位置知道了,那麼放在那裡的類的作用相信你已經很明白,哪些類或者介面是不必要的了,然後你要做的就
是刪除不必要的類介面,處理好對應類之間的關係。讓這些類單純起來。
2.拆分功能複雜的類,提取方法,優化代碼。
3.處理那些可以提取出來的方法,該創建父類的創建父類。該定義介面規範的定義介面規範。
看看業務分工是否明確,代碼邏輯是否清晰,後來的人能否一看就明白。
最後修改測試,保證集成測試覆蓋所有步驟和方法。然後測試你能知道的所有情況。
最後,看看你的代碼,你一定內心美滋滋的想誇獎自己。然後,我覺得重構很有必要,特別是越大的項目。重構,高處
思考,縱觀全局,一覽眾山小。然後從小處修改,一步一腳印(一測試)。當你完成的時候,你一定會覺得你,很,牛,逼。