Что такое строка кода?

W3C объясняет разбор в форме псевдорежима: W3C Link

Следуйте за ссылками на QName, S и Attribute, чтобы получить более четкое картина. Исходя из этого, вы можете создать довольно хорошее регулярное выражение для обработки таких вещей, как снятие тегов.

13
задан casperOne 5 April 2012 в 13:39
поделиться

18 ответов

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

Это может заставить Вас спросить, "Почему затем я когда-либо использовал бы LOC в качестве меры по производительности?" и ответ, потому что действительно не имеет значения, как Вы считаете строку кода, пока Вы последовательно считаете их, можно получить некоторое представление об общем размере проекта относительно других.

23
ответ дан Craig H 6 April 2012 в 00:39
поделиться

Я согласовываю w/принятый ответ Craig H, однако я хотел бы добавить, что в школе мне преподавали, что пробел, комментарии и объявления не должны считаться как "строки кода" с точки зрения измерения строк кода, произведенных программистом в целях производительности - т.е. правило Ol’ “15-lines-per-day”.

0
ответ дан Booji Boy 6 April 2012 в 00:39
поделиться

Я соглашаюсь с сообщениями, в которых говорится, что об этом сообщают много путей и не является важной метрикой. Посмотрите этот ever-hear-of-developers-getting-paid-per-line-of-code.

0
ответ дан Community 6 April 2012 в 00:39
поделиться

1 строка = 4 секунды чтения. Если это берет больше, чем это для выяснения то, что я говорю относительно той строки, строка слишком долго.

2
ответ дан 6 April 2012 в 00:39
поделиться

"Строки кода" должны включать что-либо, что необходимо поддержать. Это включает комментарии, но исключает пробел.

, Если Вы используете это в качестве метрики производительности, удостоверьтесь, что Вы делаете разумные сравнения. Строка C++ не является тем же как строкой Ruby.

2
ответ дан Bill the Lizard 6 April 2012 в 00:39
поделиться

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

Однако это действительно обеспечивает определенное понятие сложности при взгляде в идее порядка величины. Программа с 10000 строками намного более сложна, чем программа с 100 строками.

преимущество LOC состоит в том, что туалет-l возвращает его, и нет никакой реальной причудливости, вовлеченной в понимание или вычисление его, в отличие от многих другая метрика программного обеспечения.

1
ответ дан Paul Nathan 6 April 2012 в 00:39
поделиться

Я думаю о нем как о единственном processable операторе. Например

(1 строка)

Dim obj as Object

(5 строк)

If _amount > 0 Then
  _amount += 5
Else
  _amount -= 5
End If
0
ответ дан StingyJack 6 April 2012 в 00:39
поделиться

Понятие LOC является попыткой определить количество объема кода. Как указано в других ответах, не имеет значения, что Вы конкретно называете строкой кода, пока Вы последовательны. Интуитивно, кажется, что 10 программ строки, меньших, чем 100 программ строки, которые меньше, чем 1 000 программ строки и так далее. Вы ожидали бы, что требуется меньше времени, чтобы создать, deubg, и поддержать 100 программ строки, чем 1 000 программ строки. Неофициально, по крайней мере, можно использовать LOC для предоставления грубого, сопереживают объему работы, требуемому создать, отладить, и поддержать программу определенного размера.

, Конечно, существуют места, где это не держит. Например, сложный алгоритм, представленный в 1 000 строк, может быть намного более трудно разработать, чем, скажем, простая программа базы данных, которая использует 2 500 строк.

Так, LOC является крупномодульной мерой объема кода, который позволяет менеджерам получить разумный understading размера проблемы.

1
ответ дан mxg 6 April 2012 в 00:39
поделиться

Необходимо думать "о строках кода , потратил ", не "строки кода произвели ".

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

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

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

1
ответ дан TM. 6 April 2012 в 00:39
поделиться
  1. LOCphy: физически строки
  2. LOCbl: Blanklines Kommentarblocks werden Альс Kommentarzeile gezГ¤hlt
  3. LOCpro: строки программирования (объявления, определения, директивы & код)
  4. LOCcom: строки комментариев

Много доступных инструментов дают информацию процента заполненных строк и так далее.

Вы просто должны посмотреть на него, но не только рассчитываете на него.

LOC растет в широком масштабе на запуске проекта, и он уменьшается часто после обзоров ;)

0
ответ дан berlindev 6 April 2012 в 00:39
поделиться

