Англійська мова для віддаленого парного програмування: розповідь коду і спільне використання контексту

Вивчіть англійські фрази для віддаленого парного програмування: розповідь ваших думок, запитання для пояснення, спільне використання контексту і перемикання ролей водія і навігатора.

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


Ролі водіїв і навігаторів

Парне програмування використовує дві ролі:

  • ** Драйвер ** — людина, яка вводить код
  • ** Навігатор ** — людина, яка переглядає, думає наперед і керує

Знання цих ролей англійською мовою допоможе вам плавніше перемикатися між ними.

Предлагаю переключиться

  • «Чи хочеш ти перейняти клавіатуру на деякий час?»
  • «Я хочу жити на деякий час» (фр
  • «Чому б тобі не навігаційна система і я наберу — ти маєш ясніше уявлення про дизайн.»
  • «Let’s swap — Я їздив 20 хвилин.»

Передаю

  • «Я збираюся розділити свій екран зараз — ви повинні побачити редактора.»
  • “Ви бачите мій термінал? Я пройдусь через те, що я збираюся ввести»
  • “Я передам контроль. Використовуйте посилання Live Share.”

Розповідь про твою думку

Найважливіша вміння у парному програмуванні це ** думати вголос ** — розповідати, що ви робите і чому, щоб ваша пара могла слідкувати і робити свій внесок.

Дикторський супровід вашого введення

  • “Я ** створюю ** нову функцію тут для обробки логіки повторних спроб бази даних.”
  • «Я збираюся витягнути це в окремий метод — це стає занадто довгим»
  • «Ось я вводжу залежність, а не створюю її безпосередньо»
  • “Я додаду клаузулу охорони на верхній частині, щоб повернутися раніше, якщо вхідний сигнал буде нульовим.”

Розповідаєш, про що думаєш

  • «Я розглядаю два підходи тут — дайте мені подумати на секунду.»
  • «Мій інстинкт — використовувати карту, але я не впевнений, що це перебільшення для цього випадку використання»
  • «Я підозрюю це значення тайм-аута — воно здається занадто низьким для мережевого виклику»
  • «Дай мені просто перевірити чи ця бібліотека обробляє Unicode правильно, перш ніж ми покладемося на неї»

Розповідь про невизначеність

  • «Я не на 100% впевнений щодо контракту API тут — дозвольте мені підняти документи»
  • «Це трохи припущення — я думаю, що це працює, але давайте додамо тест, щоб підтвердити це.»
  • «Я нечітко пам’ятаю, що була помилка в цій області — варто перевірити git log.»

Запитання про пояснення

Віддалене програмування пар вимагає більш чіткого спілкування, ніж у реальному часі — ви не зможете так просто вказувати на екран.

Питання про намір

  • Що ми ** намагаємося досягти ** з цією функцією?
  • «Чи є метою ** перевірити ** вхід або ** перетворити ** його?»
  • Чи ми робимо це наразі або це кінцевий дизайн? “

Питання про кодову базу

  • «Звідки це зветься
  • «Чи є тест на існуючу поведінку ** перед ** ми змінимо її?»
  • Що містить UserContext — чи задокументовано це де-небудь?

Перевіряю розуміння

  • «Тільки щоб підтвердити — ми хочемо, щоб помилка вибухла, а не була поглинута тут?»
  • Таким чином, очікувана поведінка є: якщо термін дії токена закінчився, перенаправте на вході?
  • «Чи правильно я розумію, що це працює синхронно

Розділення контексту і фону

Якщо ви знаєте щось, чого ваші друзі не знають, то діліться цим з ними.

Надання фону

  • «Тут трохи історії: цей модуль був написаний до того, як ми прийняли новий шаблон обробки помилок.»
  • «Відповідно до відомостей: тут є відома помилка — я посилаю квиток»
  • «Context: ця функція викликається 10 000 разів на секунду в виробництві — продуктивність має значення»

Повідомити про проблему

  • “Я збираюся флаг що цей підхід може викликати проблеми, якщо мережа повільна.”
  • «Одна проблема: це не безпечне для потоків, як написано.»
  • «Тільки ** голова-вгору ** — ми будемо оновити скрипт міграції, якщо ми змінимо цю схему.»

Давати і отримувати пропозиції

Предлагать, не принимая

  • «Один варіант був би використовувати декоратора тут — що ви думаєте?»
  • «Я запитав себе, чи фабрика функцій буде чистішою, ніж підхід конструктора.»
  • Ви думали про те, щоб зробити це асинхронно? Це може спростити виклик»

Отримання пропозиції

  • «Це **хороша точка ** — дайте мені спробувати це.»
  • “Я розумію, що ти маєш на увазі. Дозвольте мені рефакторувати, щоб побачити, як це виглядає»
  • «Я б хотів зрозуміти, чому це було б краще — чи можете ви провести мене через це?»

Ввічливо не погоджуюся

  • «Я бачу привабливість, але я ** хвилююся **, що це ускладнить тестування»
  • “Це правильний підхід. Моє занепокоєння читливості — чи є середня дорога?»
  • «Я б натиснув назад трохи — я думаю, що додаткова абстракція додає більше складності, ніж вона усуває»

Керування сеансом

Сфокусировался

  • «Давайте триматися на трасі — ми можемо перефрактурувати це пізніше»
  • “Це хороша ідея для наступного квитка. Давайте паркуємо його наразі»
  • «Ми працювали над цим 30 хвилин — чи варто нам зробити перерву або продовжувати?»

Перевіряю

  • «Як ти? ** Чи темп OK ** для тебе?»
  • “Чи чисте звучання? Я хочу, щоб ти міг мене почути»
  • “Ви бачите, що я редактую? Це лінія 87.”

Завершую

  • «Давайте приймемо те, що у нас є, і запишемо невирішені питання»
  • «Я відкрию квиток для рефакторингу, який ми обговорювали.»
  • “Хороша сесія — ми зробили значний прогрес на [X]. Наступного разу давайте почнемо з тестів»

Ключеві моменти

  • ** Постійно розповідайте **: скажіть вашій парі, що ви вводите * і * чому.
  • Подумайте вголос: “Я думаю… мой инстинкт… Я не впевнений…»
  • Використовуйте точні запитання: запитайте про намір, контекст, і очікувану поведінку — не просто «що це робить?»
  • ** Спільно використовувати фон активним чином **: не приймайте, що ваша пара має такий самий контекст, як і ви.
  • ** Запропонуйте без командування **: « одним з варіантів було б,» « чи ви розглядали,» а не « просто зробіть X. »
  • Для віддалених сеансів, over-communicate: описати, що відбувається на вашому екрані, підтвердити звук, перевірити розуміння.

Розширення вашого словника: точність у віддаленому спілкуванні

… [останнє з оригінального вмісту блогу тут — це опущено для скорочення, але припускається, що воно охоплює основні поняття розповіді коду під час парного програмування, обговорення ролей, таких як драйвер/ навігатор, запитання для пояснення і ефективного поділу контекстом] …

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

Одна з ключових областей для поліпшення полягає в описі * чому * ви робите зміну, а не тільки * що * ви робите це. Замість того, щоб просто сказати “Видалити: NullPointerException,” розгляньте “Я звертаюся до потенційного NullPointerException додаванням нульової перевірки перед доступом до поля user_id. Це запобігає помилці, якщо запис користувача не знайдено. ” Остання позиція надає негайний контекст і обґрунтування зміни, зменшуючи кількість питань. Аналогічно, коли ви просите про пояснення - “Чи можете ви розробити очікувану поведінку в цьому сценарії?” є набагато більш продуктивним, ніж нечітке “Що мені потрібно виправити?”. Вивчення фраз, таких як «Давайте розглянемо…» або «Я думаю, що…» демонструє залученість і запрошує до спільного вирішення проблем. Іншим важливим елементом є використання точної термінології; наприклад, замість того, щоб сказати «цей код не працює», спробуйте «логічний потік тут не збігається зі специфікацією»

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

# Example using `git diff` to highlight changes with descriptive commit message
git diff --color-words HEAD~1 HEAD | less -R

За допомогою цієї команди можна продемонструвати, як використовувати певні фрази під час опису змін під час перегляду коду, підсвічування змінених слів і надання безпосереднього контексту для переглядача. Використання інструментів, таких як git diff, у поєднанні з добре розробленими повідомленнями про затвердження дозволяє більш цілеспрямоване і ефективне обговорення про зміни, які робляться.

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

Про що ця стаття "Англійська мова для віддаленого парного програмування: розповідь коду і спільне використання контексту"?

Вивчіть англійські фрази для віддаленого парного програмування: розповідь ваших думок, запитання для пояснення, спільне використання контексту і перемикання ролей водія і навігатора.

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

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

Скільки часу займає читання "Англійська мова для віддаленого парного програмування: розповідь коду і спільне використання контексту"?

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