Feb. 04 18:24~19:21
▲老註解XD
自從每天寫一篇部落格文章之後每到過年Teddy都有點小鬱卒,因為大部分的鄉民都放假了但是「搞笑談軟工」卻沒放假,只好在過年前硬擠些庫存。今年都在做「軟體重構入門實作班」教材沒時間累積庫存,乾脆拿一些教材裡面的小例子出來撐場面,也順便請鄉民們給點意見。
Comments怪味道在〈談談壞味道(15):Comments〉介紹過,今天介紹如何用Extract Method來移除這個怪味道。首先看程式範例:
ThermalController是溫度控制器,它的speedUp()用來加速設備,第12行程式先判斷如果設備沒有過熱則送出加速指令並回傳true,如果已經過熱就回傳false。
▼這個if條件句光看程式不太清楚是什麼意思,還好有註解說明。如果要把註解拿掉但依然保持程式的可讀性,可以套用Extract Method把if條件抽離到一個method裡面,再幫這個method取個一看就懂的好名子,這樣就可以放心把註解刪除。
***
Extract Method的詳細步驟鄉民們可以參考《Refactoring》,這裡直接看套用後的結果。
▼第19行新增isNotOverheat() method,把原本if條件句程式搬到裡面(第20行),然後在原本的if條件句改呼叫isNotOverheat() method(第11行),這樣子把註解刪掉就沒問題了。
***
把Comments移除之後上面這段程式還有其他怪味道,留給有興趣的鄉民們自行將其剷除。
***
友藏內心獨白:取個好名字很重要。
1. 同變數名稱, 應加this
回覆刪除2. "怪味道"的定義....
謝謝建議。
刪除data member 變數開頭有加 _,例如 _isTurnOn,應該是程式碼排版的關係所以底線不見了....Orz。怪味道就是「壞味道」,文中有給之前介紹的文章連結。
我把程式碼的字型改了,現在會出現底線(_)了。
刪除