Англійська мова для перегляду коду: фрази і приклади
Точні фрази, які досвідчені розробники використовують, щоб надати і отримати зворотній зв’ язок щодо перегляду коду — від ввічливих пропозицій до критичних коментарів щодо блокування — з реальними прикладами.
Перегляд коду є місцем, де відбувається багато найважливіших технічних комунікацій - і де мовні навички мають величезне значення. Неправильно сформулований коментар може викликати плутанину, оборону або марне пересування туди-назад. Хорошо сформулированный комментарий приводит к более быстрому слиянию PR, поддерживает команду в восторге и в то же время что-то учит.
У цьому підручнику наведено конкретні фрази і словники, які вам слід знати, щоб надавати і отримувати зворотній зв’ язок щодо перегляду коду англійською мовою.
Розпізнавання типів коментарів перегляду коду
Перед написанням коментаря визначте його тип. Більшість інструментів перегляду коду не вимагають цього розрізнення, але досвідчені інженери сигналізують про це через мову.
| Type | What it means | Language signal |
|---|---|---|
| Blocker / required | Must be fixed before merge | ”This needs to…”, “Please change…”, “This will break…” |
| Suggestion | Worth considering but optional | ”Consider…”, “You might want to…”, “One option would be…” |
| Nit | Trivial style / preference | ”Nit:”, “Minor:”, “Optional —“ |
| Question | Seeking understanding, not requesting a change | ”What’s the reason for…?”, “Can you explain why…?” |
| Praise | Positive feedback | ”Nice!”, “Great approach here.”, “Clever use of…” |
Не всі переглядачі позначають типи явно, але ваша мова повинна ясно показувати намір.
Фрази для запропонованих змін (не блокування)
Якщо зміна не обов’ язкова або є питанням переваги, зменшіть значення мови, щоб це було чітко видно.
“Розгляньте можливість витягування цього до допоміжної функції — це також полегшить тестування.”
- “Вам може знадобитися додати тут перевірку на нуль, на випадок, якщо API поверне неочікувану форму.” *
- “Одна дрібниця: назва змінної
dataє досить загальною. Щось на зразокuserProfilesзробить це легше для сканування.”*
- « Не блокуючий, але цей шаблон трохи складніше читати — чи ви розглядали можливість використання тричленного коду? » *
“Необов’язково: ви можете спростити рядки 42-45 з
Array.from(), але поточний підхід теж в порядку.”
Ключові слова: розглянути, може бути зацікавлено, один варіант, не блокуючий, необов’язковий, просто думка.
фрази для потрібних змін (блокувальники)
Якщо щось дійсно потрібно виправити перед об’ єднанням, будьте прямими — але не грубими. Прямо по-англійськи не означає агресивно.
- “Це поверне TypeError, якщо
userIdдорівнюєundefined. Будь ласка, додайте клаузулу захисту перед викликом бази даних.”*
- “Ця зміна вводить вразливість втручання SQL — введення користувача ніколи не повинно інтерполюватися безпосередньо у запит. Будь ласка, використовуйте параметризовані запити.”*
- “Назва функції
getUser, але вона також записує дані до бази даних. Будь ласка, розділяйте питання читання і запису.»*
“Цей тест насправді нічого не стверджує — твердження знаходиться поза блоком
it(). Будь ласка, перенесіть його всередину.”
- “На зустрічі з архітекторами ми обговорили, що тут буде використано шаблон сховища, а не прямі виклики бази даних. Будь ласка, перефрактуруйте.»*
Фрази для запитання
Іноді ви не розумієте код і хочете дізнатися більше — не вимагайте змін.
“Яка причина використання
useEffectз порожнім масивом залежностей замість запуску цієї логіки поза компонентом?”
“Я не знайомий з цим підходом — чи можете ви додати коментар, що пояснює намір?”
“Цікаво, що вибрали
Setтут. Чи є це проблемою, чи це було для дедуплікації?»
- “Чому ми ловимо цю помилку і відправляємо її знову як нову помилку? Чи є певна причина для його обгортання?»*
Питання є цінними — вони спонукають автора пояснити своє мислення, часто розкриваючи справжню проблему або поліпшуючи коментар, який пояснює її для майбутніх читачів.
«Ніч» (англ. Night) — міні-серіал
** Nit ** (короткий від « nitpick ») означає: * « Це незначна, незначна перевага, а не справжня проблема. » * Це сигналізує про те, що рецензент не блокує PR, але помітив щось незначне.
- “Nit: кінцевий пробіл на рядку 47.” *
“Nit:
constє кращим заlet, коли змінна ніколи не перепризначається.”
- “Незначний ніт: у цьому коментарі написано « повертає користувача », але слід писати « повертає ідентифікатор користувача ». Не блокер».*
Використання « ні » або « незначний » є професійним сигналом того, що ви ретельно переглядаєте сторінки і не перебільшуєте незначних вподобань.
Фрази для позитивного відгуку
Перегляд коду не тільки про знаходження проблем. Визнавання хорошої роботи має реальну цінність для командного моралю і обміну знаннями.
- “Хороше використання запам’ ятовування — це набагато швидше, ніж попередній підхід.” *
“Відмінне тестове покриття. Мені особливо подобається, що ви охоплюєте крайній випадок, коли список порожній.»
- “Елегантний варіант. Я не думав про використання генератора тут — я запам’ятаю цей шаблон.»*
- “Це велике поліпшення порівняно зі старою реалізацією. Чистіше і простіше дотримуватися.” *
“LGTM — добре структуровані зміни. Раді затвердити.»
LGTM = «Виглядає добре для мене» — найпоширеніша фраза схвалення в переглядах коду.
Отримання зворотнього зв’язку від перегляду коду: відповідати професійно
Знати, як відповідати на відгуки, так само важливо, як і як їх давати.
Подтверждаю и исправляю
“Хороший полов — я оновлю це.”
*“Ти маєш рацію, я пропустив це. Виправлено в останньому затвердженні. *
“Дякую за пояснення — я переробив функцію і додав тест.”
С уважением не согласен
“Я понимаю твою мысль, но я выбрал этот подход, потому что…”
“Це справедлива пропозиція. Я вибрав цей шаблон для [причини] — чи хотіли б ви обговорити це далі, чи я повинен продовжувати зі зміною?»
- “Я б хотів залишити його таким, оскільки він відповідає шаблону, який використовується у решті модуля. Я хочу, щоб ти переглянув це, якщо ти сильно відчуваєш»
Прошу прояснити
“Чи можете ви розкрити цей коментар? Я не впевнений, які зміни ви пропонуєте.»
- « Тільки для підтвердження: ви просите мене змінити тип, логіку або назву тут? » *
Ключеві слова: Code Review Vocabulary
| Term / Phrase | Meaning |
|---|---|
| LGTM | Looks Good To Me — casual approval |
| nit / nitpick | Minor stylistic comment, not blocking |
| blocking / needs changes | PR cannot be merged as-is |
| out of scope | Not related to this PR — fix in a separate issue |
| let’s revisit | Worth discussing, but not now or here |
| hardcoded | Value written directly into code instead of using a variable/config |
| magic number | Unexplained numeric constant in code — usually a nit |
| stale comment | A comment that no longer reflects the current code |
| dead code | Code that is never executed — usually flagged in reviews |
| happy path | The expected, error-free flow through code |
Програма для перевірки лексичного запасу
Спробуйте завершити ці речення перед перевіркою статті, наведеної вище:
- «Це не блокатор, а _______ витягування цього в окрему функцію утиліти.»
- «_______ причина використання рекурсивного підходу тут замість ітерації?»
- «Гаразд _______ — я не думав перевірити випадок порожнього масиву.»
- «Цей вхід не очищений — це призведе до _______ вразливості введення»
- ”_______ — схвалено. Чиста робота»
(Відповіді: 1 — розглянути / 2 — що / 3 — ловити / 4 — SQL / 5 — LGTM)
Перегляд коду є в основному спільною, письмовою розмовою між інженерами. Мова, якою ви користуєтеся, формує культуру рецензування. Точна, доброзичлива і ясна англійська робить перегляд коду швидшим, менш стресовим і справді освітнім — для всіх, хто бере участь.