Уместно ли иметь положительные комментарии в обзорах кода или это исключительно для конструктивной критики?

36

В последнее время я много пересматривал код, и я не уверен в положительных и отрицательных эффектах и ​​профессионализме добавления положительных и / или забавных комментариев в обзоры кода.

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

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

Ответы:

53

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

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

Джонатан Рич
источник
Можете ли вы добавить примечание относительно «почему это важно»? Когда вы это сделаете, я
отмечу
3
Это позволяет людям понять, что они делают (пишут хороший код), ценится, и сохраняет фокус на росте, а это то, чем занимаются обзоры кода.
Джонатан Рич
1
Вы можете добавить это к своему ответу?
Codeman
2
+1 ты заслужил хороший значок ответа для этого. Количество мест, которые не ценят конструктивную критику, всегда удивляет меня. Сказать людям, что они делают хорошую работу, когда они делают хорошую работу, может быть удивительно эффективным мотиватором.
Бенджамин Грюнбаум
@ Бенджамин: слишком многие организации рассматривают проверку кода как процесс «резиновой штамповки», а не «позволяют создать высокопроизводительную команду». По моему опыту, обзоры кода - это самый быстрый и лучший способ сломать барьеры, которые мешают командам разработчиков по-настоящему работать. У нас есть стандарт нотации, в котором мы добавляем комментарии с -2 (должны быть исправлены), но с +2 (отличная работа).
Mattnz
8

Забавно: сохраните это для кулера для воды, за исключением минимальных доз - наличие чернослива не требуется для просмотра кода.

Положительно: Конечно. Обзор включает в себя как положительный, так и отрицательный / конструктивный, по определению.

Положительный отзыв помогает всем:

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

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

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

Вектор
источник
3

Я бы сказал, держать комментарии в чистоте и точно, именно из-за культуры.

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

ton.yeung
источник
1
Хорошая точка зрения. Быть «забавным» в комментировании может иметь неприятные последствия, особенно в многоязычной, многокультурной среде.
Дэвид Наварре
2

Комментировать в обзоре кода - это управление

Рассматривайте комментарии как инструмент управления

Вставка комментариев в обзор кода является формой управления. Как таковой, он должен рассматриваться как инструмент управления.

Используйте управленческие практики при комментировании

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

Среда

культура

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

Стиль

Если есть беззаботная культура, то это может встретиться в используемом стиле управления. Если существуют очень строгие правила, политика и последствия, это должно быть отражено в используемом стиле. Так что, если все находятся на борту ради шутки в «Звездных войнах», ссылающейся на дроидов и слабовидного штурмовика, тогда может быть применимо комедийное междометие. Однако, если есть серьезные последствия несерьезного отношения к конечному результату, его, возможно, следует избегать.

руководство

основы

Есть три основных столпа лидерства, которые необходимо учитывать при комментировании. А именно, это видение, общение и суждение.

Vision

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

Communication

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

Judgement

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

Организация

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

управление

Управление действиями тех, кто управляется, является деликатным процессом. Будучи твердым, следует также помнить, что люди важны. Есть несколько управленческих навыков, которые можно использовать, контролируя других. Эти навыки являются политическими, концептуальными, межличностными, диагностическими и техническими.

политическая

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

концептуальный

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

Межличностные

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

Mentoring

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

Constructive Criticism

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

"Harpooning"

«Гарпунирование» - это когда вы образно гарпуните кого-то на землю. Это делается путем разрушения их шаг за шагом без каких-либо передышек до тех пор, пока они не почувствуют себя неспособными встать. Если вы используете человека при проверке кода или в другом месте, вы потеряете его сотрудничество. Важно избегать чрезмерного разрушения.


Управляющее резюме

Рассматривайте комментарии в обзоре кода как инструмент управления. Имейте в виду, что комментарии должны быть краткими, конкретными и конструктивными. Также убедитесь, что при комментировании проверяемое лицо принимается во внимание.

Трэвис Дж
источник
Проверка кода не должна быть управленческой. Другое название - «обзор PEER» по уважительной причине. Другой вопрос, который у меня возник с ответом, - это предполагаемый код, а не человек. Если проверка кода рассматривается как проверка личности, она стала (или скоро станет) инструментом управления для «избиения людей». Посмотрите, как он стал входным сигналом в KPI, и посмотрите, в какие игры играют Peers: «Этот код мог бы быть лучше, я позволю ему скользить, если вы пообещаете мне легко
справиться
@mattnz - сверстники часто управляют друг другом. Более того, не все организации работают в строго иерархической иерархии, и в этом случае коллеги являются ключевым фактором управления. Однако я не согласен с вашим утверждением о том, что проверка кода не касается личности. Для исправления плохих привычек кодирования требуется реальное руководство, и очень важно, чтобы это руководство было изящным и уважительным, чтобы оно было успешным.
Трэвис Дж
@mattnz - Также обратите внимание, я никогда не подразумевал, что проверка кода будет проверкой человека. Я заметил, что вы поддержали здесь принятый ответ, с которым я тоже согласен. Однако странным является то, что ответ явно ориентирован на человека, покупая ему пиццу и лично предлагая ему похвалу. У меня нет проблем с этим, но как вы можете сказать, что это не играет роль "обзора человека". Если честно, похоже, что вы читаете только первое и последнее предложение этого ответа.
Трэвис Дж
0

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

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

Будут ошибки, ошибки и плохое кодирование. Укажите их не по личному принципу и относитесь к ним, как и ожидалось.

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

BillThor
источник