forumСоздать тему

Как выстроить культуру код-ревью? Наблюдения за десять лет

RRıdvan Y***18 дней назад·48 сообщений·17,1 тыс. просмотров#команда#качество#процесс
RRıdvan Y***Эксперт
Должность
Тимлид разработки
Дата регистрации
сент. 2023 г.
Сообщение
196

Doki · Интерфейсный дизайн · 2023

#1

Давно руковожу командой, напишу не спеша, потому что главная ошибка в этом деле — торопиться.

Код-ревью — это не проверка на ошибки, а инструмент обучения. В командах, где это не понимают, процесс всегда катится к одному и тому же: сеньор ищет баги, джун защищается, ревью тормозят, в итоге все апрувят, не читая.

Накопил несколько рабочих правил, поделюсь.

Отправляйте мелкими кусками. Никто реально не читает изменения на 500 строк, все просто пишут «выглядит норм». При изменениях меньше 200 строк количество найденных проблем заметно растет.

Пишите комментарии про код, а не про человека. Вместо «почему ты так сделал» спрашивайте «что будет, если тут вот такая ситуация». Та же информация, но разговор совсем другой.

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

CCerenУчастник
Должность
Тестировщик
Дата регистрации
март 2024 г.
Сообщение
178
Самый полезный#2

Согласен насчет тестов, но вопрос: у вас зафиксировано, что именно искать на ревью?

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

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

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

KKayahanУчастник
Должность
Full-stack
Дата регистрации
июнь 2024 г.
Сообщение
118
#3

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

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

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

AAhmetНовый участник
Должность
Студент · разработка ПО
Тип организации
семейный бизнес
Дата регистрации
янв. 2025 г.
Сообщение
48
#4

Могу я как новичок кое-что сказать?

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

Не знаю, только у меня так или у других тоже бывает.

RRıdvan Y***Эксперт
Должность
Тимлид разработки
Дата регистрации
сент. 2023 г.
Сообщение
196

Doki · Интерфейсный дизайн · 2023

#5

Не только у вас, это очень распространено, и исправлять это наша задача, а не ваша.

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

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

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

SSerhatУчастник
Должность
Go-разработчик
Дата регистрации
май 2024 г.
Сообщение
88
#6

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

SSinemЭксперт
Должность
Руководитель проектов
Дата регистрации
окт. 2023 г.
Сообщение
176
#7

Предупреждение от проектного менеджмента: закладывайте время на ревью в план.

У нас было так: долго не считали ревью частью работы, в плане только время на разработку. Итог: каждое ревью воспринимали как «то, что тормозит работу», и делали для галочки.

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

GGürkanУчастник
Должность
Энергетика
Тип организации
бутиковое агентство
Дата регистрации
нояб. 2023 г.
Сообщение
94
#8

Я сталкивался с тем же.

AAyşegülУчастник
Должность
Бутик-отель
Тип организации
производство
Дата регистрации
авг. 2024 г.
Сообщение
86
#9

Именно так. Если не зафиксировать это письменно с самого начала потом возникнут споры.

Оставлю как заметку, пригодится.

TTolga Y***Эксперт
Должность
Специалист по экспорту
Отрасль
Типография
Тип организации
сеть магазинов
Дата регистрации
авг. 2023 г.
Сообщение
3
#10

Полностью согласен. То, что делают все, не значит, что это правильно.

Пишите, если есть вопросы, отвечу по мере возможности.

TTülay K***УчастникУчастник сообщества
Дата регистрации
март 2023 г.
Сообщение
216
#11

У меня было наоборот, поэтому и пишу. Главное не цифра, а то, на основе чего она получена.

Если напишете результат здесь, это поможет и другим.

ŞŞerife K***Ветеран
Должность
Руководитель клиники
Отрасль
Электротехника и электроника
Тип организации
стартап на ранней стадии
Дата регистрации
дек. 2023 г.
Сообщение
128
#12

Хочу предупредить. Прежде чем принимать решение, посмотрите, какие данные у вас есть.

Процесс, по которому не ведется учет, не улучшается, потому что вы не знаете, что именно улучшать. Интересно есть ли те кто делает иначе.

KKaan G***ЭкспертУчастник сообщества
Дата регистрации
июнь 2023 г.
Сообщение
94
#13

Слежу за темой.

EElif B***Участник
Должность
Координатор курьерской службы
Отрасль
Медицинские услуги
Тип организации
компания в составе холдинга
Дата регистрации
дек. 2023 г.
Сообщение
228
#14

У нас так же.

AAlper E***УчастникУчастник сообщества
Дата регистрации
дек. 2024 г.
Сообщение
184
#15

Сохранил.

JJülide A***Участник
Должность
Главный бухгалтер
Отрасль
Ювелирные изделия
Тип организации
компания из 20 человек
Дата регистрации
май 2024 г.
Сообщение
103

Doki · Сканирование уязвимостей · 2026

#16

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

Я бы пошел этим путем.

GGökhan A***Участник
Должность
Производитель · мебель
Дата регистрации
окт. 2023 г.
Сообщение
74
#17

Извините, но это верно не во всех случаях. Решения, работающие в малом масштабе, рушатся при росте я узнал это слишком поздно.

Исправьте, если я ошибаюсь.

YYasemin S***УчастникУчастник сообщества
Дата регистрации
февр. 2024 г.
Сообщение
42
#18

Редко встретишь текст с такой ясностью изложения. Не стесняйтесь спрашивать молчание всегда обходится дороже.

Если скоуп растет, должен расти либо срок либо бюджет. Третьего не дано. Интересно есть ли те, кто делает иначе.

RRecepНовый участник
Должность
Сантехник
Тип организации
компания из 20 человек
Дата регистрации
дек. 2024 г.
Сообщение
22
#19

очень актуальная тема.

AAlper P***Участник
Должность
Системный администратор
Отрасль
Недвижимость
Тип организации
компания из 20 человек
Дата регистрации
авг. 2024 г.
Сообщение
85
#20

Взял на заметку, спасибо.

Написать ответ