Лучшие вопросы
Таймлайн
Чат
Перспективы

Парное программирование

техника коллективного программирования Из Википедии, свободной энциклопедии

Парное программирование
Remove ads
Remove ads

Па́рное программи́рование (англ. pair programming) — это методика разработки программного обеспечения, при котором два программиста работают вместе над одной задачей: один пишет код, проговаривая вслух свои идеи и действия, а другой смотрит и комментирует, параллельно продумывая следующие шаги. Один из программистов, называемый «ведущим», управляет компьютером и фокусируется на деталях программирования. Второй программист, известный как «штурман»[1], сосредоточен на общей картине и непрерывно следит за кодом, разрабатываемым первым программистом. В течение сессии они периодически меняются ролями, обычно каждые полчаса, чтобы обеспечить равное распределение ответственности и вовлечëнности каждого члена команды.

Thumb
Remove ads

Преимущества парного программирования

Парное программирование обеспечивает взаимный контроль качества кода и способствует поддержанию темпа разработки за счёт снижения временных затрат на исправление ошибок. Совместная работа позволяет выявлять и устранять ошибки в коде на самых ранних стадиях разработки. Дополнительным преимуществом является совместное владение кодовой базой, что упрощает замену разработчиков в случае их отсутствия. В рамках проекта возможно перераспределение ролей с учётом общих знаний. Например, один специалист может заниматься документацией, пока другой реализует функциональность. Для менее опытных разработчиков этот метод представляет собой эффективный способ обучения и профессионального развития.

Remove ads

Разновидности

Суммиров вкратце
Перспектива

Пинг-понг программирование

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

При пинг-понг программировании код всегда находится в одном из двух состояний: успешно проходит все тесты или есть хотя бы один тест, который не выполняется.
В первом состоянии разработчики должны сделать выбор, что они будут делать (писать новый тест, корректировать существующий тест или проводить рефакторинг кода) и кто это будет делать.
По завершении рефакторинга код всегда должен оказываться в исходном состоянии — должен проходить все тесты.
Написание теста или изменение может привести их код как к первому, так и ко второму состоянию:

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

Цель второго участника — привести код в исходное состояние, то есть исправить код так, чтобы он проходил все тесты.
При данном подходе сокращается число ситуаций, в которых требуется принять решение о передаче клавиатуры, снижается вероятность возникновения разногласий.
Процесс написания кода становится похожим на игру в пинг-понг:

  • первый участник — пишет тест;
  • второй участник — изменяет код для успешного прохождения теста, пишет ответный тест и отдаёт клавиатуру обратно.

Удалённое (дистанционное) парное программирование

Удалённое (дистанционное) парное программирование, также известное как виртуальное парное программирование или распределённое парное программирование, — это разновидность парного программирования, в котором два программиста находятся на расстоянии друг от друга[2], работая через средство совместного редактирования кода, удалённый рабочий стол, или посредством плагина для интегрированной системы разработки. Удалённое парное программирование добавляет дополнительные трудности, отсутствующие в обычном парном программировании, такие как дополнительные задержки координации, зависимость от более тяжеловесных инструментов управления задачами вместо таких упрощённых вариантов, как карточки с индексами[прояснить], и отсутствие невербальных средств общения, приводящее к непониманию и конфликтам в таких вопросах, как «чья сейчас клавиатура». Для этого предназначено большое количество ПО: GNU Screen, Zeditor

Remove ads

См. также

Примечания

Loading content...

Литература

Loading content...
Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads