Te presento a Sloc


Te has preguntado alguna vez, ¿Cuánto escribes en tus proyectos? ¿Cuántas líneas de código se necesitó para terminar la aplicación que desarrollaste?

Con este objetivo nació Sloc, una pequeña herramienta que te brinda la siguiente información:

  1. Cantidad de líneas de código escritas.
  2. Cantidad de líneas con comentarios.
  3. Cantidad de líneas con comentarios en bloque.
  4. Cantidad de líneas con la mezcla de código y comentarios.
  5. Cantidad de líneas vacías
  6. Total de líneas (líneas físicas)

La salida de estas estadísticas Sloc las brinda en tres formatos: CVS, JSON y en forma de tabla en la Consola.

Instalación

Sloc es un paquete NPM y se instala de esta forma (se asume que tienes nodejs y npm instalados):

sudo npm install -g sloc

¿Cómo usarlo?

De forma primaria querrás utilizarlo directamente desde la consola:

$ sloc [opciones] <fichero> | <directorio>

Dentro de las opciones podemos escoger las siguientes:

Opción Descripción
-h Muestra la ayuda
-V Muestra la versión
-e Aplica una expresión regular para excluir ficheros y directorios
-f Formato de salida: cvs, json, simple, cli-table
-d Ofrece detalles sobre cada uno de los ficheros examinados
-k Muestra solo las estadísticas que desees

Ejemplos

Para ver un resumen estadístico de tu proyecto basta con ejecutar:

<code>$ sloc miproyecto/

---------- Result ------------

            Physical :  159541
              Source :  102178
             Comment :  82513
 Single-line comment :  67725
       Block comment :  15319
               Mixed :  38555
               Empty :  13497

Number of files read :  723

------------------------------</code>

La carpeta miproyecto en este caso cuenta con una aplicación en MeteorJS. Dentro hay una carpeta llamada .meteor que no forma parte de mi código, por lo que debería excluirla.

<code>sloc -e .meteor miproyecto/

---------- Result ------------

            Physical :  253
              Source :  237
             Comment :  6
 Single-line comment :  5
       Block comment :  1
               Mixed :  0
               Empty :  10

Number of files read :  8

------------------------------</code>

Observa cómo se reduce significativamente la cantidad, pues el ámbito de búsqueda se redujo solo a los ficheros que creé.

Si deseo excluir los ficheros CSS basta con especificarlo con la propia opción -e:

sloc -e .css

El siguiente comando muestra un resumen en forma de tabla en la consola:

sloc -e .meteor -k total,source,comment -d miproyecto

La expresión regular que asume la opción -e es la misma aceptada por el objeto JavaScript RegExp.

Conclusiones

La línea de comandos no es la única forma en que se puede utilizar sloc. En su página puedes ver las demás, que incluyen: el navegador, a través de Grunt y Gulp, desde NodeJS, etc.

Estoy seguro te será útil para estimar en base a estos datos, el esfuerzo empleado e incluso, para mejorar el rendimiento de tu app. Por ejemplo, si notas que tus ficheros JavaScript tienen muchos espacios en blanco y muchos comentarios, puedes optar por minimizar esos ficheros para que tomen menos tamaño y el navegador los descargue más rápido.

Keep Learning!