l

2016年2月5日 星期五

用Extract Method移除Comments怪味道

Feb. 04 18:24~19:21

螢幕截圖 2016-02-04 19.20.18

▲老註解XD

 

自從每天寫一篇部落格文章之後每到過年Teddy都有點小鬱卒,因為大部分的鄉民都放假了但是「搞笑談軟工」卻沒放假,只好在過年前硬擠些庫存。今年都在做「軟體重構入門實作班」教材沒時間累積庫存,乾脆拿一些教材裡面的小例子出來撐場面,也順便請鄉民們給點意見。

Comments怪味道在〈談談壞味道(15):Comments〉介紹過,今天介紹如何用Extract Method來移除這個怪味道。首先看程式範例:

螢幕截圖 2016-02-05 17.37.45

ThermalController是溫度控制器,它的speedUp()用來加速設備,第12行程式先判斷如果設備沒有過熱則送出加速指令並回傳true,如果已經過熱就回傳false。

▼這個if條件句光看程式不太清楚是什麼意思,還好有註解說明。如果要把註解拿掉但依然保持程式的可讀性,可以套用Extract Method把if條件抽離到一個method裡面,再幫這個method取個一看就懂的好名子,這樣就可以放心把註解刪除。

螢幕截圖 2016-02-05 17.38.33

***

Extract Method的詳細步驟鄉民們可以參考《Refactoring》,這裡直接看套用後的結果。

▼第19行新增isNotOverheat() method,把原本if條件句程式搬到裡面(第20行),然後在原本的if條件句改呼叫isNotOverheat() method(第11行),這樣子把註解刪掉就沒問題了。

螢幕截圖 2016-02-05 17.39.14

***

把Comments移除之後上面這段程式還有其他怪味道,留給有興趣的鄉民們自行將其剷除。

***

友藏內心獨白:取個好名字很重要。

3 則留言:

  1. 1. 同變數名稱, 應加this
    2. "怪味道"的定義....

    回覆刪除
    回覆
    1. 謝謝建議。
      data member 變數開頭有加 _,例如 _isTurnOn,應該是程式碼排版的關係所以底線不見了....Orz。怪味道就是「壞味道」,文中有給之前介紹的文章連結。

      刪除
    2. 我把程式碼的字型改了,現在會出現底線(_)了。

      刪除