Экстремальное программирование
Материал из Википедии — свободной энциклопедии
Разработка программного обеспечения |
---|
Процесс разработки ПО |
Шаги процесса |
Анализ | Проектирование | Реализация | Тестирование | Внедрение | Сопровождение |
Модели / методы |
Agile | Cleanroom | Итеративная | RAD | RUP | 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)
[править] Парное программирование
Парное программирование предполагает, что весь код создается парами программистов, работающих за одним компьютером. Один из них работает непосредственно с текстом программы, другой просматривает его работу и следит за общей картиной происходящего. При необходимости клавиатура свободно передается от одного к другому. В течение работы над проектом пары не фиксированы: рекомендуется их перемешивать, чтобы каждый программист в команде имел хорошее представление о всей системе. Таким образом, парное программирование усиливает взаимодействие внутри команды.
[править] Коллективное владение
Коллективное владение означает, что каждый несёт ответственность за весь код. Таким образом, каждый вправе вносить изменения в любой участок кода. Парное программирование поддерживает эту практику: работая в парах, все программисты получают доступ ко всем частям кода. Важное преимущество коллективного владения кодом — в том, что оно ускоряет процесс разработки, поскольку при появлении ошибки её может устранить любой программист.
Давая каждому программисту право изменять код, мы получаем риск появления ошибок, вносимых программистами, которые считают что знают что делают, но не рассматривают некоторые зависимости. Хорошо определённые юнит-тесты решают эту проблему: если нерассмотренные зависимости порождают ошибки, то следующий запуск юнит-тестов будет неудачным.
[править] Заказчик всегда рядом
«Заказчик» в XP — это не тот, кто оплачивает счета, а тот, кто на самом деле использует систему. XP утверждает, что заказчик должен быть всё время на связи и доступен для вопросов.
[править] Литература
- Кент Бек: Экстремальное программирование — Питер, 2002, ISBN 5-94723-032-1.
- Кент Бек, Мартин Фаулер: Экстремальное программирование: планирование — Питер, 2003, ISBN 5-318-00111-4.
- Кент Бек: Экстремальное программирование: разработка через тестирование — Питер, 2003, ISBN 5-8046-0051-6.
[править] Ссылки
- Ward Cunningham Wiki (en) — «передний край» XP
- XProgramming.com (en) — сайт Рона Джеффриза: статьи и ресурсы по XP и смежным вопросам, обзоры книг
- Extreme Programming: A gentle introduction (en) — «Ненавязчивое введение в XP» Дона Уэллса
- MAXKIR.COM (рус) — переводы статей отцов-основателей и идеологов XP
- Сайт гибких методик разработки (www.agiledev.ru)
- TopCoder — соревнование по экстремальному программированию
- Экстремальное программирование на практике
Экстремальное управление проектами
Это незавершённая статья о компьютерах. Вы можете помочь проекту, исправив и дополнив её. |