Code review

Jun. 8th, 2017 04:27 am
stdray: (Default)
[personal profile] stdray
Регулярно читаю в твитттуре, что мол парни, чей код просматривают, неадекватно реагируют на критику. Ну или не только парни, может и девушки, но этот нюанс не раскрыт. И все эти росказни сводятся к тому, что люди типо реально начинают переживать. Дальше идет пояснение, что не надо воспринимать критику своего кода на свой счет. Дескать, ты не тупой мудак, просто код твой - говно. А затем разворачивается не сильно большая, не особо маленька, а такая, прямо в меру, дискуссия, как же правильно ревьюить чужой код. Набегают профессионалы самых разных высот квалификации, высказывают авторитетные мнения, которые начинают интерферировать. Ну это же понятно, что анскилед лелкам в твитторг путь заказан, потому там только ревьюверы сидят, а не ревьювируемые. И какбэ все хорошие ревьюверы хороши одинаково, а вот ревьювируемые мудаки - мудаки по своему.

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

Я щитаю, что из этого надо сделать буллшит бинго. По крайней мере, разнобразит рабочий процесс. Хотя у таких ребят, похоже, рабочий день и без того увлекательный. Вместо review какой-то детский сад, а мы тут вроде воспитатели, но дети должны думать, что они тоже профессионалы. Очень интересно. Зачем вообще нужно ревью, какова его ценность, кроме того, что это - "полезная практика"?

Я к этому отношусь очень просто. Люди делают свою работу, получая за это деньги. Платят ли за то, что кто-то там является тонким психологом, который может провести ревью и не травмировать пациента? - нет. Если критикуют твою работу, воспринимаешь ли ты это на свой счёт? - конечно да. Это нормально и даже хорошо, потому что люди, которым похуй, необучаемы. Можно ли устраивать дискуссию по результатам ревью? - 100%. Понятно, что может быть субординация, могут просто сказать переделать и всё, тут ничего не поделаешь. Но надо понимать, что если мы считаем человека профессионалом, то он потратил на задачу минимум в 10 раз больше времени, чем ревьювер. И логично, что у него есть право отстаивать свои решения. Можно ли обучать посредством ревью? - тоже да. Если претензии по существу, а человек не учится на своих ошибках, то нахер он нужен. Или вот он написал код, для которого уже есть готовые решения, то что? Понятно, если такая проблема возникла, то человека надо просветить, а кто уж это сделает вопрос второстепенный.

Отдельно стоит отметить "разделение ответственности", типо одна голова - хорошо, а две - лучше и все такое. Я не видел, чтобы ревьювер нес какую-то ответственность. Говнокод всё равно проникает, а ревьювер исчезает из поля зрения. Видели такое, что обнаруженый баг в этом фрагменте кода заставляли фиксить ревьювера? Если да, то расскажите, как это просиходит. Потому что для меня вопрос мотивации ревьювера, пожалуй, является ключевым. И нормально отсматривает кодярку только тот, кто отвечает за енту самую подсистему. Ну или, может, в бодишопе 21 века, про который рассказывает Егор, потому что там за енто платят.

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


PS: есть одна неправильная аналогия, но всё же. Во всяких колл-центрах и прочих техподдержках работают ребята, чья зарплата на 40% состоит из оклада, а 60% - из премий. И вот это вот "ваш разговор может быть записан..." ведет к тому, что специально обученные люди находят отклонения от методички или там "нецелесообразные действия" после чего сотрудника депремируют. Очень мало сотрудников оспаривают эти решения, в основном, как раз из-за субординации. И я иногда думаю, что подобный подход мог бы решить проблему личного отношения. Одно дело, когда типо стыдно за написанную хуету, а совсем другое - терять из-за этого деньги.

July 2017

S M T W T F S
      1
2345678
910 1112131415
16171819202122
23242526272829
3031     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags