Подтвердить что ты не робот

Обзор кода в Java?

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

4b9b3361

Ответ 1

Прежде всего, получите часть литературы для обзоров кода Fagan: в обзоре кода есть много вещей, которые могут сделать их более эффективными, но не зависят от языка.

После этого я бы поискал следующее:

  • Размер класса и метода: большие классы и длинные методы, как правило, более ломкими.
  • Можете ли вы сказать, что такое "секрет" класс, то есть вы можете сказать, как он инкапсулирует потенциальное изменение?
  • В общем, ищите агрегацию над внедрением интерфейсов и интерфейсы по наследованию.
  • Особенно, если вы делаете TDD или дисциплинированное модульное тестирование, ищите интерфейсы для большинства основных классов; это облегчает сборку объектов и изменить позже.
  • Javadocs соответствует стандартам.
  • Избегайте сложных соединений заявления.
  • "Свободные" имена методов, то есть вы хотите уметь читать методы как предложения. "если объект инициализировано "следует читать if(obj.isInitialized())".
  • Комментарии отражают то, что делает код.
  • Код делает то, что ожидается.

Ответ 2

Вот неполный список:

  • Соблюдение стандартов и рекомендаций (это означает, что для вашего проекта должны быть установлены стандарты кодирования)
  • Documenatation. Весь хороший код должен быть документально оформлен.
  • повторяющийся код (кандидат на рефакторинг)
  • значащие имена переменных
  • области переменных и методов (private vs public)
  • Использование хороших шаблонов проектирования (если возможно)
  • Хорошие тестовые примеры, связанные с кодом. Предпочтительно автоматизированные тестовые примеры (автоматизировать все тестовые примеры непросто, хотя это желательно. Если это так, он должен документировать, как тестировать данную функциональность).

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

Все они могут быть сконфигурированы с автоматическим процессом сборки/непрерывной интеграции и проверять наличие проблем даже до того, как вы просмотрите обзор ручного кода. Я использовал PMD и Checkstyle в своем последнем проекте, и я был приятно удивлен, что многие проблемы были обнаружены и исправлены еще до того, как мы сели за обзор кода.

Вот статья, которую я всегда разделяю с моей командой для просмотра кода. Это просто описывает общие рекомендации, связанные с обзорами кода. http://www.developer.com/java/other/article.php/3579756

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

Ответ 3

Думаю, вам нужно немного больше информации в вашем вопросе. Кроме того, я добавил бы еще несколько тегов, кроме Java. В целом, чем больше деталей вы предоставляете, тем лучше получаете ответы:)

Вот несколько ссылок, которые помогут ответить на ваши вопросы:

http://en.wikipedia.org/wiki/Fagan_inspection

Вот несколько статей, которые могут помочь: - http://www.developer.com/java/other/article.php/3579756- http://today.java.net/pub/a/today/2006/08/17/code-reviews.html- В принципе, я бы Google вокруг и спрашивать о StackOverflow помогает

Возможные инструменты: - https://stackoverflow.com/questions/131153/open-source-code-review-tools-mondrian

Ответ 4

В дополнение к тому, что было сказано, я действительно рекомендую Jupiter, инструмент для проверки кода Eclipse. Хорошо работает, и они исправляют любые ошибки довольно быстро.

Ответ 5

Code Collaborator - это еще один инструмент проверки однорангового кода, и один из них упоминается в других вопросах о просмотре кода.

Фактически, Code Collaborator был признан "правильным ответом" и имеет большинство голосов в вопросе " "Лучшие инструменты для просмотра кода" .

(Да, я работаю для Smart Bear, создателя Code Collaborator.)

Ответ 6

не только для java, но есть веб-инструмент под названием Crucible для просмотра (кода, но может быть применим для других ориентированный на код, а не только на Java).


** раскрытие: я работаю для атласа. *

Ответ 7

В дополнение к приведенным выше ответам мы смотрим на следующие вещи в наших обзорах кода:

  • Закрытие всех потоков в блоке finally
  • Обработка исключений. Мы предпочитаем использовать Logger для регистрации вместо ex.printStackTrace() в нашей компании
  • Удалить неиспользуемые методы/переменные
  • Ищите потенциальную причину NullPointerException

Ответ 8

Я использовал как Юпитер, так и Crucible, и я бы рекомендовал Crucible, если у вашего магазина есть требования и условия, такие как:

  • Имейте много разных строк кода, которые вы хотите быстро просмотреть.
  • Хотите, чтобы у вас было много небольших отзывов, чтобы проверить изменения.
  • У разработчиков, работающих удаленно
  • У разработчиков, использующих разные IDE
  • Ваша команда использует Confluence и Jira. Crucible прекрасно сочетается с двумя инструментами.
  • У вас есть бюджет, чтобы тратить деньги на инструмент проверки кода.

Юпитер хорош для маленьких, дисциплинированных команд, использующих Eclipse. Список рассылки является отзывчивым, и лучшая часть - это Юпитер.

Ответ 9

Вы можете использовать AgileReview. Это плагин eclipse для просмотра кода на разных языках, а также Java.