Ответ 1
Там Crucible от Atlassian, но это платная.
Недавно я смотрел интересный разговор о том, как часть Лаборатории реактивного движения делает свой обзор кода.
По существу у них есть инструмент (Scrub), который:
Тогда разработчик может:
a) Согласитесь (исправить проблему - она уходит) б) Не согласен c) Обсудить
Инструмент сохраняет след всех разговоров. Затем на своих еженедельных встречах они обсуждают только те Не соглашаться/Обсуждать.
Мне было интересно, если кто-нибудь сталкивался с подобным инструментом в Java?
Например, я могу использовать Sonar для анализа кода, но нет возможности автоматически создавать задачи или отслеживать цифровые разговоры.
Любые предложения приветствуются! Спасибо.
Там Crucible от Atlassian, но это платная.
Sonar 2.7 добавила дополнительную интеграцию с SCM, чтобы теперь вы могли видеть, какой разработчик последний раз коснулся конкретной строки кода. http://www.sonarsource.org/sonar-2-7-in-screenshots/
Хотя это ручной процесс, используя плагин Sonar Eclipse, можно быстро создайте задачу непосредственно из вида нарушения, щелкнув правой кнопкой мыши на нарушении, и некоторое поле ошибки будет предварительно заполнено. Надеемся, что будущие обновления плагина Sonar добавят последнюю коммиттер-информацию из SCM, чтобы заполнить назначенное поле в ошибке/задаче.
Update:
Sonar 2.8 и 2.9 добавили функциональность для ручного запуска обзоров сонара. http://www.sonarsource.org/sonar-2-8-in-screenshots/ http://www.sonarsource.org/sonar-2-9-in-screenshots/
Две недостающие вещи - это способ автоматического просмотра нарушений и интеграции во внешние системы отслеживания задач, такие как Bugzilla.
Обновление 2:
Sonar 3.1 добавила точку расширения, чтобы связать внешнее отслеживание с нарушениями и просмотром сонара (подробные сведения о функции).
Используя эту точку расширения, последний плагин JIRA (1.0) позволяет вам создать/связать проблему JIRA для нарушения, вызванного Sonar. Подробнее в проблема JIRA и информация о плагинах.
Я еще не видел планов по интеграции в другие системы отслеживания проблем.
У нас есть довольно успешный процесс, который может делать то, что вы хотите.
У нас есть большое административное приложение, состоящее из примерно 20 + модулей.
Было бы неплохо, если бы некоторые script проверяли последние билеты/коммиты, запускали PMD/Checkstyle/Findbugs и т.д. и открывали новые проблемы в Jira, когда это было необходимо (или добавляли какое-то настраиваемое значение поля на существующие билеты, вы решаете), Вы определяете правила для всего процесса, поэтому вы можете блокировать патчи или релизы на основе состояния проблемы с jira. Вы можете реализовать то, что хотите (и многое другое) таким образом.
В результате разработчики фиксируют, им даже не нужно знать, как работает ветвящийся материал, и пока у них есть какая-то дисциплина с их проблемами с jira, многое может произойти автоматически и по-прежнему быть в безопасности.
Другие упомянули Sonar, но никто, кажется, не объяснил, что, начиная с 2.8 Sonar теперь поддерживает обзоры кода вручную: http://docs.codehaus.org/display/SONAR/Manual+Reviews
В сочетании с плагином SCM это звучит очень близко к тому, что вы ищете.
В моей новой компании мы начали использовать GitHub для проектов SCM. GitHub предоставляет замечательный интегрированный инструмент для проверки кода (на основе фиксации). Просто перейдите к любой фиксации и добавьте свой отзыв по строке, файлу или всей фиксации.
Честно говоря, я очень удивлен тем, что никто не упомянул Review Board. Хотя это не инструмент анализа кода (но вы можете автоматически запускать PMD/CheckStyle/FindBugs), это позволит вам делать то, о чем вы просите.
Мы успешно работаем в одном из наших основных приложений. В основном процесс выглядит так: разработчик, который хочет проверить свои изменения, создает файл diff, загружает его в Совет по обзору и назначает обзорную группу (или одного человека). Это позволяет вам указывать на проблемы, комментировать их и исправлять код (делать инкрементный просмотр кода).
В принципе, если бы я должен был создать процесс регистрации, я заставил бы всех пользователей запускать автоматические тесты (а не только модульные тесты, а также тесты пользовательского интерфейса и интеграции), FindBug и CheckStyle с выбранным набором правил, а затем, если это является чистым, код будет рассмотрен человеком (на данный момент он будет определенно синтаксически правильным и не будет вводить проблемы, но не обязательно иметь смысл) с Советом по обзору.
Звучит как действительно интересный разговор, я обязательно буду смотреть его. Но на первый взгляд, я довольно скептически:
Поэтому мне кажется, что для описанного процесса Scrub подходят только крошечные суммы точно правильных предупреждений анализатора кода (например, циклов пакетов):(
Поэтому я считаю, что лучшим решением является не полностью автоматизировать эту отчетность об ошибках, а решительно поддерживать обзоры кода, которые вручную также учитывают предупреждения анализаторов. Используя инструмент, в котором вы можете легко упаковать крошечные обзоры кода в проблемы, действительно помогает в этом. FogBugz делает это очень хорошо (см., Например, это видео: http://www.youtube.com/watch?v=r5HNI9aMzOE&feature=player_embedded).
И в целом это приближается к процессу Scrub, но с одним ручным обзором между ними, чтобы избежать генерации огромного количества ошибок, вызванных ложными предупреждениями.
Вы можете посмотреть Плагин активности SCM для Sonar. Он не делает то, что вы просите, но может быть расширяемым, чтобы добавить задачу в любой механизм задач, который вы используете. По крайней мере, это сделает запрос SCM для вас.
Мы используем ReviewClipse, он связывает коммиты и обзоры. Поэтому вам нужно всего лишь прочитать сообщение о фиксации и проверить, соответствуют ли изменения (отображаемые в обзоре просмотра в представлении сравнения Eclipse) этому сообщению.
В чем недостаток ReviewClipse отсутствует, это процесс/поддержка, что недостатки, обнаруженные в обзоре, будут не только записаны, но и действительно исправлены.
Я однажды рекомендовал бесплатный инструмент анализа кода stan4j (http://stan4j.com/) в SO. Но его бесплатная версия сообщества поддерживает только 500 классов. Она не может выполнять назначение задачи, а только анализ кода.
Каково увлечение метриками кода?
Также в этом посте. Другие люди рекомендуют кодовые метрики.