Перейти к содержимому

Написание хороших PR и README

В Code Review описание PR — это входная точка для ревьюера. Хорошее описание PR:

  • Позволяет ревьюеру быстро понять, что вы сделали
  • Сокращает количество вопросов и уточнений
  • Показывает, что вы тщательно продумали решение
  • Экономит ваше время, когда вы вернётесь к истории через 3 месяца

Краткое резюме, одно предложение.

Refactor authentication flow to support OAuth2 and magic link sign-up

Ключевые выражения:

  • Add X — добавление новой функции
  • Fix X — исправление бага
  • Refactor X — переписывание кода (без изменения функциональности)
  • Optimize X — улучшение производительности
  • Implement X — реализация определённого дизайна

Наиболее часто пропускаемая часть. Объясните контекст и мотивацию.

Why:
- Users requested passwordless sign-up option
- Current session-based auth doesn't scale to multiple domains
- OAuth2 is industry standard for enterprise integrations

Высокоуровневый обзор технической реализации.

How:
1. Created JWT service using Web Crypto API for signing/verification
2. Replaced SessionMiddleware with AuthMiddleware that validates JWT
3. Added OAuth2 routes for Google/GitHub sign-in
4. Migrated user session storage from cookie to JWT claims
Breaking changes:
- Moved user auth state from server session to JWT (stateless)
- Clients now need to store and send JWT in Authorization header
Testing:
- Manual testing: Verified OAuth2 sign-in with Google and GitHub accounts
- Existing auth tests pass (147 tests)
- Added 23 new tests for JWT and OAuth2 flows
- Load tested with 1000 concurrent requests (no issues)

Грамматические ловушки технического письма

Заголовок раздела «Грамматические ловушки технического письма»

Принцип: настоящее время для описания работы кода, прошедшее — для описания ваших изменений

ОшибкаПричинаПравильно
”The function was created to handle X”Звучит как исторический рассказ”The function handles X"
"The code will validate input”Слишком неопределённо”The code validates input”

2. Артикли (типичная ошибка русскоязычных)

Заголовок раздела «2. Артикли (типичная ошибка русскоязычных)»

Принцип: при первом упоминании “a/an”, далее “the”; или используйте множественное число, чтобы избежать артиклей

ОшибкаПравильно
”We refactored authentication flow""We refactored the authentication flow"
"Function handles case when user logs in""The function handles the case when a user logs in”

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

ПассивныйАктивный (лучше)
“The JWT is generated by the server""The server generates the JWT"
"Breaking changes were introduced""This PR introduces breaking changes”
СловоИспользование
AddДобавление совершенно новой функции: “Add OAuth2 support”
ImplementРеализация известного дизайна: “Implement the design from #123”
RefactorУлучшение существующего кода без изменения функциональности: “Refactor auth middleware”
OptimizeПовышение производительности: “Optimize query performance”
FixИсправление бага: “Fix race condition in cache”

Перед отправкой PR проверьте:

  • What — ясно описывает изменение
  • Why — есть бизнес- или техническое обоснование
  • How — высокоуровневый дизайн понятен ревьюеру
  • Testing — описано покрытие тестами
  • Нет избыточного пассивного залога
  • Артикли использованы правильно (“the” vs “a”)
  • Времена согласованы
  • Есть ссылки на связанные issue (при наличии)