Если Вы будете использовать LOC в качестве меры производительности, то Вы внезапно найдете, что Ваши программисты, пишущие намного больше verbosely, "играют система". Это - глупая мера, и только глупые люди используют его для чего-то большего чем престижа.

3
ответ дан Paul Tomblin 6 April 2012 в 00:39
поделиться

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

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

4
ответ дан RHSeeger 6 April 2012 в 00:39
поделиться

Безотносительно "туалет-l" возвраты является моим числом.

3
ответ дан Brian Knoblauch 6 April 2012 в 00:39
поделиться

Взгляните на Статья Википедии, особенно" Имеющий размеры SLOC" раздел:

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

Логические меры по SLOC пытаются измерить количество "операторов", но их определенные определения связываются с определенными языками программирования (одной простой логической мерой по SLOC для подобных C языков программирования является количество завершающих оператор точек с запятой). Намного легче создать инструменты, которые измеряют физический SLOC, и физические определения SLOC легче объяснить. Однако физические меры по SLOC чувствительны к логически несоответствующему форматированию и разрабатывают конвенции, в то время как логичный SLOC менее чувствителен к конвенциям стиля и форматированию. К сожалению, меры SLOC часто указываются, не давая их определение, и логический SLOC может часто существенно отличаться от физического SLOC.

Считают этот отрывок кода C как пример неоднозначности встреченным при определении SLOC:

for (i=0; i<100; ++i) printf("hello");   /* How many lines of code is this? */

В этом примере мы имеем:

  • 1 Физическая линия LOC
  • 2 Кода Логические Строки кода lLOC (для оператора и printf оператора)
  • 1 Строка комментария

[...]

13
ответ дан xsl 6 April 2012 в 00:39
поделиться

Нет никакого правильного ответа.

Для неофициальных оценок, я использую туалет-l.

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

Так:

int i = 7;                  # one statement terminator; one (1) statement
if (r == 9)                # count the if as one (1) statement
  output("Yes");      # one statement terminator; one (1) statement; total (2) for the if
while (n <= 14) {    # count the while as one (1) statement
  output("n = ", n);  # one statement terminator; one (1) statement
  do_something();   # one statement terminator; one (1) statement
  n++                       # count this one, one statement (1), even though it doesn't need a statement terminator in some languages
}                              # brace doesn't count; total (4) for the while

, Если бы я делал его в Схеме или Lisp, я считал бы выражения.

, Поскольку другие сказали, что имеет значение, больше всего то, что Ваше количество последовательно. Также имеет значение, для чего Вы используете это. Если Вы просто хотите сообщить потенциально новому найму, насколько большой Ваш проект, используйте туалет-l. Если Вы желаете сделать планирование и оценку, то Вы могли бы хотеть стать более формальными. Вы не должны ни при каких обстоятельствах использовать LOC для базирования компенсации программиста на.

1
ответ дан skiphoppy 6 April 2012 в 00:39
поделиться

Я сказал бы

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

я также кротко предположил бы, что любой мерой по производительности, которая на самом деле полагается на значение LoC, является койка :)

8
ответ дан Alnitak 6 April 2012 в 00:39
поделиться

Я использую wc -l для быстрой оценки сложности рабочей области. Однако как метрика производительности LOC ХУДШЕЕ . Я обычно считаю это очень продуктивным днем, если мой, если количество LOC понижается.

0
ответ дан Chris Nava 6 April 2012 в 00:39
поделиться

я знаю, что некоторые люди используют LoC в качестве меры по производительности

, Вы могли сказать мне, который они так, я случайно не работаю с (или еще хуже, для ) их?

, Если я могу реализовать в 1400 строки с помощью Haskell, что я мог также реализовать в 2 800 строках с помощью C, действительно ли я более продуктивен в C или Haskell? Который собирается занять время? Который будет иметь больше ошибок (подсказка: это линейно в количестве LOC)?

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

Однако как Вы считаете LOCs? Простой, используйте wc -l. Почему это - правильный инструмент? Ну, Вы, вероятно, не заботитесь ни о каком конкретном числе, но об общих общих тенденциях (восстановление работоспособности или вниз, и сколько), об отдельных тенденциях (восстановление работоспособности или вниз, изменяя направление как быстро...) и о в значительной степени чем-либо кроме просто номера 82,763.

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

количество, сколько раз '\n' происходит. Другие интересные символы для подсчета могли бы быть ';', '{' и '/'.

0
ответ дан Jonas Kölker 6 April 2012 в 00:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: