Definimos a qualidade Theodo pelo "fator de qualidade 3s" que o código:
Achamos que uma equipe precisa do seguinte para poder fornecer código de alta qualidade:
O objetivo de Tyrion é ajudá -lo no último ponto "? Ser capaz de medir a qualidade".
Definimos dívida técnica como todas as partes de código ou arquitetura que impede a qualidade. Através de vários experimentos, vimos que, quando estávamos monitorando a evolução da dívida técnica, era mais provável que ele aumentasse. Tentamos maneiras diferentes de gerenciar e medir no passado (Trello Cards, Google Docs, Post-it, ..), mas nunca encontramos uma solução indolor que nos permitiria:
Então, criamos Tyrion. Você pode agora:
Você precisa usar o Tyrion com o nó v12 ou v14. No momento, não está trabalhando com a versão superior principalmente porque os problemas com a ferramenta principal com uso: nodegit.
Instale o Tyrion globalmente: npm i -g tyrionl
(sim, tyrionl
com um l
final, não é um erro de digitação).
Execute tyrion
com as seguintes opções
-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
Exemplo:
tyrion -p ./src -c
para obter a pontuação atual da dívida e criar um relatório CSVtyrion --evolution 28 -p .
Para obter a evolução da dívida durante 28 dias a partir do último compromisso.tyrion --evolution 28 -b prod -p .
Para obter a evolução da dívida durante 28 dias a partir da última confirmação do ramo do Prod . Você pode usar a seguinte tag de dívida para o mesmo resultado: @debt
, TODO
, FIXME
.
Tyrion analisa os arquivos que procuram comentários que seguem a seguinte convenção:
/**
* @debt DEBT_TYPE:SUB_TYPE
*/
Existe uma pontuação padrão para o seguinte dívida_type:
Você não precisa especificar um sub_type, então um exemplo mínimo pode ser:
/**
* @debt quality
*/
Você pode adicionar um comentário para fornecer mais detalhes sobre o item de dívida seguindo esta convenção:
/**
* @debt DEBT_TYPE:SUB_TYPE "Author: comment"
*/
Um exemplo completo pode ser:
/**
* @debt security:sql-injection "Maximet: The request is not escaped when being called from the command"
*/
O analisador procurará todas as linhas que contêm '@Debt' e iniciará por *
ou #
que devem cobrir a maioria dos idiomas de programação da Web.
Você pode substituir o preço padrão dos itens de dívida criando um arquivo .tyrion-config.json
no diretório raiz do seu projeto. Você pode até criar seus próprios tipos. Aqui está o padrão:
{
"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"
]
}
Você também pode marcar alguns arquivos como sendo "Joconde" um arquivo que segue perfeitamente o padrão de qualidade do código. Você pode usar a seguinte tag para o mesmo resultado: @best
, @standard
, JOCONDE
.
Exemplo: // JOCONDE React:component "The standard can be find here: http....."
Você pode ignorar os arquivos que contêm determinadas seqüências usando a opção "ignorePath"
no arquivo de configuração:
"ignorePath": [
"node_modules",
"README.md"
]
Você pode alterar as tags de dívida padrão usadas para detectar qual linha de comentários deve ser considerada como um comentário da dívida por Tyrion. Para fazer isso substituindo a entrada debtTags
em .tyrion-config.json
:
"debtTags": [
"@debt",
"TODO",
"FIXME"
]
Esta função não está mais disponível, pois não foi usada.
Você pode filtrar o resultado por qualquer tipo de dívida que desejar com a opção --filter
. Ele comparará o tipo e a string que você passa como um argumento após o filtro.
Exemplo: tyrion -p ./src --filter bug