Sonar как источник задач для регулярного рефакторинга
Простая и короткая статья. Из серии «на заметку хозяйке».
Есть гибкая система сканирования кода на соответствие правилам, метрикам (полезным, типа цикломатической сложности), и так далее.
Называется Sonar.
Пара скриншотов на живых данных под катом.
Краткий обзор возможностей
- Поддерживает основные языки (Java, C#, C/C++, Cobol, PL/SQL, ABAP, Javascript, PHP etc)
- Имеет гибкую настраиваемую систему правил сканирования кода
- Понимает ООП (цикломатическая сложность, количество уровней наследования, связанность, и так далее)
- Настраивается за полдня
- Интегрируется с TeamCity
- Позволяет видеть изменения после рефакторинга (хранит лог изменений)
Применяется просто
1. Сонар натравливается на проект
2. Даете список самых косячных классов на рефакторинг (да, рефакторинг обязателен и нужно давать на него время, иначе однажды вы, как менеджер проекта, услышите волшебные слова «проще все выбросить и переписать заново» — если у вас смелые и классные программисты, или же просто будут все делать тормозно и с кучей багов в неожиданных местах, если проггеры слабоватые или несмелые). Оно не заменяет codereview, но дополняет.
3. Программисты рефакторит
4. Натравливаете снова и видите дельту.
Общий вид для проектов
Список косяков
Срез между двумя сканами
На Хабре были статьи, но давно, и для Java в основном.
В комментариях предлагаю поделиться средствами автоматизации QA, которые применяете вы у себя.
Автор: Cord