Перейти до вмісту

Вбудовані перевірки

Вбудовані перевірки працюють у Node.js без зовнішніх інструментів. Усі увімкнені за замовчуванням.

Розмір і складність коду

ПеревіркаЩо виявляєПороги за замовчуванням
Line CountЗанадто довгі файлиwarn ≥ 300, fail ≥ 500 рядків
Function LengthЗанадто довгі функції/методиwarn ≥ 40, fail ≥ 80 рядків
Cyclomatic ComplexityБагато гілокwarn ≥ 10, fail ≥ 20
File SizeПеревищення розміру файлуwarn ≥ 50 КБ, fail ≥ 200 КБ
Long LinesРядки ширші за лімітwarn, якщо >5% рядків довші за 120 символів
Import DepthГлибокі ланцюги ../../../warn ≥ 4, fail ≥ 6 рівнів
Directory DepthЗанадто глибока вкладеність папокwarn ≥ 7, fail ≥ 10
Dependency CountБагато прямих залежностейwarn ≥ 50, fail ≥ 100

Якість і підтримуваність

ПеревіркаЩо виявляє
TODO CountМаркери TODO, FIXME, HACK, BUG, XXX, NOSONAR
Commented CodeЗакоментовані блоки коду
Duplicate FilesІдентичні за вмістом файли з різними іменами
Test RatioСпіввідношення тестових і вихідних файлів
Mixed IndentЗмішані таби та пробіли
EncodingФайли не в UTF-8
Debug Leaksconsole.log, print(), debugger, var_dump(), dd()
Secret LeaksХардкод ключів, токенів, паролів, приватних ключів
Gitignore CheckФайли в git, що збігаються з .gitignore
Magic NumbersЧислові літерали без іменованих констант
Parameter CountЗанадто багато параметрів у функції/методі
Barrel FilesПеревеликі index.ts/js з реекспортами — гірший tree-shaking

Архітектура та дизайн

ПеревіркаЩо виявляє
Coupling MetricsВисокий coupling; «god-файли», нестабільні модулі
Cross-Layer ImportsЗаборонені напрямки імпортів (наприклад UI → Prisma)
Component InventoryСхожі UI-компоненти/хуки — ідеї для консолідації
Heavy ImportsІмпорт цілих великих пакетів (lodash, moment, @mui/material)

Типи та документація

ПеревіркаЩо виявляє
Any CoverageВикористання TypeScript any, касти as any, дженерики
JSDoc CoverageЧастка експортованих сутностей з JSDoc

Якість тестів

ПеревіркаЩо виявляє
Test RatioСпіввідношення тестів і коду
Empty TestsБлоки it() / test() / def test_ / #[test] без assertions
LCOV CoverageЧитає lcov.info або coverage-summary.json — % рядків/гілок/функцій без запуску тестів

Безпека CI/CD

ПеревіркаЩо виявляє
GitHub Actions AuditНезакріплені actions, pull_request_target, ін’єкції ${{ }}, секрети в workflow

Пороги в налаштуваннях

Більшість перевірок підтримують enabled, warnAt / failAt:

"devManager.quality.builtin.lineCount.enabled": true,
"devManager.quality.builtin.lineCount.warnLines": 300,
"devManager.quality.builtin.lineCount.failLines": 500,
"devManager.quality.builtin.functionLength.warnLines": 40,
"devManager.quality.builtin.functionLength.failLines": 80,
"devManager.quality.builtin.complexity.warnScore": 10,
"devManager.quality.builtin.complexity.failScore": 20,
"devManager.quality.builtin.parameterCount.warnAt": 4,
"devManager.quality.builtin.parameterCount.failAt": 7,
"devManager.quality.builtin.dependencyCount.warnAt": 50,
"devManager.quality.builtin.dependencyCount.failAt": 100

Повністю вимкнути перевірку:

"devManager.quality.builtin.magicNumbers.enabled": false