Writing Clear Pull Request Descriptions in English

Практичний посібник з написання чітких описів запитів на завантаження англійською мовою: структура, фрази, час дієслова і приклади перед/ після, які прискорять перегляд ваших PR.

Опис запитів на завантаження (PR) є попереднім листом до вашого коду. Рецензенти вирішують, як читати ваш файл diff на основі того, що ви написали у верхній частині. За допомогою чіткого опису ваш PR буде об’ єднано швидше, за допомогою нечіткого опису він буде чекати у черзі декілька днів. Для не-англомовних носіїв англійської, хороша новина в тому, що PR-писання слідує передбачуваній структурі з повторюваними фразами.


Стандартна структура

Більшість команд очікують на чотири розділи, навіть якщо шаблон не передбачає їх використання:

  1. ** Що ** — що змінює ця PR (одне або два речення)
  2. Чому — проблема або мотивація
  3. Як - підхід, який ти взяв
  4. ** Тестування ** — як ви перевірили, чи працює програма

Заголовки не потрібні для невеликих PR, але для чогось нетривіального вони допомагають рецензентам сканувати.


Розділ 1: Що — використовувати теперішній час, наказовий або описовий

Заголовок і резюме описують, що PR * робить *, а не що ви * зробили *. Англійська конвенція тут є ** present simple **, часто у настрої імперативного речення (відповідний стиль повідомлення про перенесення).

** Заголовок: ** Додати логіку повторення спроб до клієнта платежу

  • Нет, не надо Цей PR ** додає ** експоненційне відключення до платіжного клієнта, тому перехідні помилки ** повторюються ** автоматично.

Уникайте оповіді у минулому часі, на зразок « Я додав логіку повторення, а потім перевірив її ». Рецензентам важливий поточний стан коду, а не ваша особиста історія.

WeakStrong
”I have made some changes to the auth.""Refactors the auth middleware to support token rotation."
"This is for fixing the bug.""Fixes the race condition in the session cache.”

Розділ 2: Чому — дати рецензентам контекст

Чому це те, що рецензенти цінують найбільше. Без неї вони не можуть судити, чи правильно ваше рішення. Посилання на проблему і опис проблеми у простих словах.

** Чому: ** Користувачі з повільними з’ єднаннями іноді ** бачать дублікати платежу**, оскільки клієнт не усуває дублікати повторних спроб. Це розв’язує проблему #482.

Корисні фрази:

  • Це ** розв’язує ** довгострокову проблему, де… ”
  • «Причина в тому, що…»
  • «Перед цим, X відбувалося коли б то не було…»
  • Це розблоковує роботу з міграції в #501

“Раніше, працівник ** безшумно скидав ** повідомлення, коли черга була повною. Цей PR робить невдачу явною»

Зауважте використання ** would ** для опису минулої звичної поведінки — це природно і точніше для опису повторюваних помилок.


Розділ 3: Як — пояснити неочевидні рішення

Не переписуйте diff рядок за рядком; переглядачі можуть читати код. Замість цього, пояснюйте вибір, який вони не можуть побачити.

** Як: ** Я ** обрав ** обмежувач бітового відсіку замість фіксованого вікна, оскільки він ** обробляє серії більш граціозно **. Я навмисно опустив метрики, щоб зберегти фокус на PR - це **прийде в подальшому **.

Фрази для пояснення рішень:

  • Я ** вибрав ** X над Y, тому що… ”
  • «Я навмисно випустив Z, щоб зберегти обсяг малим.»
  • Це навмисно трохи консервативно — приємно розслабити його пізніше. ”
  • «Я ** пішов туди і назад на ** назву; відкритий для пропозицій. ”

Виказувати те, що ви не зробили, є ознакою спілкування на високому рівні. За межами сфери дії - це ключова фраза:

«Переіменування спадкових полів є ** поза сферою** для цього PR.»


Розділ 4: Тестування — будьте конкретними

“Проверено локально” не говорить рецензенту нічого. Зазначте, що ви пробігли і що спостерігали.

** Тестування: ** Додано тести одиниць для обчислення відступу. Запустив пакет інтеграції локально — все зелене. Перевірено вручну за допомогою шлюзу перевірки ** за допомогою 500** і підтверджено за допомогою трьох повторних спроб.

Корисні дієслова: * перевірено, підтверджено, відтворено, впроваджено, покрито*.

«Я відтворив оригінальну помилку на main, а потім підтвердив, що вона більше не виникає на цій гілці»


Прошу про перегляд, який ти дійсно хочеш

Скажи рецензентам, на чому зосередитися. Це ввічливо і прискорює справи.

  • «Головна річ, на яку я б хотів звернути увагу — це логіка блокування в cache.go
  • «Не соромтеся ** скидати ** сформовані файли — реальна зміна в трьох файлах.»
  • «Це готовий для перегляду / все ще чернетка / робота в процесі (WIP)

Зауваження: diff виглядає великим, але більшість з них є залежними від виробника. Фактична зміна становить ~40 рядків»


До і після: повне переписування

** До: **

“Я все виправив. Будь ласка, перевірте. Я думаю, що це працює зараз, але не впевнений. була проблема раніше»

Після:

** Виправити дублікат зарядів при повторній спробі **

  • Нет, не надо ** Що: ** Додає ключі ідемпотентності до клієнта платежу.
  • Нет, не надо ** Чому: ** При нестабільних з’ єднаннях повторні спроби створили дублікати зобов’ язань (# 482). Клієнт не мав можливості сказати шлюзу «це той самий запит»
  • Нет, не надо ** Як: ** Кожен запит тепер має ключ UUID, який створюється один раз і використовується знову і знову. Я ** вибрав ** ключі, створені клієнтом, тому нам не потрібно подорожувати туди-назад.
  • Нет, не надо ** Тестування: ** Тестування блоків на повторне використання ключів; вручну примусово повторено спроби проти стадіювання і підтверджено один заряд.
  • Нет, не надо Головне, на що я б хотів звернути увагу, це логіка ключа-життя в client.py.

Поширені помилки

  1. ** Неясні назви. ** « Оновити код » або « Виправити ваду » змушує переглядачів відкривати diff, щоб дізнатися щось. Починається з дієслова і дієприкметника: « Додати », « Виправити », « Перефрактурувати », « Вилучити ».
  2. ** Стіни тексту в минулому часі. ** Тримайте резюме в теперішньому часі і коротким.
  3. Нет “почему”. Одна из самых распространенных причин, почему PR задерживается, это то, что рецензент не понимает мотивацию.
  4. Фальшива скромність. “Не впевнений, чи це правильно” запрошує сумніви. Замість цього: “Я б був вдячний за другу думку про підхід до блокування” - впевнений * і * відкритий.

Шаблон для повторного використання

## What
One-sentence summary in present tense.

## Why
The problem this solves. Link the issue.

## How
Non-obvious decisions and trade-offs. What's out of scope.

## Testing
What you ran and what you observed.

## Review notes
Where to focus. Anything reviewers should skim.

Ключевые вещи

  • Використовуйте теперішній час для чого робить PR; було б для минулих повторюваних вад.
  • Завжди включайте ** чому ** — це те, що найбільше потрібно рецензентам.
  • Пояснюйте рішення і скажіть, що виходить за рамки.
  • Будь конкретним у ** тестуванні **: назвемо те, що ви запустили і спостерігали.
  • Направте увагу рецензента на «головне, на що я б хотів звернути увагу, це…».

Хорошим описом PR є емпатія в письмовій формі. Затрать на это три минуты, и ты сэкономишь на своих рецензентах тридцать.

Наприклад, мова опису: мова, що використовує описи для позначення невідомих об’єктів

Будьмо чесними - спілкування між культурами і мовними рівнями може бути складним, навіть в рамках команди з добрими намірами. Як розробники, ми часто припускаємо, що кожен розуміє технічний контекст нашої роботи, але це припущення може створити тертя під час перегляду коду і обговорення запитів на витягування. Для нерідних носіїв англійської мови, особливо тих, хто переходить до професійного середовища розвитку, тонкі відмінності у фразуваннях і дієсловах можуть призвести до нерозуміння і затримок у отриманні зворотного зв’язку. Це не про очікування ідеальної граматики; це про прагнення до ясності і активне вирішення потенційних бар’єрів для розуміння.

Однією з поширених проблем є використання надто формальної або технічної мови, яка не є відразу доступною. Уявіть, що ви отримуєте коментар на зразок: « Реалізація відхиляє від встановлених архітектурних парадигм ». Хоча це технічно вірно, це густий коментар, який не пояснює чітко, * чому * відхилення потребує уваги. Замість цього спробуйте щось більш пряме: « Ця зміна вводить трохи інший підхід до обробки даних. Чи можемо ми обговорити наслідки для підтримки послідовності з нашою існуючою системною архітектурою?» Зауважте додавання « трохи » — пом’якшення мови — і оформлення цього як дискусії, а не як невідкладної проблеми. Аналогічно, такі фрази, як « Я відновив цей запит через … » можуть звучати різко. Більш м’який вступ може бути: “Щоб забезпечити узгодженість зі стандартами проекту, я повернув цей запит. Давайте обговоримо логіку, що стоїть за оригінальною зміною»

Інша область уваги повинна бути навколо вираженні наміру. Замість простого зауваження, що було зроблено («Я додав нову функцію»), описати * чому * вона була додана і її призначену мету («Я реалізував нову функцію для спрощення обробки даних, зменшуючи потенційні помилки в подальших обчисленнях»). Це надає контекст для переглядачів, щоб швидко зрозуміти значення зміни. Не бійтеся використовувати такі фрази, як «Покращити…» або «Це адресує…».

Нарешті, пам’ятайте, що коротке спілкування є ключем. Хоча деталі важливі, уникайте непотрібного жаргону і надто складних речень. Приоритетно передати основну інформацію ефективно. Хороший опис PR не повинен бути романом; він повинен бути чіткою дорожньою картою для рецензента, щоб зрозуміти мету і вплив вашої роботи. Увага до цих нюансів не тільки допоможе носієві мови, але і в кінцевому підсумку покращить спілкування у вашій команді.

Поширені запитання

Про що ця стаття "Writing Clear Pull Request Descriptions in English"?

Практичний посібник з написання чітких описів запитів на завантаження англійською мовою: структура, фрази, час дієслова і приклади перед/ після, які прискорять перегляд ваших PR.

Чи безкоштовна ця стаття?

Так. Усі статті на CoderSlingo, включно з цією, доступні безкоштовно без реєстрації.

Скільки часу займає читання "Writing Clear Pull Request Descriptions in English"?

Приблизно 9 min.