Вопрос

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

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

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

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

Это было полезно?

Решение

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

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

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

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

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

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

Обновить

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

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

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

Другие советы

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top