1.3. использование Sonar
что и как можно поглядеть
В sonar активно используется разграничение отображаемых данных в зависимости от необходимости:
global dashboard, например:
и project dashboard:
Или же в зависимости от роли пользователя, будь он администратором проекта или же обычным пользователем.
Реализован ряд механизмов удобного отслеживания источников ошибок: по клику на типе ошибки или значении какой-либо метрики можно дойти до исходников кода с подсвеченной строкой. Также можно пользоваться фильтрами для быстрого доступа к проектам по заданным условиям, будь то недавно инспектируемые проекты или проекты с нарушениями типа blocker или же critical. При желании можно создавать кастомные критерии и фильтры
Также существует удобный доступ к любым частям исходных текстов проекта.
исходники кода:
покрытие:
нарушения:
дублирование:
зависимости:
LCOM4:
исходники юнит-тестов:
отчёты со сфэйленными тестами:
нарушения в тестах:
в набор так называемых Quality Flows входят:
Bad Distribution of Complexity
1. код требует много времени для прочтения
2. при отсутствии юнит-тестов зависимые изменения сложно отслеживать
Duplications
может отслеживать дублирующий код в файле, в проекте, в разных проектах.
чтобы активировать последнюю опцию, администратор должен найти её и ткнуть галочкой.
Lack of Unit Tests
No Coding Standards
Not Enough or Too Many Comments
1. насколько задокументированы сложные куски кода
2. сложность сценариев юнит-тестов
3. задокументированность API
4. на соответствие общепринятым стандартам, например, соглашение о именовании
Potential Bugs
на соответствие типов
Spaghetti Design
проверка дизайна и архитектуры
Cycles - Dependency Structure Matrix
строки - элементы кода (файлы, пакеты, модули)
для выделенной строки показываются входящие/исходящие зависимости
так же можно кликнуть мышкой и зайти в нужный компонент из матрицы
информация при выделенной строке:
информация при выделенной ячейке:
Architecture Rule Engine
Managing Libraries
отобразить библиотеки
показать зависимости библиотек и проекта
LCOM4
LCOM4 определяется количеством груп связанных методов в классе. Если LCOM4 = 1 — это хороший класс, а если LCOM4 >= 2, то класс необходимо разбить на несколько меньших классов. Sonar дополнительно дает усредненное значение этой метрики по всему проекту и по каждому из пакетов, где LCOM4 > 1.
RFC
RFC измеряет сложность класса с точки зрения вызовов методов.
+1 за объявление и вызов метода
Также предусмотрено сравнение данных по разным проектам/версиям одного и того же проекта.
Time Machine
двух типов:
Timeline Widget
отображает данные по метрикам в количестве от 1 до 3
History Table Widget
отображает данные по метрикам в количестве от 1 до 10
работа с временными промежутками
существует возможность по выбранному промежутку времени посмотреть
состояние проекта
на предметы изменений:
- значения метрик
- количества нарушений
- покрытие нового кода тестами
работа с reviews
возможные статусы: open, reopen, closed
если нарушение устранено, sonar закроет атоматом
возможности:
- создание
- пометить как false-positive
- reopen
- поиск
- создать собственное
- изменить приоритет
- группировать в action-plan
Комментариев нет:
Отправить комментарий