Перейти к содержимому

Как посчитать количество строк в проекте c

  • автор:

Как узнать количество строк кода в проекте?

Дано: Проект, состоящий из множества файлов (например *.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

Сортировка: Сброс на вариант по умолчанию

Решение задачи, в общих чертах, должно выглядеть так:

  1. Собираем список всех файлов в проекте, пробежавшись по всем его папкам.
  2. Считываем файл и считаем в нём кол-во строк
  3. Регулярками (например) выкидываем из общего числа строк файла пустые строки и закомментированные строки (в зависимости от типа файла и ЯП, определяем как именно выглядит коммент)

И да, есть готовые решения. Например, вот на гитхабе: Count Lines of Code

Вкратце алгоритм такой (для масдая):

  1. Скачиваем *.exe .
  2. Запускаем его из командной строки
  3. Указываем папку с исходниками.
  4. Получаем результат подобного вида:

введите сюда описание изображения

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) и ввести:

установить apt cloc

sudo apt install cloc

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

npm установить cloc

npm install -g cloc

Подсчитайте строки исходного кода

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

cloc файл c пример

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

подсчитать строки из файлов cloc c

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

Подсчитайте строки сжатых файлов, содержимое каталога и подкаталогов

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

cloc большой файл

cloc archivo.zip

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

Cloc считает не только отдельные файлы исходного кода, но и файлы в каталогах и подкаталогах и т. Д.

Подсчитайте строки кода файлов, содержащихся в каталоге:

cloc dir/

Если нам нужно подсчитать строки кода файлов, расположенных в подкаталоге, мы напишем:

cloc dir/sub/directorio

Cloc помощь

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

cloc --show-lang

Если вы хотите узнать больше о cloc, проверьте раздел помощи ввод в терминале (Ctrl + Alt + T):

помочь Cloc

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.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *