Чи доречно мати позитивні коментарі в оглядах коду чи це виключно для конструктивної критики?


36

Останнім часом я багато перевіряю код, і я не впевнений у позитивних та негативних ефектах та професіоналізмі розміщення позитивних та / або смішних коментарів у оглядах коду.

Ми використовуємо Github як нашу платформу для перегляду коду в моїй команді, тому коментарі може бачити кожен. Я, як правило, намагаюся використовувати цю платформу, щоб весь процес від початку до кінця був видимим та історичним.


Так, я розумію, що це багато в чому стосується культури, але я шукаю загальну відповідь.
Codeman

22
Важливо підкріпити те, що ви хочете бачити, позитивними коментарями.

2
Я не знаю, чи підходить це, але іноді я публікую кодування хайкусів в оглядах: молодший програміст - ваш коментований код - як осколки болю.
янніс

Я насправді молодший програміст, який переглядає код старшого - у нас тут досить жорсткий процес, весь код треба переглянути :)
Codeman

Відповіді:


53

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

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


Чи можете ви додати примітку до "чому це важливо"? Я відзначу як прийняте, коли ви це зробите :)
Codeman

3
Це дає людям знати, що те, що вони роблять (написання хорошого коду), цінується, і зберігає фокус на зростанні, саме тому, про що йдеться в оглядах коду.
Джонатан Річ

1
Чи можете ви додати це до своєї відповіді?
Codeman

2
+1 ви заслуговуєте на приємний знак відповіді для цього. Кількість місць, які не оцінюють достатньо конструктивної критики, мене завжди дивує. Сказати людям, що вони роблять хорошу роботу, коли вони роблять хорошу роботу, може бути дивно ефективним мотиватором.
Бенджамін Груенбаум

@ Бенджамін: занадто багато організацій розглядають перегляд коду як «пошук дефектів, які я кодую», а не як «дозволяє створити команду з високою ефективністю». На мій досвід, огляди коду - це найшвидший і найкращий спосіб усунути бар'єри, які заважають командам програмного забезпечення дійсно працювати. У нас є стандарт нотації, де ми префіксуємо коментарі з -2 (треба виправити), хоча до +2 (чудова робота).
mattnz

8

Смішно: збережіть його для охолоджувача води, за винятком мінімальних доз - наявність чорносливу не обов'язкова для перегляду коду.

Позитивні: Безумовно. Огляд включає як позитивний, так і негативний / конструктивний за визначенням.

Позитивні відгуки допомагають усім:

Коли ви отримуєте великі пальці вгору, ви зміцнюєте їхню впевненість і надихаєте їх на те, щоб зробити те саме завдяки вашим позитивним відгукам.

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

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


3

Я б сказав, що слід залишати коментарі чистими і чіткими, саме через культуру.

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


1
Влучне зауваження. Бути "смішним" в коментарях може легко отримати зворотній зв'язок, особливо в багатомовній, мультикультурній обстановці.
David Navarre

2

Коментування в огляді коду - це керування

Розглядайте коментарі як інструмент управління

Вставлення коментарів до огляду коду - це форма управління. Як такий, до нього слід підходити як до інструменту управління.

Використовуйте управлінські практики, коли коментуєте

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

Середовище

Культура

Навколишнє середовище диктує стиль управління. Культуру та середовище робочого місця слід пам’ятати при використанні будь-яких інструментів управління. Зазвичай на це впливає галузь і розмір компанії чи суб'єкта господарювання.

Стиль

Якщо є безтурботна культура, то це може зустрітись у стилі управління, який використовується. Якщо є дуже суворі вказівки, політики та наслідки, то це повинно бути відображено у використаному стилі. Тож, якщо всі на борту зіркового вогню жартують, посилаючись на дроїдів та слабодушного штурмовика, то може бути застосований комедійний заклик. Однак, якщо є серйозні наслідки не сприйняття кінцевого результату всерйоз, то, можливо, його потрібно буде уникати.

Лідерство

Основи

Є три основні стовпи керівництва, які слід враховувати, коментуючи. А саме - це бачення, спілкування та судження.

Vision

Важливо, коли слід пам’ятати про велике бачення під час пояснення чи надання інструкцій. У коментарях це може означати вказівку на те, як невеликі зміни впливають на проект в цілому, які наслідки мають різні підходи, або підказку капелюха для роз'єднання проблем.

Communication

Бути хорошим комунікатором важливо у багатьох аспектах життя. У коментарях він не відрізняється. Застосування розумного рівня стислості важливо - тим більше, що коментарі не повинні займати багато місця. Достроково дістаньтесь до пункту, а потім при необхідності підкріпіть його прикладом. Для більшої організації це може також включати необхідність надсилати комюніке або повідомлення, якщо питання не локалізовано на одному сеансі огляду.

Judgement

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

Організація

