archlint diff
Команда diff реализует ключевую функциональность инструмента — принцип «храповика» (Ratchet). Она сравнивает вашу текущую кодовую базу с ранее сохраненным snapshot или другой веткой/коммитом git.
Использование
bash
# Сравнение с файлом snapshot
archlint diff <baseline.json> [options]
# Сравнение с git ref
archlint diff <git-ref> [options]Как это работает
archlint не просто считает проблемы. Он выполняет семантическое сравнение (diff) архитектурных дефектов:
- Новые проблемы: Дефекты, которые существуют сейчас, но не существовали в базовом состоянии (например, новый цикл).
- Ухудшившиеся показатели: Существующие проблемы, которые стали более серьезными (например, цикл вырос с 3 файлов до 5).
- Исправленные дефекты: Проблемы, которые были в базе, но теперь исчезли.
Опции
| Опция | По умолчанию | Описание |
|---|---|---|
--fail-on <severity> | medium | Выйти с кодом 1, если найдена регрессия этой критичности или выше |
--explain | false | Предоставить подробное объяснение для каждой регрессии |
Конфигурация
Вы можете настроить движок сравнения в файле .archlint.yaml:
yaml
diff:
metric_threshold_percent: 20 # сообщать о регрессии только если метрика ухудшилась более чем на 20%
line_tolerance: 50 # игнорировать смещения в пределах 50 строк при сопоставленииПодробности см. в Руководстве по конфигурации.
Примеры
Проверка относительно ветки main в CI
bash
archlint diff origin/main --fail-on medium --explainПроверка относительно локальной базы
bash
archlint diff .archlint-baseline.json