Закон о нарушении закона Деметры?
Кто-нибудь знает инструмент, который я мог бы использовать с приложением C#, чтобы найти возможные нарушения закона Деметры? Я знаю, что это даст много ложных срабатываний, но я думаю, что это все еще может быть полезно. Особенно в начале процесса проектирования.
1 ответ
Если вы просто ищете something.somethingelse.violation
, то вы можете использовать Visual Studio.
В диалоговом окне поиска установите флажок внизу "Использовать" и выберите "Регулярные выражения".
Не очень надежный, но вы можете использовать <[:a_]+\.([:a_]+\.)+[:a_]+
чтобы найти шаблон выше.
Лучшим инструментом будет grep
или аналогичные в каталоге решений, так что вы можете использовать более мощные параметры регулярных выражений, такие как негативный lookbehind, которые позволят вам исключить такие вещи, как using
директивы и namespace
деклараций.
Вероятно, вы могли бы очень быстро написать приложение.NET, которое получило бы заданный каталог и искать в них файлы.cs и / или.vb, используя.NET Regex, который имеет обходные пути, но, конечно, преимущество использования VS заключается в том, что вы остаетесь прямо в редакторе исходного кода.