雖然因為 php 是弱型別,所以 #PhpStorm 不像 #IntelliJ 或 #ReSharper 有 "Transform Parameter Object" 的功能可以用。
但是我們還是可以創造出自己的 #套路,把 function 標記成 static 後,inline method, 再針對 inline 完的內容,extract method,透過 extract method 來輔助精鍊參數的個數與型別。
IDE 最強大的威能,就在於重構。如果用了 PhpStorm,仍然用舊的方式在開發,真的不如用 Visual Studio Code 或是 vim 就好。
--
什麼?你沒有這問題跟需求?你是沒有在重構吧?
在【#極速開發】中,會學習到如何把整個生產環境,相關的工具鏈組合起來,發揮最大綜效,而不是一個一個的單點功能。有興趣可以參考:https://dotblogs.com.tw/hatelove/2018/10/29/201901-extreme-developing
在【#演化式設計:#測試驅動開發與持續重構】的培訓中,則是如何把這些東西進階應用在實戰上,讓你的測試驅動開發與持續重構,能行雲流水一般優雅。有興趣可以參考:https://dotblogs.com.tw/hatelove/2018/10/29/201902-refactor-and-tdd-training
「refactor method」的推薦目錄:
refactor method 在 91 敏捷開發之路 Facebook 的最佳解答
新的一篇 TDD 範例詳解。這次的 kata 是 Codewars 上面的「Next bigger number with the same digits」
【題目說明】
You have to create a function that takes a positive integer number and returns the next bigger number formed by the same digits:
f(12) == 21
f(513) == 531
f(2017) == 2071
If no bigger number can be composed using those digits, return -1:
f(9) == -1
f(111) == -1
f(531) == -1
【codewars 題目連結】
https://www.codewars.com/…/next-bigger-number-with-t…/csharp
【傳送門】
https://dotblogs.com.tw/…/codewars-next-bigger-number-by-tdd
【重點】
這一篇文章針對 TDD 過程中,怎麼「刻意簡單」做了些著墨,以及詳細解說幾個連續的小範圍重構技巧,包含:
① inline variable 消掉不必要的變數
② introduce variable 消掉重複,以便後續重構
③ move to outer scope, 避免迴圈內重複宣告
④ extract method, 抽象、避免重複、增加易讀性
⑤ 消除不必要的方法參數
文章品質保證大家看得過癮!
#TDD
#codewars
#kata
#refactor