Парное программирование: различия между версиями
[непроверенная версия] | [непроверенная версия] |
Callnick (обсуждение | вклад) оформление, орфография |
Нет описания правки |
||
Строка 1: | Строка 1: | ||
{{Стиль статьи}} |
{{Стиль статьи}} |
||
[[Файл:Pair Programming 3.jpg|мини|справа]] |
[[Файл:Pair Programming 3.jpg|мини|справа]] |
||
'''Па́рное программи́рование''' ({{lang-en|pair programming}}) — это методика [[Разработка программного обеспечения|разработки программного обеспечения]], при которой два [[программист]]а работают вместе над |
'''Па́рное программи́рование''' ({{lang-en|pair programming}}) — это методика [[Разработка программного обеспечения|разработки программного обеспечения]], при которой два [[программист]]а работают вместе над одним проектом. Один из программистов, называемый «ведущим», управляет компьютером и фокусируется на деталях [[Программирование|программирования]]. Второй программист, известный как «штурман»<ref>{{cite web|url=http://www.cnews.ru/reviews/index.shtml?2012/09/07/502131|title=Парное программирование: эффективная работа или мучение?|last=Касьянова|first=Любовь|date=07.09.12|publisher=[[CNews]] Аналитика|lang=ru|accessdate=2013-02-24|archiveurl=https://web.archive.org/web/20130224090624/http://www.cnews.ru/reviews/index.shtml?2012%2F09%2F07%2F502131|archivedate=2013-02-24|deadlink=yes}}</ref>, сосредоточен на общей картине и непрерывно следит за кодом, создаваемым первым программистом. В течение сессии они периодически меняются ролями, обычно каждые полчаса, чтобы обеспечить равное распределение ответственности и вовлеченности каждого члена команды. |
||
== Преимущества == |
== Преимущества парного программирования == |
||
: Программисты, работающие в паре, чаще делают то, что от них требуются и реже устраивают перерывы во время работы. Программисты склонны к написанию качественного кода и меньшему количеству неудачный решений. Совместная работа позволяет обнаружить и исправить ошибки в коде ещё на ранних стадиях разработки. Это возможно благодаря тому, что два участника процесса анализируют и контролируют работу друг друга. Парное программирование помогает лучше вовлекаться в работу. При коллективном владении, программисты получают доступ ко всему коду за счёт совместной работы над ним. Это позволяет разбираться в коде большему числу программистов, что ускоряет процесс разработки, так как появившуюся ошибку в коде может устранить любой программист из команды. Каждый программист знает что-то, чего не знают другие и наоборот. Так, парное программирование — безболезненный способ обмена знаниями. |
|||
; ''Повышение дисциплины'' |
|||
: Программисты, работающие в паре, чаще делают то, что от них требуются и реже устраивают перерывы во время работы. |
|||
; ''Лучший код'' |
|||
: При парной работе, программисты склонны к написанию качественного кода и меньшему количеству неудачный решений. |
|||
; ''Гибкий поток работы'' |
|||
: Совместная работа позволяет обнаружить и исправить ошибки в коде ещё на ранних стадиях разработки. Это возможно благодаря тому, что два участника процесса анализируют и контролируют работу друг друга. |
|||
; ''Высокий боевой дух'' |
|||
: Работающие в паре программисты вовлечены в работу, что уменьшает количество отвлекающих факторов и повышает мотивацию. |
|||
; ''Коллективное владение кодом'' |
|||
: При коллективном владении, программисты получают доступ ко всему коду за счёт совместной работы над ним. Это позволяет разбираться в коде большему числу программистов, что ускоряет процесс разработки, так как появившуюся ошибку в коде может устранить любой программист из команды. |
|||
; ''Наставничество'' |
|||
: Каждый программист знает что-то, чего не знают другие и наоборот. Так, парное программирование — безболезненный способ обмена знаниями. |
|||
; ''Командный дух'' |
|||
: В процессе работы команда разработчиков сплачивается, что положительно влияет на настрой в коллективе. |
|||
; ''Меньше прерываний'' |
|||
; ''Экономическая обоснованность'' |
|||
; ''Высокое качество дизайна'' |
|||
; ''Обратная связь'' |
|||
; ''Непрерывность проверки кода'' |
|||
: Ошибки в коде обнаруживаются на ранних этапах, что позволяет экономить время и деньги на их устранение. |
|||
; ''Обучение'' |
|||
: Программисты во время парной работы постоянно обмениваются знаниями между собой, что повышает их квалификацию и эффективность, а значит и ценность для нанимателя. |
|||
== Разновидности == |
== Разновидности == |
Версия от 09:01, 26 марта 2024
Стиль этой статьи неэнциклопедичен или нарушает нормы литературного русского языка. |
Па́рное программи́рование (англ. pair programming) — это методика разработки программного обеспечения, при которой два программиста работают вместе над одним проектом. Один из программистов, называемый «ведущим», управляет компьютером и фокусируется на деталях программирования. Второй программист, известный как «штурман»[1], сосредоточен на общей картине и непрерывно следит за кодом, создаваемым первым программистом. В течение сессии они периодически меняются ролями, обычно каждые полчаса, чтобы обеспечить равное распределение ответственности и вовлеченности каждого члена команды.
Преимущества парного программирования
- Программисты, работающие в паре, чаще делают то, что от них требуются и реже устраивают перерывы во время работы. Программисты склонны к написанию качественного кода и меньшему количеству неудачный решений. Совместная работа позволяет обнаружить и исправить ошибки в коде ещё на ранних стадиях разработки. Это возможно благодаря тому, что два участника процесса анализируют и контролируют работу друг друга. Парное программирование помогает лучше вовлекаться в работу. При коллективном владении, программисты получают доступ ко всему коду за счёт совместной работы над ним. Это позволяет разбираться в коде большему числу программистов, что ускоряет процесс разработки, так как появившуюся ошибку в коде может устранить любой программист из команды. Каждый программист знает что-то, чего не знают другие и наоборот. Так, парное программирование — безболезненный способ обмена знаниями.
Разновидности
Пинг-понг программирование
Пинг-понг программирование — разновидность парного программирования, адаптированная для методологии разработки через тестирование.
В каждый момент времени клавиатурой пользуется только один участник.
При пинг-понг программировании код всегда находится в одном из двух состояний: успешно проходит все тесты или, есть хотя бы один тест, который не выполняется.
В первом состоянии разработчики должны сделать выбор, что они будут делать (писать новый тест, корректировать существующий тест или проводить рефакторинг кода) и кто это будет делать.
По завершении рефакторинга, код всегда должен оказываться в исходном состоянии — должен проходить все тесты.
Написание теста или изменение может привести их код как к первому, так и ко второму состоянию:
- Первая ситуация означает, что был написан (или улучшен) тест на уже существующую функциональность (тем самым могла увеличиться степень покрытия кода тестами).
- Во втором случае, когда появился хотя бы один тест, который код не проходит, клавиатура обязательно передаётся от того, кто писал тест, другому участнику.
Цель второго участника — привести код в исходное состояние, то есть исправить код так, чтобы он проходил все тесты.
При данном подходе сокращается число ситуаций, в которых требуется принять решение о передаче клавиатуры, снижается вероятность возникновения разногласий.
Процесс написания кода становится похожим на игру в пинг-понг:
- первый участник пишет тест;
- второй — изменяет код для успешного прохождения теста, пишет ответный тест и отдаёт клавиатуру обратно.
Удалённое (дистанционное) парное программирование
Удалённое (дистанционное) парное программирование, также известное как виртуальное парное программирование или распределённое парное программирование — это разновидность парного программирования, в котором два программиста находятся на расстоянии друг от друга[2], работая через средство совместного редактирования кода, удалённый рабочий стол, или посредством плагина для интегрированной системы разработки. Удалённое парное программирование добавляет дополнительные трудности, отсутствующие в обычном парном программировании, такие как дополнительные задержки координации, зависимость от более тяжеловесных инструментов управления задачами вместо таких упрощённых вариантов, как карточки с индексами[прояснить], и отсутствие невербальных средств общения, приводящее к непониманию и конфликтам в таких вопросах, как «чья сейчас клавиатура».
См. также
Примечания
- ↑ Касьянова, Любовь Парное программирование: эффективная работа или мучение? CNews Аналитика (07.09.12). Дата обращения: 24 февраля 2013. Архивировано из оригинала 24 февраля 2013 года.
- ↑ Nick V. Flor. Globally distributed software development and pair programming (англ.) // Communications of the ACM. — 2006. — Vol. 49, no. 10. — P. 57—58. — doi:10.1145/1164394.1164421. Архивировано 9 сентября 2016 года.
Литература
- Omar S. Gómez, José L. Batún, Raúl A. Aguilar. Pair versus Solo Programming -- An Experience Report from a Course on Design of Experiments in Software Engineering (англ.) // International Journal of Computer Science Issues. — 18 июня 2013. — arXiv:1306.4245.
В статье не хватает ссылок на источники (см. рекомендации по поиску). |