2010年1月29日

[VS2010] 找尋 Method 之間的關係 – Call Hierarchy

很久很久以前,坎尼一直有這個困擾:
「如何在茫茫程式海中找尋叫用某 Method 的對象?」
坎尼大多是用 Ctrl + F 苦命的尋找
或許是發現像坎尼這樣的笨蛋太多了,所以 VS2010 加了新功能
以避免更多的坎尼出現

I. How to use Call Hierarchy

首先,坎尼以上一篇例子中的 Class 來示範
ch01
當一個新進維護人員發現 Talk_to_Man() 邏輯有些許問題
但若是直接修改不知影響層面有多大
所以最好的方式是:
先找出有相依性的 Method 來進行修改風險及工作量的評估

「但要怎麼尋找呢?」
還好新人小坎尼看過坎尼這篇
於是就在 Talk_to_Man 上按下右鍵,選擇 View Call Hierarchy
ch02 接著 VS2010 會在 Call Hierarchy 的視窗中顯示分析結果
「哦哦,原來叫用的 Method 只有 Couple() 」
ch03 還可以將呼叫被呼叫的 Method 打開,繼續往下了解其相依性
(當然可以不斷地打開樹的節點,這邊坎尼就不多做說明了 )
ch04如何,很簡單吧? :)

II. 小結

大型專案往往有數萬行以上程式碼
人員在開發及維護上,若是遇到有交接等情形,常會遺漏許多未被告知的資訊

尤其像是本篇所講,為了避免牽一髮而動全身
先做一些分析及評估是必要的,工具此時就能派上用場了 :)
強大的 Visual Studio 再次顯靈

2 則留言:

Unknown 提到...

我記得 VS2008 就支援 Refactoring (rename),在那個視窗裡面應該會列出所有 reference 到目前 method 的程式碼,也可以像在 word 裡面的取代一樣,一個一個手動去 apply ...

坎尼 提到...

其實還有個 search references 的功能,這個比較接近 call hierarchy 的概念

Google Spreadsheet 裡用規則運算式

最近因為工作關係,遇到要用 Google Form 及 Google Sheet 所以研究了 Google Sheet 裡的一些 function 怎麼用 首先,分享一下如何在 Google Sheet 裡用規則運算 :D