iT邦幫忙

2025 iThome 鐵人賽

DAY 11
0
Software Development

沒測試也敢重構?IDE 安全重構 30 日生存指南系列 第 11

Day 11. Change Signature:改寫方法的契約

  • 分享至 

  • xImage
  •  

在重構的過程中,方法/函式簽章(signature)往往不是一開始就能設計完美。隨著需求演進,你可能會發現某些參數不再需要、某些回傳型別過於狹隘,甚至方法名稱本身也不再能準確表達意圖。這時候,就需要用到 Change Signature

然而,若是直接手動更改方法簽章,所有的呼叫處都要跟著更新,遇到那種一兩百個引用的方法改到手痠事小,遇到同型別的參數一不小心改錯順序就等著收 PIP。使用 IDE 自動重構就不用擔心這件事,我們來看看吧。

這是一個簡單的 API 呼叫,方法簽章中參數的順序是 request、baseUrl、action,但我通常習慣讓路徑在前面。
https://ithelp.ithome.com.tw/upload/images/20250925/20169414ojQIuYZrJH.png

把游標移動到方法簽章上,按下 Change Signature
https://ithelp.ithome.com.tw/upload/images/20250925/201694142nNFTBoqHL.png

可以看到彈窗裡面包含了方法簽章的各個資訊。我只是要調整參數順序,於是先選擇要移動的參數,再選擇旁邊的箭頭調整順序。
https://ithelp.ithome.com.tw/upload/images/20250925/20169414ipsZFRdLhD.png

調整好的順序變成 baseUrl、action、request,接著按下 Next。
https://ithelp.ithome.com.tw/upload/images/20250925/20169414L5ol9d1UZN.png

可以看到參數順序順利的更新啦~
https://ithelp.ithome.com.tw/upload/images/20250926/20169414YPZfsTSSnv.png

一些 Rename 的重構,包含前面提到的 Rename Method 或者是 Rename Parameter,都算是 Change Signature 的一種,也能透過相同的功能完成。不過正因為 Change Signature 非常複雜,在我的經驗中若是 Change Signature 同時包含多個操作,會有機率把簽章改壞,所以我習慣一個個執行,例如先做順序調整、再重新命名,確保每個操作都能成功。


上一篇
Day 10. Inline Method/Variable:收集破碎的邏輯
下一篇
Day 12. Change Signature 之 2:讓參數垂直移動
系列文
沒測試也敢重構?IDE 安全重構 30 日生存指南14
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言