2009-08-20 6 views
26

Мне удалось представить ReviewBoard для рабочего процесса кодирования в моей компании, а «ввести» означает установить и представить его. У нас также есть общее согласие о том, что нам очень нужны обзоры кода, однако мы не совсем уверены, как мы это хотели бы сделать.Успешная стратегия просмотра кода с помощью SVN и ReviewBoard?

Наш главный контроль над версиями - SVN, поэтому мы скорее ограничимся разветвлением и слиянием. Некоторые стратегии, о которых я думал:

  1. Предварительный анализ с багажника. Плюсы включают в себя наличие одного патча, не имеющего незарегистрированного кода в репозитории. Контрасам приходится держать ваш чек в чистом виде или заниматься разветвлением бедных людей с несколькими проверками.
  2. Послеконфликтный обзор с багажника. Работает отлично с Review Board, однако это не мешает людям совершать грязный код, а также позволяет им игнорировать запросы на просмотр.
  3. Пост-фиксация обзора от ветви признака. Плюсы очевидны, так как функция может работать независимо, однако есть большая боль при создании серверных ветвей, а также гораздо больший эффект от синхронизации разных ветвей. См. Также пункт 2.

Я хотел бы сделать это максимально безболезненным, поэтому есть несколько возможных автоматических дополнений к рабочему процессу, например, наличие робота, совершающего код, который заработал как минимум X «Корабль!». голосов и сделать обзорный совет «следить» за веткой функций с фиксацией. Тем не менее, я не уверен, какой рабочий процесс проверки кода может быть лучшим для нашей команды из примерно 8 кодеров. Мы не сможем изменять системы контроля версий, т. Е. Git-svn и SVK не могут быть и речи (хотя последний все равно мертв).

Вы можете порекомендовать что-нибудь из своего опыта?

ответ

4

Base вам система на доверии и ответственности и держать его легкий вес:

  1. благоразумие: «Вы можете проверить что-либо в любое время. Попросите провести проверку кода, когда вам это нужно. Добавьте «просмотренный» к комментариям, если он был пересмотрен для облегчения быстрых обзоров.
  2. Доска отзывов ответственна за контроль изменений через фиксации фиксации. Если они видят что-то, что им не нравится, возьмите его с разработчиком. Различные участники могут просматривать разные разделы.
  3. Если разработчик продолжает проверять дерьмо, не спрашивая о пересмотре, уволите их.
  4. Если есть разделы системы, которые необычайно сложны/центральны/легки в беспорядке - заблокируйте их и требуйте подтверждения для регистрации.
  5. Каждый может контролировать регистрацию. Рецензия - это не только обзорная доска.

Я видел эту работу с 2-мя разработчик и 100.

+5

Я думаю, вы неправильно читаете «Обзорный совет» как «обзорный совет». Это не комитет, а программное обеспечение: http://www.review-board.org –

5

комба вашей # 2 и # 3 (возможно, с сокращенными обзорами магистральных, если ветвление функции уже рассмотренными) может хорошо работать , Я считаю, что предварительные оценки немного удушливые - лучше иметь энтузиазм (зажженный вами?) Для обзора, заражающий всю команду.

Я рекомендую ознакомиться с бесплатной книгой SmartBear, Best Kept Secrets of Peer Code Review, что является довольно беспристрастной обработкой esp. учитывая, что его автор продает коммерческий пакет для обзора кода. (Я не работаю для них, и я не использую их продукты, FWIW.)

Эта книга поможет вам проанализировать как возможные рабочие процессы для вашей среды, так и как представить рабочие процессы, объяснив команде, почему вы, возможно, захотите обратиться за обзорами x-сто LoC или менее, или иметь немного обзорной экскурсии и т. д.

4

Мы находимся в аналогичной позиции.

У вас есть svn настроенный для отправки по электронной почте всем вашим разработчикам с каждой фиксацией? Это хороший первый шаг в обеспечении честности каждого. Мы отправляем электронное письмо с сообщением журнала, первые 200 строк svn diff и ссылку на весь diff в trac (который в основном используется только для отображения svn diffs).

Если разработчик считает, что изменение нуждается в пересмотре после факта, мы используем ReviewBoard для проведения обзора.

С другой стороны, разработчики также могут запросить проверку перед регистрацией. Независимо от того, разработали ли они изменения в ветви функциональности или в изолированной программной панели, не имеет значения. Мы рассмотрели адаптацию сценариев для загрузки запроса на просмотр из командной строки, но процесс настолько прост, что мы еще этого не сделали, по крайней мере пока.

Моя общая рекомендация - представить ручную систему и автоматизировать ее и, возможно, применить ее к сценариям предварительной фиксации, как только вы довольны процессом. С небольшой командой особенно лучше ошибиться на стороне принудительного давления, поскольку вы хотите свести к минимуму количество небольших процессов убийства производительности.

4

Мы недавно представили обзорный блок в нашем процессе. Прежде чем мы добавили ReviewBoard, у нас было следующее:

  1. SVN с электронной почтой автоматически отправляется всем разработчикам для каждой регистрации.
  2. ViewCV интегрирован с возможностью просмотра различий после фиксации с помощью браузера.
  3. Скрипт SCM-error, интегрированный с SVN, поэтому разработчики должны включать в себя большой идентификатор с их проверок.
  4. Buildbot интегрирован с SVN для автоматического запуска тестов после каждой регистрации.

Поскольку мы уже имели материал post-commit, достаточно хорошо разбирающийся в других вещах, мы используем ReviewBoard как инструмент предварительной фиксации и только после того, как мы нажмем «feature-complete» для данной версии.

0

В крупных разработках ветви признака неизбежны. С SVN невозможно «обновить» ветвь функции из соединительной линии, как с рабочей копии. Однако у вас могут быть частые слияния и создания новых филиалов.

Кстати, РБ знает, как обрабатывать отзывы, сделанные перед фиксацией.

1

Я согласен с первым мнением: зафиксироваться обзор от ствола

Поскольку использование Просмотра Кода инструментов, убедитесь, не Нерецензированный кода в хранилище, и держать проверку чистой

+3

Это не новый ответ. В лучшем случае это должен быть комментарий к ответу, с которым вы согласны. – David