Понимание метрик кода - PullRequest
       5

Понимание метрик кода

9 голосов
/ 01 октября 2008

Я недавно установил Eclipse Metrics Plugin и экспортировал данные для одного из наших проектов.

Это очень хорошо иметь эти прекрасные графики, но мне бы очень хотелось глубже понять, что они все значат. Определения метрик позволяют понять, что они на самом деле означают.

Кто-нибудь знает какие-либо хорошие ресурсы, книги, веб-сайты и т. Д., Которые могут помочь мне лучше понять, что означают все данные, и дать представление о том, как улучшить код в случае необходимости?

Меня интересуют такие вещи, как Efferent Coupling, Cyclomatic Complexity и т. Д., А не строки кода или строки для метода.

Ответы [ 2 ]

4 голосов
/ 01 октября 2008

Я не думаю, что метрики кода (иногда называемые метриками программного обеспечения ) предоставляют ценные данные с точки зрения того, где вы можете улучшить.

С метриками кода приятно видеть, сколько кода вы пишете за час и т. Д., Но помимо всего прочего они говорят вам о качестве написанного кода, его документации и охвате кода. Это почти недельная попытка измерить там, где вы не можете измерить.

Метрики кода также отличают программистов, которые решают более сложные задачи, потому что им очевидно, удалось кодировать меньше. Тем не менее, они решили сложные проблемы, и младший программист, извлекающий много дерьмового кода , выглядит хорошо.

Другим примером использования метрик является очень популярный Ohloh . Они используют метрики, чтобы установить цену в проекте с открытым исходным кодом (используя количество строк и т. Д.), Что само по себе является попыткой, которая ошибочна до чертиков - как вы можете себе представить.

Сказав все, что статья в Википедии дает некоторое общее представление о теме, извините, что не отвечаю на ваш вопрос более благоприятным способом с действительно отличным сайтом или книгой, но держу пари, что вы поняли, что я не очень большой поклонник. :)

Что-то, что можно использовать, чтобы помочь вам улучшить, - это непрерывная интеграция и соблюдение каких-то стандартов, когда речь идет о коде, документации и так далее. Вот как вы можете улучшить. Метрики - просто конфетка для встреч - «смотрите, мы уже так много закодировали».

Update

Хорошо, моя точка зрения заключается в том, что эфферентная связь или даже цикломатическая сложность могут указывать на то, что что-то не так - хотя это не должно быть неправильно. Это может быть индикатором для рефакторинга класса, но нет практического правила, которое сообщит вам, когда.

ИМХО такое правило, как 500+ строк кода, рефакторинг или DRY принципал более применимо в большинстве случаев. Иногда это так просто.

Я даю вам так много, что, поскольку цикломатическая сложность отражена в блок-схеме, она может открыть глаза. Но опять же, используйте осторожно.

1 голос
/ 15 декабря 2011

По моему мнению, метрики - отличный способ найти болевые точки в вашей кодовой базе. Они также очень полезны, чтобы показать вашему менеджеру, почему вы должны тратить время на его улучшение.

Это сообщение, которое я написал об этом: http://blog.jorgef.net/2011/12/metrics-in-brownfield-applications.html

Надеюсь, это поможет

...