HOW TO:使用相依性圖形探索程式碼
在 Visual Studio Ultimate 中,使用相依性圖形有助於了解現有程式碼中的組織和關聯性。 下列圖形以節點表示結構,並以在兩個節點間顯示為箭號的連結表示關聯性。 若要產生圖形,請參閱 HOW TO:產生適用於 .NET 程式碼的相依性圖形。
下列範例顯示圖形如何以節點和連結來表示結構和關聯性:
圖形上的節點和連結
下列範例顯示圖形如何以群組來表示結構和內含項目關聯性:
圖形上的群組節點
警告
圖形只會顯示建置成功之程式碼的相依性。 如果因為某些元件導致發生組建錯誤,這些元件及其內容並不會顯示。 因此,在根據圖形進行架構決策前,請確定元件可實際建置且具有相依性。
本主題內容
探索圖形上的相依性
尋找具複雜度的區域
探索圖形上的相依性
圖形上的相依性以下列幾種連結來表示:
個別連結表示兩個節點之間的單一相依性。
彙總連結表示兩個群組之間方向相同的所有相依性。
跨群組連結只是跨不同群組之兩個節點間的連結。
注意事項 |
---|
圖形預設只會在選取的節點間顯示跨群組連結。 若要隨時都顯示這些連結,請在圖形工具列上按一下 [變更連結在圖形上的呈現方式] 按鈕旁邊的下拉式清單,然後按一下 [顯示所有跨群組連結]。 如果沒有顯示圖形工具列,請在 [檢視] 功能表上,指向 [工具列],然後按一下 [有向圖形]。 |
請使用下列工作來探索您感興趣的相依性:
若要 |
請依照下列步驟: |
---|---|
查看連結所表示的相依性清單 |
|
依名稱尋找節點 用來搜尋多層群組節點。 |
|
尋找連結的來源或目標 如果連結太多,可以使用此方法輕鬆地查看特定連結的來源或目標。 |
|
檢查跨不同群組中節點的相依性 |
|
檢查彙總連結後面的相依性
注意事項
只有當連結兩端都有連接組件時,這麼做才有作用。如果沒有組件資訊,就無法建立圖形。
|
|
尋找具複雜度的區域
使用相依性圖形可以找出您也許能夠改進的程式碼區域。 語式正確的相依性圖形將會顯示最少的相依性。 例如,您可以:
尋找具有迴圈或循環相依性的程式碼。
檢查這些區域看看您是否能加以簡化。 考量您是否能破除這些循環。
尋找具有過多相依性的程式碼。
檢查這些區域,了解其中是否執行太多功能,或判斷變更這些區域時所產生的影響。 為使程式碼更易於維護、變更、測試和重複使用,請考量您是否能重構這些區域,以便定義得更清楚,或是否能合併執行類似功能的程式碼。
尋找沒有相依性的程式碼。
檢查這些區域,確定是否為必要的區域,或是否要將此程式碼移除。
您可以對這些圖形執行特定的分析器,協助進行這些工作。 在套用這些分析器之後,它們就會持續執行。 如果您變更圖形,所套用的任何分析器都會自動重新處理更新的圖形。 若要停止執行分析器,請在 [圖例] 方塊中,以滑鼠右鍵按一下分析器,然後按一下 [刪除]。
注意事項 |
---|
如果您的圖形很大,執行分析器可能會導致記憶體用完例外狀況。 如果發生這種情況,請編輯圖形以縮小其範圍或產生較小的圖形,然後再執行分析器。 |
若要尋找程式碼中頗具複雜度的區域
確定圖形配置已設定為樹狀配置或快速叢集配置。
如需詳細資訊,請參閱 HOW TO:瀏覽和巡覽圖形文件。
以滑鼠右鍵按一下圖形並指向 [分析器],然後按下列其中一項:
分析器
以識別情況如下的節點
循環參考
彼此之間具有循環相依性
注意事項當您展開 [泛型] 群組時,圖形上不會顯示此群組內部的循環相依性。尋找集線器
屬於前面 25% 最密集連接的節點
若要選取這些節點並隱藏圖形中的所有其他節點
以滑鼠右鍵按一下圖形,然後按一下 [顯示進階選取範圍]。
在 [選取範圍] 方塊中展開 [屬性],然後展開 [集線器]。
按一下 [集線器] 底下的 [True]。
如此隨即選取前面 25% 最密集連接的節點。
以滑鼠右鍵按一下圖形、指向 [選取範圍],然後按一下 [隱藏未選取項目]。
圖形隨即隱藏未選取的節點,而分析器則將新節點定義為集線器。
您也可將圖形配置切換為相依性矩陣檢視,以識別相依性密集的區域。 如需相依性矩陣檢視的詳細資訊,請參閱 HOW TO:瀏覽和巡覽圖形文件。
未參考的節點
沒有來自任何其他節點的參考
警告請先確認這其中每一種情況,才能斷定程式碼是否未使用。例如 XAML 相依性和執行階段相依性等特定相依性,就無法以靜態方式從程式碼中找出來。