Comment : explorer du code avec des graphiques de dépendance
Dans Visual Studio Ultimate, utilisez les graphiques de dépendance pour en savoir plus sur l'organisation et les relations au sein du code existant. Ces graphiques représentent les structures sous forme de nœuds et les relations sous forme de liens, qui sont matérialisés par des flèches reliant les nœuds. Pour générer un graphique, consultez Comment : générer des graphiques de dépendance pour le code .NET.
L'exemple suivant montre comment le graphique représente les structures et les relations sous forme de nœuds et de liens :
Nœuds et liens affichés sur un graphique
L'exemple suivant montre comment le graphique représente les structures et les relations contenant-contenu sous forme de groupes :
Nœuds groupés affichés sur un graphique
Avertissement
Un graphique affiche uniquement les dépendances du code qui est correctement généré. Les composants et leur contenu n'apparaîtront pas s'ils provoquent des erreurs de build. Par conséquent, assurez-vous qu'un composant est réellement généré et qu'il a des dépendances avant de prendre des décisions architecturales basées sur le graphique.
Dans cette rubrique
Exploration des dépendances sur le graphique
Recherche des zones de complexité
Exploration des dépendances sur le graphique
Les dépendances sont représentées sur le graphique par les genres de liens suivants :
Un lien individuel représente une dépendance unique entre deux nœuds.
Un lien global représente toutes les dépendances orientées dans la même direction entre deux groupes.
Un lien entre des groupes correspond simplement à un lien entre deux nœuds de groupes différents.
Notes
Par défaut, le graphique affiche les liens entre les groupes uniquement pour les nœuds sélectionnés. Pour afficher ces liens en permanence, dans la barre d'outils du graphique, cliquez sur la liste déroulante en regard du bouton Modifier l'affichage des liens entre les groupes sur le graphique, puis sur Afficher tous les liens entre les groupes. Si la barre d'outils du graphique n'est pas visible, dans le menu Affichage, pointez sur Barres d'outils, puis cliquez sur Graphique orienté.
Utilisez les tâches suivantes pour explorer les dépendances qui vous intéressent :
Pour |
Procédez comme suit |
---|---|
Afficher une liste des dépendances représentées par un lien |
|
Rechercher un nœud par nom Utilisez cette tâche pour effectuer des recherches dans plusieurs niveaux de nœuds groupés. |
|
Rechercher la source ou la cible d'un lien Utilisez cette méthode lorsque vous avez des difficultés à identifier la source ou la cible d'un lien spécifique en raison d'un trop grand nombre de liens. |
|
Examiner les dépendances des nœuds de différents groupes |
|
Examiner les dépendances représentées par un lien global
Remarque
Cette méthode fonctionne uniquement lorsque chaque extrémité du lien est connectée à un assembly.S'il n'existe pas d'informations d'assembly, vous ne pouvez pas créer de graphique.
|
|
Recherche des zones de complexité
Utilisez un graphique de dépendance pour identifier des zones de code que vous pouvez éventuellement améliorer. Un graphique de dépendance correct doit afficher un nombre minimal de dépendances. Par exemple, vous pouvez :
Rechercher du code comportant des boucles ou des dépendances circulaires.
Examinez ces zones pour déterminer si vous pouvez les simplifier. Déterminez si vous pouvez arrêter ces cycles.
Rechercher du code ayant trop de dépendances.
Examinez ces zones pour déterminer si elles exécutent trop de fonctions ou pour évaluer l'impact engendré par leur modification. Pour simplifier la gestion, la modification, le test et la réutilisation du code, déterminez si vous pouvez refactoriser ces zones de façon à ce qu'elles soient définies plus clairement ou fusionner du code exécutant des fonctions similaires.
Rechercher du code n'ayant pas de dépendances.
Examinez ces zones pour déterminer si elles sont nécessaires ou si vous devez supprimer ce code.
Vous pouvez exécuter des analyseurs spécifiques sur ces graphiques pour faciliter l'exécution de ces tâches. Ces analyseurs continuent à fonctionner après avoir été appliqués. Si vous modifiez le graphique, tous les analyseurs appliqués retraiteront automatiquement le graphique mis à jour. Pour arrêter l'exécution d'un analyseur, cliquez avec le bouton droit sur celui-ci dans la zone Légende, puis cliquez sur Supprimer.
Notes
Si vous disposez d'un graphique très volumineux, l'exécution d'un analyseur peut provoquer une exception de mémoire insuffisante. Si cela se produit, modifiez le graphique de façon à réduire sa portée, ou bien générez un graphique moins volumineux, puis exécutez l'analyseur.
Pour rechercher des zones de complexité dans le code
Vérifiez que la disposition du graphique est définie sous forme d'arborescence ou de clusters rapides.
Pour plus d'informations, consultez Comment : parcourir des documents de graphique et y accéder.
Cliquez avec le bouton droit sur le graphique, pointez sur Analyseurs, puis cliquez sur l'un des éléments suivants :
Analyseur
Pour identifier les nœuds qui
Référence circulaire
Ont des dépendances circulaires les uns par rapport aux autres
RemarqueLes dépendances circulaires au sein du groupe Génériques ne s'affichent pas sur le graphique lorsque vous développez le groupe.Trouver les concentrateurs
Font partie des 25 % de nœuds ayant le plus de connexions
Pour sélectionner ces nœuds et masquer tous les autres sur le graphique
Cliquez avec le bouton droit sur le graphique, puis cliquez sur Afficher la sélection avancée.
Dans la zone Sélection, développez Propriétés, puis Concentrateur.
Sous Concentrateur, cliquez sur True.
Les 25 % de nœuds ayant le plus de connexions sont sélectionnés.
Cliquez avec le bouton droit sur le graphique, pointez sur Sélection, puis cliquez sur Masquer les éléments non sélectionnés.
Le graphique masque les nœuds non sélectionnés et l'analyseur identifie les nouveaux nœuds en tant que concentrateurs.
Vous pouvez également identifier des zones denses de dépendances en changeant la disposition du graphique de façon à afficher la matrice des dépendances. Pour plus d'informations sur l'affichage de la matrice des dépendances, consultez Comment : parcourir des documents de graphique et y accéder.
Nœuds non référencés
N'ont pas de référence provenant d'autres nœuds.
AttentionÉtudiez chacun de ces cas de figure avant de considérer que le code n'est pas utilisé.Certaines dépendances, telles que les dépendances XAML et d'exécution, ne peuvent pas être détectées statiquement dans le code.
Voir aussi
Concepts
Comment : générer des graphiques de dépendance pour le code .NET
Autres ressources
Comment : parcourir des documents de graphique et y accéder
Comment : modifier et personnaliser des documents de graphique