Мы определили на качество Theodo по «коэффициенту качества 3S», что код:
Мы считаем, что команде нуждается в следующем, чтобы иметь возможность обеспечить код высокого качества:
Цель Tyrion - помочь вам в последнем пункте "? Уметь измерить качество".
Мы определили технический долг как каждый кусок кода или архитектуры, который предотвращает качество. Благодаря различным экспериментам мы увидели, что когда мы следили за эволюцией технического долга, это с большей вероятностью предотвратит его увеличение. Мы пробовали разные способы управления и измерения его в прошлом (карты Trello, Google Docs, Post-It, ..), но мы никогда не нашли безболезненное решение, которое позволило бы нам:
Итак, мы создали Тириона. Теперь вы можете:
Вам нужно использовать Tyrion с узлом V12 или V14. В настоящее время он не работает с превосходной версией главным образом потому, что проблемы с основным инструментом с использованием: Nodegit.
Установите Tyrion во всем мире: npm i -g tyrionl
(да, tyrionl
с финальным l
, это не опечатка).
Запустите tyrion
со следующими вариантами
-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
Пример:
tyrion -p ./src -c
, чтобы получить текущую оценку долга и создать отчет CSVtyrion --evolution 28 -p .
Чтобы получить эволюцию долга в течение 28 дней, начиная с последнего коммита.tyrion --evolution 28 -b prod -p .
Чтобы получить эволюцию долга в течение 28 дней, начиная с последней филиала Prod . Вы можете использовать либо следующую долговую метку для того же результата: @debt
, TODO
, FIXME
.
Тирион анализирует файлы в поисках комментариев, которые следует следующему соглашению:
/**
* @debt DEBT_TYPE:SUB_TYPE
*/
Существует оценка по умолчанию для следующего долга_type:
Вам не нужно указывать sub_type, поэтому может быть минимальный пример:
/**
* @debt quality
*/
Вы можете добавить комментарий, чтобы предоставить более подробную информацию о предмете долга, следуя этой конвенции:
/**
* @debt DEBT_TYPE:SUB_TYPE "Author: comment"
*/
Полный пример может быть:
/**
* @debt security:sql-injection "Maximet: The request is not escaped when being called from the command"
*/
Сигнал будет искать все строки, содержащие «@debt», и начинать либо с *
, либо #
, которые должны охватывать большинство языков веб -программы.
Вы можете переопределить цены по умолчанию по вопросам долга, создав файл .tyrion-config.json
в корневом каталоге вашего проекта. Вы даже можете создать свои собственные типы. Вот по умолчанию:
{
"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"
]
}
Вы также можете пометить некоторые файлы как «Joconde» файл, который идеально следует по стандарту качества кода. Вы можете использовать либо следующий тег для того же результата: @best
, @standard
, JOCONDE
.
Пример: // JOCONDE React:component "The standard can be find here: http....."
Вы можете игнорировать файлы, содержащие определенные строки, используя опцию "ignorePath"
в файле конфигурации:
"ignorePath": [
"node_modules",
"README.md"
]
Вы можете изменить теги по умолчанию, используемые для выявления, какая строка комментариев следует рассматривать как комментарий к долгу от Tyrion. Чтобы переопределить запись debtTags
в .tyrion-config.json
:
"debtTags": [
"@debt",
"TODO",
"FIXME"
]
Эта функция больше недоступна, так как она не использовалась.
Вы можете отфильтровать результат по любым типам долга, который вы хотите с опцией --filter
. Он сравнит тип и строку, которую вы проходите в качестве аргумента после фильтра.
Пример: tyrion -p ./src --filter bug