Как узнать количество строк кода в проекте?
Дано: Проект, состоящий из множества файлов (например *.java и *.xml ). Задача: Подсчитать сколько строк кода во всех этих файлах. Исключая комменты и пустые строки. Вопрос: Пилить свой велосипед или я не первый кто этим интересуется?
Отслеживать
задан 26 янв 2016 в 19:32
69.8k 9 9 золотых знаков 66 66 серебряных знаков 123 123 бронзовых знака
А зачем это может понадобиться?
26 янв 2016 в 19:34
@PavelParshin, ну, например, для обоснования длительности внесения изменений в код. Или для хвастовства.
26 янв 2016 в 19:35
Ещё для оценки (очень приблизительной) прогресса в решении к-л (сферической) задачи (сферическим) кодером.
26 янв 2016 в 20:03
@PavelParshin, вот, на вики даже статья есть на тему зачем: Количество строк кода
27 янв 2016 в 11:45
Я вас понял, спасибо)
27 янв 2016 в 11:49
3 ответа 3
Сортировка: Сброс на вариант по умолчанию
Решение задачи, в общих чертах, должно выглядеть так:
- Собираем список всех файлов в проекте, пробежавшись по всем его папкам.
- Считываем файл и считаем в нём кол-во строк
- Регулярками (например) выкидываем из общего числа строк файла пустые строки и закомментированные строки (в зависимости от типа файла и ЯП, определяем как именно выглядит коммент)
И да, есть готовые решения. Например, вот на гитхабе: Count Lines of Code
Вкратце алгоритм такой (для масдая):
- Скачиваем *.exe .
- Запускаем его из командной строки
- Указываем папку с исходниками.
- Получаем результат подобного вида:

P.S.
У Count Lines of Code есть множество ограничений. Например «/*» тут n строк кода «*/» будут восприняты как n строк комментов. Также подсчёт идёт не логических строк кода, а непустых строк, содержащих то, что программа определяет как код, а не комменты.
Обратите внимание на приведённый в README проекта список альтернативных решений.
Cloc, посчитайте строки исходного кода в вашем проекте

В следующей статье мы рассмотрим Cloc. Если вы работаете разработчиком, вам может потребоваться поделиться своим прогрессом и статистика вашего кода с начальником или коллегами. Для таких случаев я лично знаю несколько доступных программ для анализа исходного кода. Одна из таких программ — Cloc.
Используя Cloc, мы сможем легко считать строки кода с разных языков программирования. Подсчитывает пустые строки, строки комментариев и строки исходного кода. В конце он показывает нам результат в упорядоченном формате столбцов. Cloc — это бесплатная кросс-платформенная утилита с открытым исходным кодом, полностью написанная на языке программирования Perl.
Посмотреть все разделы
Общие характеристики Cloc
Cloc предлагает нам различные характеристики для программы в этом стиле. К ним относятся следующие:
- Es Простота установки и использования. Не требует зависимостей.
- Это программа с открытым исходным кодом и мультиплатформенная.
- Мы сможем производить приводит к различным типам форматов, Такие как; обычный текст, SQL, JSON, XML, YAML или значения, разделенные запятыми.
- Он предлагает нам возможности использовать с git.
- Мы также сможем подсчитывать код в каталогах и подкаталогах.
- Также может использоваться с сжатые файлы, такие как tar, Zip-файлы, файлы Java .ear, и т.д.
Установка Cloc
утилита Cloc доступен в репозиториях по умолчанию большинства Unix-подобных операционных систем.. Таким образом, мы можем установить его с помощью диспетчера пакетов по умолчанию в Debian и Ubuntu, как показано ниже. Вам просто нужно открыть терминал (Ctrl + Alt + T) и ввести:

sudo apt install cloc
Вы также можете установить с помощью стороннего менеджера пакетов, например NPM.