З точки зору менеджменту, організація стосуватиметься пам’яті про кінцеву мету та забезпечення того, щоб процеси узгоджувались відповідно до набору правил. Коментарі також повинні пам’ятати про це, оскільки коментарі, коли це можливо, спираються один на одного, щоб переконатися в дотриманні потоку дизайну. Також важливо мати на увазі сферу дії коду, який переглядається, щоб зменшити зв'язок та дотримуватися загальної конструкції.

Контроль

Контроль дій тих, хто ними керує, є делікатним процесом. Будучи твердим, слід пам’ятати, що люди важливі. Є кілька управлінських навичок, які використовуються під час контролю над іншими. Ці навички політичні, концептуальні, міжособистісні, діагностичні та технічні.

Політичні

Політику можна знайти, коли є взаємодія між людьми. Це величезна тема, але в загальному сенсі політика обертається навколо впливу. Важливо пам’ятати про особисту та професійну політику на роботі, роблячи коментар. Це може бути пов’язане з інструкцією, жартом чи навіть питанням.

Концептуальні

Управління за допомогою концептуалізації є важливим інструментом. Він вимагає комплексного аналізу ситуації, що знаходиться в цій ситуації. Коментуючи, може бути корисним включити деякий аналіз, який використовується для висновку чи зміни, зазначеного в огляді.

Міжособистісне

Міжособистісні навички дуже важливі при управлінні. Це теж велика тема. Однією з важливих речей, які слід враховувати при міжособистісних навичках, є наставництво, конструктивна критика та "гарпун".

Mentoring

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

Constructive Criticism

Критика важлива, оскільки викликає рефлексію. Однак критику слід підтримувати максимально позитивно, коли вона може бути. Це означає запропонувати вагомі докази на підтвердження критики, а також гарантувати, що використаний тон не є негативним. При перегляді коду це може включати показ винятку або можливий сценарій, який би генерував помилку, маючи на увазі рішення, а не показував кожне місце, яке було неправильним, коли весь фрагмент коду потрібно було б замінити в будь-якому випадку.

"Harpooning"

"Гарпунінг" - це коли ти образно гарпуниш когось на землю. Це робиться, розбиваючи їх крок за кроком без будь-якого відшкодування до тих пір, поки вони не зможуть встати. Якщо ви переслідуєте людину в перегляді коду чи в іншому місці, ви втратите їх співпрацю. Важливо уникати надмірного злому.


Резюме

Розглядайте коментарі в огляді коду як інструмент управління. Майте на увазі, що коментарі повинні бути короткими, суттєвими та конструктивними. Також слідкуйте за тим, щоб коментувати особу, яку перевіряють, враховувати.


Перегляд коду не повинен бути управлінським. Інша його назва - "PEER review" з поважних причин. Інше питання, з яким я маю відповідь, це те, що це повинен бути код, який розглядається, а не людина. Якщо огляд коду трактується як огляд людини, він (або скоро стане) інструментом управління для "побиття людей". Побачте, як він стане вхідним кодом KPI, і спостерігайте за іграми, які грають колеги - "Цей код міг би бути кращим, я дозволю його ковзати, якщо ви пообіцяєте перейти на наступну
крапку

@mattnz - Ровесники часто керують один одним. Більше того, не всі організації працюють за чітко встановленою ієрархією зверху вниз, і в цьому випадку колеги є ключовим фактором управління. Однак я сумніваюся з вашою твердженням, що перегляд коду не стосується особи. Для виправлення поганих звичок кодування потрібні фактичні вказівки, і видання, що вказівки витонченими та шанобливими способами є дуже важливими, щоб воно було успішним.
Travis J

@mattnz - Також зауважте, я ніколи не маю на увазі, що огляд коду є оглядом людини. Я зауважую, що ви тут підтримали прийняту відповідь, з якою я також згоден. Однак дивним є те, що відповідь явно зосереджується на особі, купуючи їм піцу і особисто пропонуючи їм похвалу. У мене немає жодних проблем з цим, але як ви можете сказати, що це також не може стати "оглядом людини". Якщо чесно, то, схоже, ви читаєте лише перше і останнє речення цієї відповіді.
Travis J

0

Огляди коду - це інструмент для поліпшення якості коду, частково шляхом виявлення дефектів. Що ще важливіше, ви хочете прищепити хороші практики кодування.

З цього погляду важливо коментувати добре зроблені речі. У контексті навчання слід також коментувати поліпшення. Якщо ваша культура - це постійне вдосконалення, то ви завжди повинні коментувати вдосконалення.

Помилки, помилки та погане кодування трапляться. Вкажіть на них неособисту манеру та поводьтеся з ними як слід.

З точки зору модифікації поведінки, винагорода набагато краща за зміни, ніж покарання. Я вважаю, що хороша робота помічена як винагорода.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.