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

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

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

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

Меня интересуют такие вещи, как эфферентная связь, цикломатическая сложность и т. Д., А не строки кода или строки на метод.


person Feet    schedule 30.09.2008    source источник


Ответы (2)


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

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

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

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

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

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

Обновить

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

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

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

person Till    schedule 01.10.2008
comment
Возможно, я использовал неправильный термин метрики. Меня не интересуют строки кода или кода для каждого типа измерений метода, а скорее некоторые из более сложных измерений, которые он имеет. Цикломатическая сложность, эфферентное сцепление и т. Д. Ваше мнение, однако, должным образом отмечено. - person Feet; 01.10.2008
comment
Я расширил свой ответ и ответил на ваши вопросы. :) С надеждой! - person Till; 01.10.2008

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

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

Я надеюсь, что это помогает

person Jorge Fioranelli    schedule 15.12.2011