Я не думаю, что метрики кода (иногда называемые метриками программного обеспечения ) предоставляют ценные данные с точки зрения того, где вы можете улучшить.
С метриками кода приятно видеть, сколько кода вы пишете за час и т. Д., Но помимо всего прочего они говорят вам о качестве написанного кода, его документации и охвате кода. Это почти недельная попытка измерить там, где вы не можете измерить.
Метрики кода также отличают программистов, которые решают более сложные задачи, потому что им очевидно, удалось кодировать меньше. Тем не менее, они решили сложные проблемы, и младший программист, извлекающий много дерьмового кода , выглядит хорошо.
Другим примером использования метрик является очень популярный Ohloh . Они используют метрики, чтобы установить цену в проекте с открытым исходным кодом (используя количество строк и т. Д.), Что само по себе является попыткой, которая ошибочна до чертиков - как вы можете себе представить.
Сказав все, что статья в Википедии дает некоторое общее представление о теме, извините, что не отвечаю на ваш вопрос более благоприятным способом с действительно отличным сайтом или книгой, но держу пари, что вы поняли, что я не очень большой поклонник. :)
Что-то, что можно использовать, чтобы помочь вам улучшить, - это непрерывная интеграция и соблюдение каких-то стандартов, когда речь идет о коде, документации и так далее. Вот как вы можете улучшить. Метрики - просто конфетка для встреч - «смотрите, мы уже так много закодировали».
Update
Хорошо, моя точка зрения заключается в том, что эфферентная связь или даже цикломатическая сложность могут указывать на то, что что-то не так - хотя это не должно быть неправильно. Это может быть индикатором для рефакторинга класса, но нет практического правила, которое сообщит вам, когда.
ИМХО такое правило, как 500+ строк кода, рефакторинг или DRY принципал более применимо в большинстве случаев. Иногда это так просто.
Я даю вам так много, что, поскольку цикломатическая сложность отражена в блок-схеме, она может открыть глаза. Но опять же, используйте осторожно.