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
 
Комментариев нет:
Отправить комментарий