Экстремальное программирование
Процесс разработки ПО | |
Шаги процесса | |
---|---|
Анализ | Проектирование | Реализация | Тестирование | Внедрение | Сопровождение | |
Модели / Методы | |
Agile | Cleanroom | Итеративная | RAD | Scrum | RUP | OpenUP | MSF | Спиральная | Водопад | XP | |
Сопутствующие дисциплины | |
Конфигурационное управление | Документирование | Управление проектами | |
Экстрема́льное программи́рование (англ. Extreme Programming, XP) — одна из гибких методологий разработки программного обеспечения. Авторы методологии — Кент Бек (Kent Beck), Уорд Каннингем (Ward Cunningham), Мартин Фаулер и другие.
Основные приёмы XP
Двенадцать основных приёмов экстремального программирования (по первому изданию книги Extreme programming explained) могут быть объединены в четыре группы:
- Короткий цикл обратной связи (Fine scale feedback)
- Разработка через тестирование (Test driven development)
- Игра в планирование (Planning game)
- Заказчик всегда рядом (Whole team, Onsite customer)
- Парное программирование (Pair programming)
- Непрерывный, а не пакетный процесс
- Непрерывная интеграция (Continuous Integration)
- Рефакторинг (Design Improvement, Refactor)
- Частые небольшие релизы (Small Releases)
- Понимание, разделяемое всеми
- Простота (Simple design)
- Метафора системы (System metaphor)
- Коллективное владение кодом (Collective code ownership) или выбранными шаблонами проектирования (Collective patterns ownership)
- Стандарт кодирования (Coding standard or Coding conventions)
- Социальная защищенность программиста (Programmer welfare):
- 40-часовая рабочая неделя (Sustainable pace, Forty hour week)
Парное программирование
Парное программирование предполагает, что весь код создается парами программистов, работающих за одним компьютером. Один из них работает непосредственно с текстом программы, другой просматривает его работу и следит за общей картиной происходящего. При необходимости клавиатура свободно передается от одного к другому. В течение работы над проектом пары не фиксированы: рекомендуется их перемешивать, чтобы каждый программист в команде имел хорошее представление о всей системе. Таким образом, парное программирование усиливает взаимодействие внутри команды.
Коллективное владение
Коллективное владение означает, что каждый член команды несёт ответственность за весь исходный код. Таким образом, каждый вправе вносить изменения в любой участок программы. Парное программирование поддерживает эту практику: работая в разных парах, все программисты знакомятся со всеми частями кода системы. Важное преимущество коллективного владения кодом — в том, что оно ускоряет процесс разработки, поскольку при появлении ошибки её может устранить любой программист.
Давая каждому программисту право изменять код, мы получаем риск появления ошибок, вносимых программистами, которые считают что знают что делают, но не рассматривают некоторые зависимости. Хорошо определённые UNIT-тесты решают эту проблему: если не рассмотренные зависимости порождают ошибки, то следующий запуск UNIT-тестов будет неудачным.
Заказчик всегда рядом
«Заказчик» в XP — это не тот, кто оплачивает счета, а тот, кто на самом деле использует систему. XP утверждает, что заказчик должен быть всё время на связи и доступен для вопросов.
Литература
- Кент Бек: Экстремальное программирование — Питер, 2002, ISBN 5-94723-032-1.
- Кент Бек, Мартин Фаулер: Экстремальное программирование: планирование — Питер, 2003, ISBN 5-318-00111-4.
- Кент Бек: Экстремальное программирование: разработка через тестирование — Питер, 2003, ISBN 5-8046-0051-6.
См. также
Ссылки
- Ward Cunningham Wiki (англ.) — «передний край» XP.
- XProgramming.com (англ.) — сайт Рона Джеффриза: статьи и ресурсы по XP и смежным вопросам, обзоры книг.
- Extreme Programming: A gentle introduction (англ.) — «Ненавязчивое введение в XP» Дона Уэллса.
- MAXKIR.COM (рус.) — переводы статей отцов-основателей и идеологов XP
- www.agiledev.ru (рус.) — Сайт гибких методик разработки
- TopCoder (англ.) — соревнование по спортивному программированию
- Электронная библиотечка книг по экстремальному программированию (рус.)
- Экстремальное программирование — реальность и мифы (рус.)
- Тестирование в свете Экстремального Программирования. Часть 1 (рус.)
Компьютер | Это незавершённая статья о компьютерах. Вы можете помочь проекту, исправив и дополнив её. |
be-x-old:Экстрэмальнае праграмаваньне bg:Екстремно програмиране ca:Programació Extrema cs:Extrémní programování da:Extreme Programming de:Extreme Programming en:Extreme Programming es:Programación extrema fi:Extreme Programming fr:Extreme programming gl:Programación Extrema he:Extreme Programming it:Extreme Programming ja:エクストリーム・プログラミング ko:익스트림 프로그래밍 lt:Ribinis programavimas nl:Extreme Programming no:Extreme Programming pl:Programowanie ekstremalne pt:Programação extrema sh:Ekstremno programiranje sr:Ekstremno programiranje sv:Extrem programmering th:Extreme programming uk:Екстремальне програмування vi:Lập trình cực hạn zh:极限编程
Если вам нравится SbUP.com Сайт, вы можете поддержать его - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 и ещё....