2010-08-11 2 views
3

Quelqu'un connaît-il un outil que je pourrais utiliser avec une application C# pour trouver des violations possibles de la loi de Demeter? Je sais que cela donnerait beaucoup de faux positifs, mais je pense que cela pourrait encore être utile. Surtout au début du processus de conception.Loi de Demeter violation de l'outil de recherche?

+0

définition wiki de la loi de Demeter: http://en.wikipedia.org/wiki/Law_of_Demeter – Fosco

+1

* La loi de Demeter * devrait être * La règle de base de Demeter * imho. . . –

+0

Je ne connais aucun de ces outils, mais une bonne approche de .NET serait de le baser sur la réflexion et l'IL afin qu'il puisse fonctionner pour n'importe quel langage .NET. – TechNeilogy

Répondre

4

Si vous recherchez simplement something.somethingelse.violation, vous pouvez utiliser Visual Studio.

Dans la boîte de dialogue de recherche, cochez la case en bas de "Utiliser" et sélectionnez "Expressions régulières".

Pas très robuste, mais vous pouvez utiliser <[:a_]+\.([:a_]+\.)+[:a_]+ pour trouver le modèle 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 using directives et namespace déclarations.

grep for Windows

Vous pourriez probablement très rapidement écrire une application .NET qui récursivité un répertoire donné et recherche .cs et/ou fichiers .vb pour même, en utilisant .NET Regex, qui a lookarounds, mais bien sûr L'avantage d'utiliser VS est que vous restez dans l'éditeur de code source.

+0

Hmm, je viens de trouver 5 'points' dans mon programme ... selon [six degrés de séparation] (https://en.wikipedia.org/wiki/Six_degrees_of_separation), je pense que cela signifie qu'il peut accéder à n'importe quoi dans mon programme droit? : P –

Questions connexes