Когда, если вообще, "число строк кода" является полезной метрикой? - PullRequest
50 голосов
/ 08 октября 2008

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

  • Я пишу бессмысленные строки кода за день.
  • У меня есть x строк кода.
  • Windows - это миллион строк кода.

Вопрос: Когда «строки кода» полезны?

ps: обратите внимание, что когда делаются такие заявления, звучит «больше, тем лучше».

Ответы [ 45 ]

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

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

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

Хорошим примером использования строк кода является метрика: количество ошибок в строках кода. Это может дать вам представление о том, сколько ошибок вы ожидаете найти в своем проекте. В моей организации обычно около 20 ошибок на 1000 строк кода. Это означает, что если мы готовы отгрузить продукт, имеющий 100 000 строк кода, и наша база данных ошибок показывает, что мы нашли 50 ошибок, то, вероятно, нам следует провести еще несколько тестирований. Если у нас есть 20 ошибок на 1000 строк кода, то мы, вероятно, приближаемся к качеству, которое мы обычно достигаем.

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

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

Ответ: когда можно говорить об отрицательных строках кода. Как в: «Сегодня я удалил 40 посторонних строк кода, и программа все еще работает так же, как и раньше».

3 голосов
/ 08 октября 2008

Это полезно во многих отношениях.

Я не помню точного #, но у Microsoft был веб-каст, о котором говорили для каждой X строк кода, в среднем существует y ошибок. Вы можете взять это утверждение и использовать его для определения базовых показателей для нескольких вещей.

  • Насколько хорошо рецензент выполняет свою работу.
  • оценка уровня квалификации 2 сотрудников путем сравнения коэффициентов ошибок по нескольким проектам.

Еще одна вещь, на которую мы смотрим: почему столько строк? Часто, когда новый программист оказывается в затруднительном положении, он просто копирует и вставляет куски кода вместо того, чтобы создавать функции и инкапсулировать.


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

3 голосов
/ 08 октября 2008

Мне кажется, что существует ограниченное количество строк кода, на которые я могу сослаться с головы на голову из любого проекта. Предел, вероятно, очень похож на среднего программиста. Поэтому, если вы знаете, что ваш проект содержит 2 миллиона строк кода, и ваши программисты могут понять, связана ли ошибка с хорошо известными строками кода 5K, то вы знаете, что вам нужно нанять 400 программисты для вашей базы кода должны быть хорошо защищены от чьей-то памяти.

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

Обратите внимание, я составил эти цифры.

3 голосов
/ 08 октября 2008

Я бы согласился, что взятие общего количества строк кода в проекте является одним из способов измерения сложности .

Это, конечно, не единственная мера сложности. Например, отладка запутанного сценария Perl из 100 строк сильно отличается от отладки Java-проекта из 5000 строк с шаблонами комментариев.

Но, не глядя на исходный код, вы, как правило, думаете, что большее количество строк кода является более сложным, точно так же, как вы можете подумать, что архив с исходным кодом размером 10 МБ сложнее, чем архив с исходным кодом размером 15 КБ.

2 голосов
/ 08 октября 2008

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

IE, программа на 500 строк не так сложна, как на 5000 строк. Теперь вам нужно задать другие вопросы, чтобы лучше рассмотреть программу ... но теперь у вас есть показатель.

2 голосов
/ 09 октября 2008

Строки кода полезно знать, когда вам интересно, становится ли файл кода слишком большим. Хммм ... Этот файл теперь 5000 строк кода. Может быть, я должен рефакторинг это.

2 голосов
/ 08 октября 2008

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

2 голосов
/ 04 декабря 2008

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

2 голосов
/ 18 декабря 2008

Я написал 2 сообщения в блоге, отделяя все за и против подсчета строк кода (LoC):


Как вы рассчитываете количество строк кода (LOC)? : Идея состоит в том, чтобы объяснить, что вам нужно посчитать логическое число строк кода вместо физического подсчета. Для этого вы можете использовать такие инструменты, как, например, NDepend .


Почему полезно подсчитывать количество строк кода (LOC)? : Идея состоит в том, что LoC никогда не следует использовать для измерения производительности, а для оценки покрытия тестов и оценки срока исполнения программного обеспечения.

...