Loi de Déméter outil de recherche de violation? [fermé]
-
27-09-2019 - |
Question
Quelqu'un sait-il d'un outil que je pourrais utiliser avec une application C # pour trouver des violations possibles du droit Demeter? Je sais que cela donnerait beaucoup de faux positifs, mais je pense qu'il pourrait encore être utile. Surtout pendant le processus de la conception.
La solution
Si vous êtes à la recherche d'something.somethingelse.violation
, vous pouvez utiliser Visual Studio.
Dans la boîte de dialogue Rechercher, cochez la case en bas « Utiliser » et sélectionnez « expressions régulières ».
Pas très robuste, mais vous pouvez utiliser <[:a_]+\.([:a_]+\.)+[:a_]+
pour trouver le schéma ci-dessus.
Un meilleur outil serait grep
ou similaire sur le répertoire de solution, de sorte que vous pouvez utiliser les options de regex plus puissants comme lookbehind négatif, ce qui vous permettrait d'exclure des choses comme directives using
et déclarations de namespace
.
Vous pouvez probablement très rapidement écrire une application .NET qui récursivité un répertoire donné et la recherche .cs et / ou des fichiers .vb pour même, en utilisant Regex .NET, qui a lookarounds, mais bien sûr l'avantage d'utiliser VS est que vous restez à droite dans l'éditeur de code source.