npm install -g cloc
Подсчитайте строки исходного кода
Чтобы увидеть, как это работает, давайте рассмотрим простой пример. У меня есть программа, типовая »Привет мир‘написано на C. Ниже я покажу вам код, содержащий единственный файл:

к посчитать строки кода в программе hello.c, просто беги:

cloc hola.c
- Первый столбец покажет нам название языков программирования, из которых состоит код источник. Как видно из выходных данных выше, исходный код программы написан на языке программирования C.
- Во втором столбце мы увидим количество файлов на каждом языке программирования. В этом примере будет отображаться 1, потому что это количество файлов, содержащихся в коде.
- Третий столбец показывает общее количество пустых строк. В нашем примере кода нет пустых строк.
- В четвертом столбце мы увидим количество строк комментариевs.
- И последняя и пятая колонки показывают общее количество строк исходного кода без комментариев игральная кость.
Подсчитайте строки сжатых файлов, содержимое каталога и подкаталогов
Пример представляет собой всего лишь программу с семью строками кода, поэтому подсчет строк в коде не представляет большого труда. Если нас интересует подсчет больших вещей, взгляните на следующий пример:

cloc archivo.zip
Согласно предыдущему выводу, Cloc покажет нам результат сжатого файла за секунды с красивым форматом столбцов. Мы можем увидеть общий итог для каждого раздела в конце, что очень полезно, когда дело доходит до анализа исходного кода программы.
Cloc считает не только отдельные файлы исходного кода, но и файлы в каталогах и подкаталогах и т. Д.
Подсчитайте строки кода файлов, содержащихся в каталоге:
cloc dir/
Если нам нужно подсчитать строки кода файлов, расположенных в подкаталоге, мы напишем:
cloc dir/sub/directorio
Cloc помощь
Cloc может распознавать различные языки программирования. Чтобы увидеть ее полный список распознаваемых языков, бежать:
cloc --show-lang
Если вы хотите узнать больше о cloc, проверьте раздел помощи ввод в терминале (Ctrl + Alt + T):

cloc --help
Кто хочет, может проконсультироваться больше информации об этом приложении в вашем репозитории GitHub.
Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.
Полный путь к статье: Убунлог » Ubuntu » Cloc, посчитайте строки исходного кода в вашем проекте
Будьте первым, чтобы комментировать
Как узнать количество строк в файле Linux
Строки в файле Linux — последовательности символов, которые завершаются символом новой строки (‘\n’). Каждая строка обычно содержит текстовую информацию или код. Количество строк в файле может быть полезной метрикой для анализа файлов с текстовым содержимым, такими как журналы, конфигурационные файлы и исходный код программ. Команда wc в Linux может использоваться для подсчета количества строк в файле, а также для подсчета слов и символов.
Для чего используются строки
Строки в файле Linux используются для хранения текстовой информации или кода. Каждая строка представляет собой последовательность символов, которые могут быть прочитаны и обработаны программами и скриптами, работающими в Linux. Могут использоваться для хранения текстовых документов, конфигурационных файлов, журналов, исходного кода программ и т.д. В большинстве случаев, каждая строка представляет собой отдельный элемент информации, который может быть обработан программой независимо от других строк.

Например, в текстовом файле с программным кодом каждая строка может содержать инструкцию или выражение, которое должно быть обработано компилятором или интерпретатором языка программирования. В журнальных файлах каждая строка может содержать запись о событии или ошибке, которая может быть обработана программой для анализа и мониторинга работы системы. Строки в файлах Linux являются важным инструментом для обработки текстовой информации и манипулирования файлами в системе.
Как узнать количество строк в файле
Вы можете узнать количество строк в файле Linux, используя команду wc (word count). В терминале введите следующую команду:
Замените «filename» на имя файла, для которого вы хотите узнать количество строк.
Команда wc выведет информацию о количестве строк, слов и символов в указанном файле. Опция -l указывает wc вывести только количество строк в файле.
Например, чтобы узнать количество строк в файле «example.txt», выполните следующую команду:
Вы получите результат в виде числа, которое указывает на общее количество строк в файле «example.txt».
Количество строк кода (Lines of code)
Количество строк кода — часто используемая единица измерения объема и сложности программного проекта. Она применяется также для прогноза трудозатрат при планировании проекта и оценке сроков на стадии разработки, так и для оценки производительности труда после завершения проекта.
Физические и логические строки
Существуют две широко используемые методики подсчета строк: подсчет количества «физических» строк и подсчет количества «логических» строк. Следует учесть, что эти термины не являются точно определенными, и нюансы их значений могут быть различны в конкретных случаях. В общем случае, количество «физических» строк обычно равно количеству строк исходных текстов программы, включая комментарии, и, возможно, даже пустые строки. При подсчете «логических строк» делается попытка подсчета исполнимых выражений (операторов, функций и т.д.), однако определения таких выражений отличаются у различных языков программирования.
Отсюда вытекают плюсы и минусы обоих подходов: количество «физических» строк проще определить, но оно сильно зависит от стиля кодирования и форматирования исходного текста; «логические» строки не имеют такого недостатка, зато их количество довольно тяжело подсчитать.
Пример расчета
Рассмотрим следующий код:
for (i=0; i
В данном случае получается, что в коде содержится 2 физические строки кода, 2 логические строки кода (оператор цикла for и оператор вызова функции printf) и 1 строка комментария.
Если поменять форматирование кода:
for (i=0; i //How many LOCs is here?
то получим уже 5 физических строк кода, но при этом останутся те же 2 логических строки кода и 1 строка комментария.
Количество строк и характеристики программы
Количество строк кода, очевидно, ассоциируется со сложностью системы - чем больше кода, тем она сложнее. Для примера, ядро операционной системы Windows NT 3.1 оценивается в 4-5 миллионов строк кода, а уже Windows XP - 45 миллионов. Количество строк кода в ядре Linux версии 2.6 равняется 5.6 миллионов, а версии 3.6 - уже 15.9 миллионов.
А вот с качеством и надежностью все не так однозначно. В реальном мире все программы содержат ошибки, и скорее всего, чем больше программа, тем больше ошибок. Это довольно очевидное утверждения, если ввести коэффициент "количество ошибок/количество кода" - даже если он будет постоянным, абсолютное число ошибок будет возрастать вместе с ростом программы. А интуиция подсказывает, что при увеличении кода число будет увеличиваться из-за возрастающей сложностью системы (Э. Таненбаум). И не только интуиция (см. график "типичная плотность ошибок"). На подобных соображениях основываются такие принципы разработки, как KISS, DRY, и SOLID. Также можно привести красноречивую цитату классика Э. Дейкстры - "простота - основа надежности", а также отрывок его работы "Плоды непонимания":
. Еще некоторые говорят о программировании как о производственном процессе и измеряют "производительность программиста", основываясь на "произведенном количестве строк кода". Таким образом, они подходят к этому числу с неправильной стороны: всегда нужно понимать его как "затраченное количество строк кода".
Итог
Таким образом, с увеличением количества строк кода программы растет её сложность, и как следствие, количество ошибок. К сожалению (а может, и к счастью), технический прогресс неизбежен и системы будут продолжать усложняться, требуя все больше ресурсов для поиска и исправления ошибок (и, разумеется, в процессе исправления также будут добавляться и новые ошибки), так что использование методики статического анализа и специальных инструментов может помочь в уменьшении количества ошибок и увеличении эффективности всего процесса разработки.
Библиографический список
- Э. Дейкстра. Плоды непонимания / Fruits of Misunderstanding.
- Э. Таненбаум. Современные операционные системы.
- Wikipedia. Source lines of code.
- David A. Wheeler. More Than a Gigabuck: Estimating GNU/Linux's Size.