Cuenta las líneas de código que has escrito con cloc

cloc es una herramienta para sistemas Linux y Mac OS X que se utiliza para contar líneas de código en diferentes lenguajes de programación.

Curso de Vagrant

En este curso aprenderás a utilizar Vagrant para poder crear tus propias máquinas virtuales con diferentes sistemas operativos en cuestión de minutos. Con Vagrant mejorarás tu productividad y tendrás tu entorno de desarrollo configurado rápidamente. ¿Quieres saber más? ¡Apúntate!

Comenzar ahora

¿Os han pedido alguna vez que contéis las líneas de código que tiene un determinado proyecto? Para ser sincero, a mí nunca me lo han pedido. Creo que es más el valor que aporta una pieza de código por su funcionalidad y simpleza que por la cantidad de líneas. Sin embargo, tenía curiosidad por saber cuántas líneas de código tenían algunos de los proyectos en los que trabajo.

Existe una herramienta llamada clock (count lines of code) que nos permite saber cuántas líneas de código hemos escrito y que incluso nos deja excluir los saltos de línea y los comentarios.

Está disponible para Linux y Mac y se instala muy fácilmente.

Ubuntu

sudo apt install cloc

Fedora

sudo yum install cloc

Arch

sudo pacman -S cloc

Mac OS X

brew install cloc

Cómo contar las líneas de código

cloc se utiliza desde la línea de comandos y puede contar tanto las líneas de código de un único fichero como las de un directorio completo. Para utilizarlo, simplemente escribiríamos cloc seguido del nombre del archivo que queremos analizar.

Vamos a crear un archivo en bash llamado codigo-bash.sh que va a contener lo siguiente:

#!/bin/bash

# Tutorial para aprender a utilizar cloc
echo "Cómo contar las líneas de código de un proyecto"

# Nombre de la herramienta
echo "cloc"

Como véis, tiene varios comentarios y un par de comandos echo. ¿Qué resultado nos dará cloc?

cloc codigo-bash.sh
       1 text file.
       1 unique file.                              
       0 files ignored.

github.com/AlDanial/cloc v 1.74  T=0.00 s (204.3 files/s, 1429.8 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
Bourne Shell                     1              2              2              3
-------------------------------------------------------------------------------

Nos diche que ha analizado un archivo que tiene dos saltos de línea, dos comentarios y tres líneas de código, ya que también cuenta la instrucción #!/bin/bash.

Analizar archivos comprimidos

Podemos analizar incluso archivos comprimidos. Vamos a añadir a un ZIP el archivo anterior y dos más: un archivo JavaScript y un archivo Python.

// archivo.js
console.log("Hola Mundo!");

/**
 * Esto es un comentario
 */

// Este es otro comentario

console.log("Deja tu comentario");
# archivo.py
print "Hola Mundo!"

# Esto es un comentario
# Este es otro comentario

print "Deja tu comentario"

Archivo comprimido código Python, JavaScript y Bash

cloc proyecto.zip 
       3 text files.
       3 unique files.                              
       0 files ignored.

github.com/AlDanial/cloc v 1.74  T=0.02 s (196.7 files/s, 1573.4 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
Bourne Shell                     1              2              2              3
JavaScript                       1              3              5              2
Python                           1              2              3              2
-------------------------------------------------------------------------------
SUM:                             3              7             10              7
-------------------------------------------------------------------------------

También podéis ejecutar cloc en un directorio, sin necesidad de estar comprimido o de ser un único archivo.

Para ver más opciones, podéis hacer uso de su ayuda, que podéis leer con el comando:

cloc --help

¿Qué os ha parecido? ¿Utilizáis este tipo de herramientas?


¿Quieres seguir aprendiendo?