2008-10-09 2 views
5

Что такое хорошее отношение для числа Классы к строкам кода для объектно-ориентированного языка (скажем, C++, C#, Java и их симпатии)?Что такое хорошее отношение класса к строкам кода для объектно-ориентированных языков?

Многие люди, в том числе менеджеры, как и традиционная метка LOC (линии кода), чтобы измерить сложность программного обеспечения, в то время как многие отвержденные объектно-ориентированными разработчиками скажут, что LOC бесполезен для его класса. И лично я считаю, что Классы могут быть более разумной метрикой сложности, но что без метрики LOC трудно оценить реальную сложность этих классов (количество полтергейстов и богов там).

Значит, кто-нибудь знает, что может быть здоровым соотношением для довольно хорошо закодированного программного обеспечения?

Редактировать: В данном конкретном случае я искал соотношение, чтобы определить оценку шаров, сколько рефакторинга может потребоваться для очистки кода.

Редактировать: Кто-нибудь знает о коэффициентах для некоторых крупных проектов OSS, таких как Firefox, Apache, Webkit и т. Д. ...?

+0

Лучшая метрика для LOC - это количество блоков и дуг всего и за класс. Это дает лучшую оценку сложности кода. Тем не менее, вам нужны хорошие инструменты для покрытия кода. – 2008-10-09 06:05:05

ответ

7

LOC или NLOCs на самом деле не являются хорошим показателем качества или здоровья вашего кода. Я рекомендую использовать статический анализ NDepend (для вас .net peeps), чтобы узнать, насколько хорошо ваше решение архивировано.

Я нахожу, что LOC - хорошее измерение только на уровне метода. То есть, мне вообще нравятся мои методы, чтобы поместиться на экране (небольшие шрифты). Другие показатели, такие как Cyclomatic Complexity и Code Coverage (для вас TDDers) в дополнение к вашим модульным тестам, могут дать лучшее представление о том, насколько здоровой ваша кодовая база.

+0

Удивительно! Этот инструмент сам по себе переносит баланс на .Net! Однако, к сожалению, нет .Net для случая, на который я смотрю. – 2008-10-09 06:25:57

2

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

Большинство людей, которые не изучили объектно-ориентированные принципы проектирования, будут иметь классы с большим количеством строк кода. Люди с большим количеством объектно-ориентированного опыта будут иметь тенденцию иметь меньше строк кода для каждого класса, но будут иметь гораздо больше классов. И, конечно, оба будут жаловаться друг на друга :-).

+0

Я полностью согласен с вашим наблюдением, поэтому я ищу хорошие хорошие отношения для здорового проекта – 2008-10-09 06:27:50

2

Если вы действительно ищете правильное правило, я бы сказал, что любой класс, который не может быть распечатан на одном листе бумаги в читаемом разрешении, возможно, слишком длинный и должен быть реорганизован. Тогда ваш целевой знак может быть порядка 100-200 строк, но, на мой взгляд, количество факторов страниц немного легче справиться.

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

Смежные вопросы