Definimos en la calidad de Teodo por el "factor de calidad 3S" que el código:
Creemos que un equipo necesita lo siguiente para poder entregar código de alta calidad:
El objetivo de Tyrion es ayudarlo en el último punto "? Poder medir la calidad".
Definimos la deuda técnica como cada parte o arquitectura que evita la calidad. A través de varios experimentos, vimos que cuando estábamos monitoreando la evolución de la deuda técnica, era más probable que evitara que aumente. Probamos diferentes formas de manejarlo y medirlo en el pasado (Tarjetas Trello, Google Docs, Post-It ...), pero nunca encontramos una solución indolora que nos permita:
Entonces creamos Tyrion. Ahora puedes:
Debe usar Tyrion con el nodo V12 o V14. Actualmente no funciona con una versión superior principalmente porque los problemas con la herramienta principal con uso: nodegit.
Instale Tyrion a nivel mundial: npm i -g tyrionl
(sí, tyrionl
con una L final l
, no es un error tipográfico).
Ejecute tyrion
con las siguientes opciones
-p, --path [scanDirectory] The path of the directory you want to analyse
-e, --evolution [days] Get the evolution of the debt since X days
-b, --branch [days] Specify the branch used for the evolution analysis. (Default to master)
-n, --nobrowser [browser] Don't open the report after being generated
-c, --csv [csv] export the debt data into a csv file
-d, --devs [devs] Get information about who is contributing the most to quality (Beta)
-h, --help output usage information
Ejemplo:
tyrion -p ./src -c
para obtener el puntaje de deuda actual y crear un informe CSVtyrion --evolution 28 -p .
Para obtener la evolución de la deuda durante 28 días a partir de la última confirmación.tyrion --evolution 28 -b prod -p .
Para obtener la evolución de la deuda durante 28 días a partir del último compromiso de la sucursal de Prod . Puede usar la siguiente etiqueta de deuda para el mismo resultado: @debt
, TODO
, FIXME
.
Tyrion analiza los archivos que buscan comentarios que sigan la siguiente convención:
/**
* @debt DEBT_TYPE:SUB_TYPE
*/
Hay un puntaje de incumplimiento para la siguiente deuda_type:
No necesita especificar un sub_type, por lo que un ejemplo mínimo puede ser:
/**
* @debt quality
*/
Puede agregar un comentario para proporcionar más detalles sobre el artículo de la deuda siguiendo esta convención:
/**
* @debt DEBT_TYPE:SUB_TYPE "Author: comment"
*/
Un ejemplo completo podría ser:
/**
* @debt security:sql-injection "Maximet: The request is not escaped when being called from the command"
*/
El analizador buscará todas las líneas que contengan '@debt' y comenzará por *
o #
que debería cubrir la mayoría de los idiomas de programación web.
Puede anular el precio predeterminado de los elementos de deuda creando un archivo .tyrion-config.json
en el directorio raíz de su proyecto. Incluso puedes crear tus propios tipos. Aquí está el predeterminado:
{
"pricer": {
"bug": 100,
"architecture": 100,
"bugRisk": 5,
"security": 100,
"securityRisk": 10,
"quality": 5,
"test": 5,
"doc": 3,
"ci": 30,
"deploy": 10,
"devEnv": 10,
"outdated": 5
},
"standard": 100,
"ignorePath": [
"node_modules",
"README.md"
],
"debtTags": [
"@debt",
"TODO",
"FIXME"
]
}
También puede marcar algunos archivos como "joconde" un archivo que sigue perfectamente el estándar de calidad del código. Puede usar la siguiente etiqueta para el mismo resultado: @best
, @standard
, JOCONDE
.
Ejemplo: // JOCONDE React:component "The standard can be find here: http....."
Puede ignorar archivos que contienen ciertas cadenas utilizando la opción "ignorePath"
en el archivo de configuración:
"ignorePath": [
"node_modules",
"README.md"
]
Puede cambiar las etiquetas de deuda predeterminadas utilizadas para detectar qué línea de comentarios debe considerarse como un comentario de deuda de Tyrion. Para hacerlo, anule la entrada de debtTags
en .tyrion-config.json
:
"debtTags": [
"@debt",
"TODO",
"FIXME"
]
Esta función ya no está disponible ya que no se usó.
Puede filtrar el resultado por cualquier tipo de deuda que desee con la opción --filter
. Comparará el tipo y la cadena que pasa como argumento después del filtro.
Ejemplo: tyrion -p ./src --filter bug