Open Source
Code review в open source
Linus Torvalds был известен жёсткими публичными review в LKML. В 2018 году он взял паузу и переосмыслил свой стиль коммуникации. Если автор Linux понял что тон важен - значит это действительно важно.
- Google Code Review Guidelines - публичный документ который повлиял на весь OSS
- Rust Core Team известна исключительно вежливым и конструктивным review
- Linus Torvalds в 2018: «I need to change some of my behaviour» - CoC adoption в Linux
- Vue.js contributor guide специально описывает как давать review комментарии
Как давать хороший code review
Code review в OSS - публичный разговор. Ваши комментарии читают не только автор PR, но и сотни разработчиков в будущем. Тон важен так же, как содержание.
**Prefix-based review** - конвенция popularized by Google и многими OSS проектами. Префиксы `nit:`, `blocker:`, `suggestion:`, `question:` моментально показывают автору насколько важен комментарий и нужно ли отвечать.
Вы видите в PR потенциальную SQL injection уязвимость. Как правильно сформулировать комментарий?
Как получать обратную связь
Получать критику публично - навык. Особенно когда вы потратили часы на реализацию, а reviewer написал три строчки о том почему это не так. Главное правило: **критикуют код, не вас**.
**После изменений - отметьте что сделали.** Не молчите. Напишите «Done» или «Fixed in a7b3c2d» после каждого resolved комментария. Это уважение к reviewer и сигнал что можно re-review. В GitHub можно нажать «Resolve conversation» - используйте это.
Reviewer написал 15 комментариев к вашему PR, большинство - nit. Вы исправили всё. Что делать дальше?
Ключевые идеи
- Blocker/nit/suggestion/question - prefix система для классификации комментариев
- Хороший review: конкретная проблема + объяснение почему + пример как правильно
- Получая review: критикуют код, не вас. Задавайте вопросы, не защищайтесь
- После исправлений: явно сообщите reviewer что всё done, попросите re-review
- Security issues - blocker, всегда с конкретным примером исправления
Связанные темы
Code review - часть более широкой темы общения в OSS-сообществе.
- Следующий урок курса — Логическое продолжение
Вопросы для размышления
- Найдите PR в известном OSS проекте (React, Vue, TypeScript) с активным review. Какие паттерны коммуникации вы видите?
- Как вы бы ответили на комментарий reviewer: «This whole approach is wrong, you should have done X from the beginning»?