Nous avons défini à la qualité de Theodo par le "facteur de qualité 3S" que le code:
Nous pensons qu'une équipe a besoin de ce qui suit pour pouvoir fournir un code de haute qualité:
Le but de Tyrion est de vous aider sur le dernier point "? Être capable de mesurer la qualité".
Nous avons défini la dette technique comme chaque morceau de code ou d'architecture qui empêche la qualité. Grâce à diverses expériences, nous avons vu que lorsque nous surveillons l'évolution de la dette technique, il était plus susceptible de l'empêcher d'augmenter. Nous avons essayé différentes façons de la gérer et de la mesurer dans le passé (cartes Trello, Google Docs, Post-It, ..) Mais nous n'avons jamais trouvé de solution indolore qui nous permettrait de:
Nous avons donc créé Tyrion. Vous pouvez maintenant:
Vous devez utiliser Tyrion avec Node V12 ou V14. Il ne fonctionne pas actuellement avec une version supérieure principalement parce que les problèmes avec l'outil principal avec UTILISAGE: Nodegit.
Installez Tyrion globalement: npm i -g tyrionl
(oui, tyrionl
avec un l
final, ce n'est pas une faute de frappe).
Exécutez tyrion
avec les options suivantes
-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
Exemple:
tyrion -p ./src -c
pour obtenir le score de la dette actuel et créer un rapport CSVtyrion --evolution 28 -p .
Pour obtenir l'évolution de la dette pendant 28 jours à partir du dernier commit.tyrion --evolution 28 -b prod -p .
Pour obtenir l'évolution de la dette pendant 28 jours à partir du dernier engagement de la succursale de Prod . Vous pouvez utiliser la balise de dette suivante pour le même résultat: @debt
, TODO
, FIXME
.
Tyrion analyse les fichiers à la recherche de commentaires qui suit la convention suivante:
/**
* @debt DEBT_TYPE:SUB_TYPE
*/
Il y a un score par défaut pour la debt_type suivante:
Vous n'avez pas besoin de spécifier un sub_type, donc un exemple minimum peut être:
/**
* @debt quality
*/
Vous pouvez ajouter un commentaire pour fournir plus de détails sur l'article de la dette en suivant cette convention:
/**
* @debt DEBT_TYPE:SUB_TYPE "Author: comment"
*/
Un exemple complet pourrait être:
/**
* @debt security:sql-injection "Maximet: The request is not escaped when being called from the command"
*/
L'analyseur recherchera toutes les lignes contenant «@debt» et commencera soit par *
ou #
qui devrait couvrir la plupart des langages de programmation Web.
Vous pouvez remplacer la tarification par défaut des éléments de la dette en créant un fichier .tyrion-config.json
dans le répertoire racine de votre projet. Vous pouvez même créer vos propres types. Voici le par défaut:
{
"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"
]
}
Vous pouvez également marquer certains fichiers comme étant "joconde" un fichier qui suit parfaitement la norme de la qualité du code. Vous pouvez utiliser la balise suivante pour le même résultat: @best
, @standard
, JOCONDE
.
Exemple: // JOCONDE React:component "The standard can be find here: http....."
Vous pouvez ignorer les fichiers contenant certaines chaînes en utilisant l'option "ignorePath"
dans le fichier de configuration:
"ignorePath": [
"node_modules",
"README.md"
]
Vous pouvez modifier les balises de dette par défaut utilisées pour détecter la ligne de commentaire que la ligne de commentaire doit être considérée comme un commentaire de la dette par Tyrion. Pour ce faire, remplacez l'entrée debtTags
dans .tyrion-config.json
:
"debtTags": [
"@debt",
"TODO",
"FIXME"
]
Cette fonction n'est plus disponible car elle n'a pas été utilisée.
Vous pouvez filtrer le résultat par tout type de dette que vous souhaitez avec l'option --filter
. Il comparera le type et la chaîne que vous passez comme argument après filtre.
Exemple: tyrion -p ./src --filter bug