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»?

Связанные уроки

  • se-04
Code review в open source

0

1

Войти