Экстремальное программирование
Экстремальное программирование (англ. Extreme Programming, XP) — одна из гибких методологий разработки программного обеспечения. Гибкая методология разработки — это концептуальный каркас, в рамках которого выполняется разработка программного обеспечения. 2
Методики разработки ПО: Методика чистой комнаты (Cleanroom ) Итеративная методика «Быстрая разработка приложений» (RAD) Scrum Rational Unified Process Open. UP Microsoft Solutions Framework (MSF) Спиральная модель Модель водопада 3
Составляющие гибких методик: Agile Modeling Agile Unified Process (AUP) Agile Data Method DSDM Essential Unified Process (Ess. UP) Экстремальное программирование (XP) Feature Driven Development (FDD) Getting Real Open Unified Process (Open. UP) Scrum Lean (Бережливая разработка программного обеспечения) 4
Ценности Гибких методик: личности и их взаимодействие важнее, чем процессы и инструменты рабочее программное обеспечение важнее, чем полная документация сотрудничество с заказчиком важнее, чем контрактные обязательства реакция на изменения важнее, чем следование плану. 5
Приёмы экстремального программирования: 1. 2. 3. 4. Короткий цикл обратной связи (Fine scale feedback) Непрерывный, а не пакетный процесс Понимание, разделяемое всеми Социальная защищенность программиста (Programmer welfare) 6
Короткий цикл обратной связи Разработка через тестирование (Test driven development) Игра в планирование (Planning game) Заказчик всегда рядом (Whole team, Onsite customer) Парное программирование (Pair programming) 7
Разработка через тестирование (англ. test-driven development) — техника программирования, при которой модульные тесты для программы или её фрагмента пишутся до самой программы (англ. test-first development) и, по существу, управляют её разработкой. Этапы разработки в TDD: 1. Красный 2. Зелёный 3. Рефакторинг 8
Польза TDD: Поощрение изменений Упрощение интеграции Документирование кода Отделение интерфейса от реализации 9
Непрерывный процесс Непрерывная интеграция (Continuous Integration) Рефакторинг (Design Improvement, Refactor) Частые небольшие релизы (Small Releases) Непрерывная интеграция Частые небольшие релизы Рефакторинг 10
Понимание Простота (Simple design) Метафора системы (System metaphor) Коллективное владение кодом (Collective code ownership) или выбранными шаблонами проектирования (Collective patterns ownership) Стандарт кодирования (Coding standard or Coding conventions) 11
Социальная защищенность 40 -часовая рабочая неделя Устойчивый темп работы 12
13