Как вы делаете обзоры кода?

Недавно я перешел из компании с 30 или около того разработчиками, основанными на одном сайте, в небольшую компанию, в которой работают 6 разработчиков по всей стране.

Раньше, когда я проводил проверку кода, рядом со мной сидел человек, или я ходил к его / ее ПК и просматривал код вместе с ними.

В моей новой компании это невозможно, так как люди повсюду. Мне дали на рассмотрение пару тысяч строк кода, и я не могу просто высказать кому-то свои мысли.

Единственный способ, которым я могу придумать, - написать документ для проверки кода. Поэтому я прибегнул к вставке кода в Word и аннотированию его с помощью небольшого количества пузырьков, которые вы получаете.

Есть ли более простой способ сделать это? Я долго думал, что Visual Studio должна иметь систему мета-комментариев, которая предоставит вам аналогичные функции и позволит вам писать комментарии на более высоком уровне.

Есть ли инструменты, которые делают это? Если нет, то как люди делают обзоры распределенного кода?

13 ответов

Решение

Возможно, вам захочется прочитать книгу "Умный медведь": лучшие секреты рецензирования кода.

Это бесплатно (включая доставку, если вы находитесь в США), поэтому нет особых причин не получать его. С другой стороны, это отличная небольшая книга с примерами из реальной жизни о том, как лучше всего выполнять рецензирование кода, поэтому есть много причин заказать его.

Я хотел бы, чтобы была лучшая поддержка для этого типа задач, встроенных в Visual Studio. Хотя есть некоторые интересные дополнения, которые могут помочь. Если вы используете Visual Studio Team System, взгляните на TeamReview. Это позволяет создавать специальные рабочие элементы Code Review, которые впоследствии могут быть "воспроизведены" кем-либо.

http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=TeamReview&DownloadId=32263

Ознакомьтесь с предложениями по этому вопросу:

https://stackru.com/questions/403/tool-to-aid-code-review

У нас есть разработчики со всего мира. Мы используем Smart Bear's Code Collaborator. Как и любой инструмент, он не идеален, но, безусловно, выполняет свою работу. Это веб-интерфейс и легко учиться.

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

Чтобы помочь нашим разработчикам выполнять проверки, мы составили контрольный список проверки кода (доступен по адресу: http://www.macadamian.com/index.php?option=com_content&task=view&id=27&Itemid=31).

Наш секрет кодовых обзоров: обзор небольшой, обзор часто.

Есть инструмент: http://www.smartbear.com/codecollab.php

http://www.review-board.org/

Я видел этот проект не так давно, возможно, за него проголосуют, если его будут использовать.

Если возможно, начните с тестовых случаев - попросите человека провести вас через тестовые случаи. Это показывает дизайн и то, что разработчик думал, решит проблему (и). Погрузитесь в контрольные примеры и посмотрите на код.

Кроме того, взгляните на отчеты о покрытии кода, автоматически генерируемые из сборки. Это может быть хорошим показателем на тестовых дорожках.

Вот где я бы начал.

У JIRA есть возможность назначить кого-то для проверки кода вашей работы, после чего он / она может давать комментарии в JIRA.

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

В итоге мы получили достаточно легкий процесс: - Для любого нетривиального фрагмента кода экспертная проверка обязательна. - Чтобы выполнить рецензию, автор создает "упакованный список изменений" (проверьте это в сообществе управления версиями). Это в основном один файл, расширяемый ZIP со всеми изменениями, внесенными в этот кусок работы. - Автор отправляет электронное письмо рецензенту с упакованным списком изменений (обратите внимание, что он еще не отправил его!) - Рецензент асинхронно просматривает код и добавляет комментарии в электронное письмо. - Если у рецензента есть серьезные возражения, код не допускается до следующего раунда проверок; в противном случае автору разрешается регистрироваться после того, как они исправят предложения ИЛИ откроют ошибки, чтобы исправить предложения.

Мы добились определенного успеха, используя функцию полки TFS для проверки распределенного кода. Используя наборы полок, разработчик может "зарегистрировать" набор изменений, не отправляя их в ветку. Затем другой разработчик может восстановить набор изменений и просмотреть различия в фиксированной ветви. Когда все заинтересованные стороны довольны изменениями, они отправляются в ветку.

Что ж, я расскажу вам, что делает моя компания, так как она хорошо работает для нас (около 10 разработчиков и PM PMPL). YMMV.

Мы осуществляем наше управление изменениями с использованием Subversion и ClearQuest (используется для использования ClearCase, чтобы отказаться от CQ). Мы вносим наши изменения, создаем файлы патчей с использованием Subversion, а затем помещаем патч в запись CQ и передаем CQ. Низкотехнологично, но это работает. Очевидно, вы можете изменить его для работы с любым приложением, которое вы используете.

Очень легкий процесс, который мы использовали, заключается в использовании Microsoft SharedView и Skype как для парных сеансов программирования, так и для проверки кода. Конечно, это не так формально, как политика регистрации, но может быть хорошим началом для разработки стандартов, прежде чем увековечивать их в политике регистрации.

Другие вопросы по тегам