Экспертные оценки кода - проверенный способ улучшения качества программного обеспечения, но благие намерения (добавления обзора кода в процесс развития) часто сбиваются сжатыми сроками, плохо спланированным обзором, пренебрежением электронной почтой и усталостью от наблюдения за участниками обзора. Crucible поможет вам преодолеть барьеры на пути с простой основанной на вебе системой, которая соответствует вашим процессам и графикам.
Асинхронные, распределенные обсуждения
Сутью проверки кода является разговор между членами команды. Но вся команда не всегда доступна в одно то же время даже если физически расположена в одном месте. Crucible предоставляет веб-интерфейс для обзора кода с подсветкой синтаксиса, фильтрацией, быстрой навигацией с клавиатуры и многое другое. Crucible полностью поддерживает ленты комментариев на уровне всех обзоров, всех файлов и конкретных строчек кода. Добавление комментариев - это секундный вопрос открытия обзора и нажатия на кусок код.
Crucible поддерживает дополнительные функции, такие как маркировка дефектов, пользовательские классификации, и автоматическое создания подзадач JIRA.
![]() |
![]() |
Обозначьте комментарий как дефект, чтобы выделить его.
|
Комментарии могут отображаться прямо в строке или рядом с кодом.
|
![]() |
![]() |
Просто нажмите на несколько строк, чтобы добавить комментарии.
|
Разговоры об исходном коде с вашими коллегами.
|
Обзоры, которые работают, как вы хотите
При разработке программного обеспечения то, что работает для одной команды может быть катастрофой для другой. И это, безусловно, верно и для практик обзоров кода. Некоторые обзоры могут быть простой выборочной проверкой, тогда как другие требуют детального анализа со стороны членов команды. Crucible предназначен быть гибким и эффективным в несерьезном и формальном контекстах.
Пре-коммит: обзор содержания, которое не находится под контролем версий. Загружайте кусок кода, файл или копируйте и вставляйте из IDE.
Пост-коммит: обзоры после занесения коммита в хранилище.
Модерируемые: отзывы могут иметь модератора ответственного за обзор, создание, утверждение и определение того, когда обзор закончен.
Немодерируемые: процесс, в котором автор обзора является единственным лицом, который запускает и останавливает обзор.
Фрагмент: вы можете просто вставить код и начать обсуждать его командой, без необходимости старта официального рабочего процесса обзора кода.
Обсуждения массивов изменений: сообщения коммита позволяют разработчикам прикреплять информацию к коммиту.
![]() |
![]() |
Используйте комментарии массива изменений, как катализатор для обсуждения кода.
|
Только название и код необходимы для запуска обзора фрагмента.
|
![]() |
![]() |
Вы можете использовать классические роли модератора, автора и обозревателя или дать разные функции разным пользователям.
|
Легко добавить контент в обзор кода при просмотре изменений, поиске файлов, или загрузке патча.
|
Обзоры развиваются вместе с кодом
Традиционно, обзоры были официальными мероприятиями, где автор получал отзывы от экспертов во время собрания: встреча закончилась - закончился обзор. Обзоры Crucible развиваются с течением времени: обозреватели самостоятельно проверяют код и отвечают на комментарии в разное время и в ответ на различные изменения в коде. Обозреватели могут переходить между несколькими ревизиями файла, если новые версии файла доступны Crucible указывает, что файл устарел и дает ссылку чтобы быстро добавить последнюю ревизию. Но не беспокойтесь о том что Вы будете целый день проводить в обзорах - Crucible имеет встроенную функцию учета рабочего времени, которая рассчитывает, сколько часов потрачено на оценку, так что Вы можете оценить рентабельность инвестиций (ROI ) с течением времени.
![]() |
![]() |
Время рассмотрения автоматически отслеживается и может быть переопределено вручную.
|
Резюме обзора дает вам полную картину обзора.
|
![]() |
![]() |
Когда Вы возвращаетесь к обзору после добавления новой ревизии, Crucible только показывает вам различия в последнем изменении.
|
Когда новые ревизии файла доступны, Crucible указывает, что файл устарел и предоставляет ссылку чтобы быстро добавить последнюю ревизию.
|
Экспертные оценки кода - проверенный способ улучшения качества программного обеспечения, но благие намерения (добавления обзора кода в процесс развития) часто сбиваются сжатыми сроками, плохо спланированным обзором, пренебрежением электронной почтой и усталостью от наблюдения за участниками обзора. Crucible поможет вам преодолеть барьеры на пути с простой основанной на вебе системой, которая соответствует вашим процессам и графикам.
"Пост-коммитные" обзоры
Наиболее распространенный процесс - это оценка изменений после того как они попадают в SCM хранилище. Такой подход гарантирует, что код проходит тесты и автоматизированный контроль качества, прежде чем Вы потратитте время для экспертной оценки.
Crucible поддерживает Subversion, Git, Mercurial, Perforce, CVS и ClearCase. Плагины доступны для других систем контроля версий, или Вы можете написать свой собственный, используя возможности расширяемости Crucible.
![]() |
![]() |
Настройте точные ревизии, включенные в обзор.
|
Просматривайте изменения из SCM, просматривая коммиты, дерево исходного кода, или поиск (требуется FishEye).
|
![]() |
![]() |
Дайте имя вашей рецензии и выберите обозревателей.
|
При необходимости обозначьте конкретные цели для обозревателей в Wiki-разметке.
|
"Пре-коммитные" обзоры
Коду не нужно находиться в хранилище, чтобы быть оцененным с Crucible. Вы можете:
- Создавать и загружать патч или вырезать и вставлять патч из вашей IDE (среды разработки) в веб-интерфейс Crucible.
- Загружать произвольные файлы на рассмотрение, прикреплять скриншоты к обзорам.
- Создавать отрывки обзоров только лишь с названием и кусками кода, чтобы начать обсуждение кода сразу, без прохождения формальностей.
- Использовать комментарии массива изменений как механизм для запуска обзора кода.
![]() |
![]() |
Отрывки обзоров это простой способ начать обсуждение кода.
|
Загрузите или вставьте патч.
|
![]() |
![]() |
Создавать пре-коммиты из вашей IDE не сложнее, чем создавать коммит (доступно только для IntelliJ IDEA).
|
На основе простого комментария массива изменений можно создать обзор кода.
|
Обновления
Хотя Crucible и дает возможность вашей команде обозревать код в свое время, это не означает, что Вы не можете обозревать код одновременно. Crucible уведомляет вас, когда другие обозреватели смотрят на тот же обзор что и вы, отмечая когда были сделаны новые комментарии. Если автор обновил содержание обзора, вы увидите и это тоже.
![]() |
![]() |
Вы будете проинформированы сразу , когда другие пользователи будут вносить изменения или добавлять комментарии.
|
Узнайте, кто еще обозревает одновременно с Вами.
|
Легко создавать обзоры с Crucible, но к сожалению это не означает, что обзоры будут вести себя без нареканий. Crucible предоставляет множество функций, которые помогут вашей команде вовремя получать рабочую информацию- электронная почта, RSS, рабочие столы, обновления и многое другое.
Уведомления
Вы можете подписаться с помощью email или RSS на конкретный обзор, например, на новые комментарии, изменение статуса, загрузку файлов и многое другое. Вы можете также получать сводные данные по всем обсуждениям обзора по требованию или когда обзор закрывается. Если вы заинтересованы в обзоре кода или в комментариях Вы можете добавить их в избранное и просмотреть позже.
![]() |
![]() |
Получайте RSS на обзоры, в которых Вы заинтересованы.
|
Обозначте обзоры или комментарии, чтобы добавить их в закладки в Crucible.
|
![]() |
|
Получить обновления на email по активности обзора.
|
Рабочий стол и отчеты
Обзоры постоянно изменяются. Crucible предоставляет множество функций, которые помогут вашей команде быть в курсе дела.
- Рабочий стол с ящиком входящих сообщений (Crucible Inbox) для каждого пользователя показывает какие обзоры они должны делать и какой код рассматривают другие пользователи.
- Лента активности показывает последние комментарии всего проекта или всей инсталляции.
- Blocker отчеты и показатели прогресса для быстрого взгляда на прогресс и кто задерживает обзоры.
![]() |
![]() |
Стандартный blockers отчет показывает Вам, кто задерживает обзоры.
|
Отчет JIRA blockers помогает понять, какие запросы в настоящее задерживают обзоры.
|
![]() |
![]() |
Будьте в курсе всех ваших обзоров с Crucible Inbox.
|
Легко узнать все последние действия с обзорами кода в ленте активности.
|
Аудит и соответствие
Процесс обзора - отличное решение, чтобы ответить, когда Ваш начальник спрашивает: "У вас есть запись этого?" Сохраняйте полную аудиторскую историю того, что Ваша команда разработчиков сделала - если вы используете JIRA и FishEye вы можете увидеть запросы, отзывы, и исходный код.
Crucible хранит все детали обзора кода вплоть до истории конкретного обзора кода.
![]() |
![]() |
Просматривайте график активностей обзора кода.
|
Просматривайте полную историю обзора кода - от начала до конца.
|
![]() |
|
Легко фильтруйте и ищите обзор(ы).
|
FishEye самый лучший способ для просмотра, поиска, и понимания как изменился код в вашем хранилище с течением времени. Это будет лучше работать в паре с функциями обзора кода Crucible.
Вы можете легко инициировать обзоры на основе различных событий, происходящих в хранилище, обзоры на основе массива изменений в FishEye хранилище, а также выполнять мощный анализ кода с помощью пользовательского языка запросов.
Начало обзора из любой точки
С FishEye и Crucible установленными вместе, разработчики работают в одной среде, которая показывает все активности их кода - коммиты, обзоры, даже запросы JIRA. Вы можете создать новый обзор из любых изменений в ленте активности из исходного кода отдельного файла, или запроса JIRA.
![]() |
![]() |
Создавайте одним щелчком мыши обзор из запроса JIRA.
|
Создавайте обзор во время просмотра деталей отдельного файла.
|
![]() |
|
Создавайте обзор из любых изменений в ленте активности FishEye.
|
Исключение двойной работы
При создании обзора из Fisheye, Crucible предупредит Вас о том, что есть активные обзоры, которые связаны с тем, который Вы пытаетесь создать, и предложит обновить существующий обзор вместо того чтобы создавать новый.
![]() |
![]() |
Получите список обозревателей, основанный на работе над кодом и рабочей нагрузке.
|
FishEye выдаст Вам список похожих открытых обзоров.
|
Структурированный пользовательский поиск
FishEye включает в себя мощный SQL-подобный поиск, который в сочетании с Crucible, позволяет запрашивать статус всех ваших ревизий. Например, Вы можете составить поиск чтобы получить все недавно измененные файлы определенного типа, которые в настоящее момент являются частью открытых обзоров.
![]() |
![]() |
Этот поиск выдает все недавно измененные javascript файлы, которые в настоящее время являются частью открытых обзоров.
|
Используйте стандартные параметры поиска в FishEye, чтобы найти все отзывы созданные в определенный период.
|
Хорошие обзоры кода предусматривают много откликов. Некоторые отклики могут быть тривиальными, но важные комментарии требуют выполнения задач, которые необходимо отслеживать. Crucible дает обзорщикам создавать запросы JIRA прямо из комментарий обзора в два клика. Задачи в системе отслеживания запросов и отклики в обзорах кода связаны между собой. В то же время, вы можете увидеть обзоры, связанные с вашими запросами, не выходя из JIRA.
Из Crucible в JIRA
Каждый Crucible обзор может быть связан с запросом JIRA. Вы можете навести курсор мыши на ссылки в JIRA, или на любой ключ запроса JIRA, чтобы увидеть информацию по этому запросу. Любой комментарий или дефект в Crucible может быть преобразован в подзадачу запроса обзора в два клика. Запросы могут быть решены в Crucible (одним щелчком мыши), или в JIRA без необходимости открывать Crucible.
![]() |
![]() |
Связанные подзадачи могут быть решены в Crucible. Если они будут решены в JIRA, то и в Crucible тоже.
|
Все ключи запросов JIRA ссылаются на страницу запроса, наводя на ссылку Вы получаете информацию о запросе из JIRA.
|
![]() |
|
Когда обзор связан с запросом JIRA, вы можете быстро создавать подзадачи в JIRA основанные на комментарии, не выходя из Crucible.
|
Из JIRA в Crucible
При работе с JIRA, все обзоры, которые связаны с запросом JIRA отображаются во вкладке запроса. Обзоры считаются связанными, когда они связаны вместе, имея ключ запрос в названии, или когда ключ запроса JIRA появляется в коммите (последний случай требует FishEye). Если у вас есть FishEye, вы можете создавать обзоры кода из одного или всех коммитов, связанные с запросом, непосредственно из запроса JIRA.
Может быть отличной идеей добавить статус "в стадии оценки" в бизнес-процесс JIRA. Это обеспечивает видимость в JIRA в состояние запроса, в то время напоминать пользователям проводить обзор до закрытия их проблем.
Crucible также может интегрироваться с лентой активности JIRA для наблюдения за прогрессом обзоров. Функции интеграции пошли еще глубже, отчеты Crucible доступны в каждом проекте JIRA и Crucible диаграммы могут быть помещены на рабочие столы JIRA в качестве портлетов.
![]() |
![]() |
Обзоры, связанные с запросом JIRA отображаются на вкладке "Reviews" страницы запроса JIRA.
|
При использовании FishEye для просмотра связанного кода в запросе, вы можете создать обзор непосредственно из JIRA для одного или всех связанных коммитов.
|
![]() |
![]() |
Информацию о запросах в состоянии обзора и последние данные по активности обзора можно увидеть на странице проекта JIRA.
|
Диаграммы статистики обзора могут быть добавлены на рабочий стол JIRA и обзор деятельности может быть включен в портлет лента активности JIRA.
|
Портлеты рабочего стола JIRA
Вы можете добавить информацию обзора Crucible на рабочий стол JIRA. Портлет Crucible Charts отображает информацию обо всех обзорах и портлет to-do отображает список дел пользователя. Вы можете создать свой собственный портлет с REST API Crucible.
![]() |
![]() |
Просматривайте информацию обзора кода Crucible на рабочем столе JIRA.
|
Получайте информацию об обозревателях, которые еще не завершили свои обзоры.
|
![]() |
![]() |
Список дел текущего пользователя, включая обзоры для выполнения, чтение комментариев или сведенные обзоры.
|
Узнайте, сколько кода прошло оценку.
|
Обзор онлайн имеет дополнительное преимущество, что ваша история и обзор остаются доступными, а также предоставление вариантов автоматизации. Crucible дает возможность для написания своих собственных отчетов, сввязанных с вашими инструментами, извлекать данные обзора и автоматизация создания обзора или его переносов.
Расширяйте, улучшайте, извлекайте...
Плагины
Вы можете использовать плагины чтобы сделать Crucible таким каким Вы хотите. Либо написать свой собственный с нуля, либо расширить отчет Crucible или установить новый плагин из Atlassian Plugin Exchange.
Типы лпагинов:
- SCM плагины - Crucible поставляется со встроенной поддержкой Subversion, Mercurial, Git, Perforce, CVS и ClearCase. Плагины доступны для других SCM или не-SCM, таких как Atlassian Confluence или для локальной файловой системы сервера.
- Плагины отчетов - отчетность Crucible делает консолидированные отчеты статистики обзора кода и многое другое. Примеры - отчет Crucible Blocker и отчеты JIRA Blocker, которые показывают что задерживает завершение обзора.
- Плагины событий - отвечают за события в Crucible (или FishEye), плагин Automatic Review Creator обнаруживает коммиты с помощью FishEye и создает обзор на каждый коммит.
- Web инструменты- в Crucible есть много мест где Вы можете добавить свой функционал (например, вкладки, меню, панели инструментов).
Более подробную информацию о разработке плагинов, включая документацию, учебные пособия и примеры кода примеров смотрите на Crucible Development Hub.
REST API
Все аспекты обзора доступны через REST API Crucible, в том числе данные, такие как обзор состояния, комментарии, детали ревизии и многое другое. С его помощью вы можете включить обзор статистических данных в отчетности приложений или даже управлять созданием и бизенс-процессом обзора, из IDE например.
