「如何在茫茫程式海中找尋叫用某 Method 的對象?」
坎尼大多是用 Ctrl + F 苦命的尋找
或許是發現像坎尼這樣的笨蛋太多了,所以 VS2010 加了新功能
以避免更多的坎尼出現
I. How to use Call Hierarchy
首先,坎尼以上一篇例子中的 Class 來示範當一個新進維護人員發現 Talk_to_Man() 邏輯有些許問題
但若是直接修改不知影響層面有多大
所以最好的方式是:
先找出有相依性的 Method 來進行修改風險及工作量的評估
「但要怎麼尋找呢?」
還好新人小坎尼看過坎尼這篇
於是就在 Talk_to_Man 上按下右鍵,選擇 View Call Hierarchy
接著 VS2010 會在 Call Hierarchy 的視窗中顯示分析結果
「哦哦,原來叫用的 Method 只有 Couple() 」
還可以將呼叫或被呼叫的 Method 打開,繼續往下了解其相依性
(當然可以不斷地打開樹的節點,這邊坎尼就不多做說明了 )
如何,很簡單吧? :)
II. 小結
大型專案往往有數萬行以上程式碼人員在開發及維護上,若是遇到有交接等情形,常會遺漏許多未被告知的資訊
尤其像是本篇所講,為了避免牽一髮而動全身
先做一些分析及評估是必要的,工具此時就能派上用場了 :)
強大的 Visual Studio 再次顯靈
2 則留言:
我記得 VS2008 就支援 Refactoring (rename),在那個視窗裡面應該會列出所有 reference 到目前 method 的程式碼,也可以像在 word 裡面的取代一樣,一個一個手動去 apply ...
其實還有個 search references 的功能,這個比較接近 call hierarchy 的概念
張貼留言