Удаленное парное программирование

Одна из радостей экстремального программирования — это высокоскоростная связь, которую обеспечивает сопряжение. Но удаленное сопряжение может быть сложной задачей в мире, где узким местом для нашего общения является буквально наша пропускная способность интернета. Такие продукты, как Zoom и Tuple или даже такие инструменты, как tmux, могут помочь, но ничто не сравнится с обменом взаимодействием с кем-то с вашего локального компьютера.

В парном программировании есть классический маневр сопряжения, называемый «спаривание пинг-понга». Это когда один человек пишет неудачный тест, а другой пишет простейший код, чтобы он прошел, а затем пишет следующий неудачный тест, переключаясь туда-сюда. Когда это делается лично, это может быть игривым приемом, чтобы каждый человек был в равной степени вовлечен. На расстоянии это может показаться неестественным и трудным.

Я начал скучать по магии спаривания.

Что, если бы был быстрый и простой способ перемещения кода между машинами, позволяющий переключаться между парами, а также позволять тому, кто за рулем, работать на своей машине?

Портал

Представляем Portal, удобное приложение командной строки с поддержкой git, которое использует git-duet или git-together для простого обмена кодом между вами и компьютерами вашей пары.

Пара начинает свой день с того, что оба настраивают своих авторов коммитов git, используя git-duet или git-together на своих соответствующих машинах.

> git duet pa ir

Затем до конца дня пара использует portal для перемещения кода между своими машинами. Используя Zoom или Tuple для совместного использования экрана, один член пары пишет неудачный тест, а затем запускает следующий из корневого каталога своего проекта git.

> portal push

Когда команда завершится, другой человек может запустить следующую команду, чтобы получить код, чтобы сделать неудачный тест пройденным.

> portal pull

Пушер обнаружит свое рабочее пространство git чистым, а пуллер с кодом, который они видели на машине своей пары. Вот и все — играйте в пинг-понг!

Магистральная разработка

Помимо простоты переноса кода между машинами пары, портал поддерживает разработку на основе магистрали. У кого-то может возникнуть соблазн вручную создать временную ветвь или даже функциональную ветвь от ветки main и использовать git push/pull между парами, но у этого есть два недостатка.

  1. Создание сообщений коммитов только для перемещения кода между машинами может показаться неестественным.
  2. Пара, скорее всего, создаст долгоживущую ветку вместо того, чтобы делать меньшие коммиты против основной.

Портал позволяет парам переключаться в произвольные моменты времени, оставаясь на ветке main. В сочетании с такими методами, как разработка, управляемая сообщением фиксации и разработка, управляемая тестированием, портал возвращает магию в удаленное сопряжение. Попробуйте и дайте мне знать, что вы думаете!