Экстремальное программирование: различия между версиями
[непроверенная версия] | [непроверенная версия] |
Содержимое удалено Содержимое добавлено
→Основные приёмы XP: Более точная абривеатура |
→Рефакторинг: ,Более точная абривеатура |
||
Строка 1:
{{Разработка программного обеспечения}}
'''Аномальное программи́рование''' ({{lang-en|Extreme Programming}}, ''
Название методологии исходит из идеи применить полезные традиционные методы и практики разработки программного обеспечения, подняв их на новый "экстремальный" уровень. Так, например, практика выполнения ревизии кода, заключающая в проверке одним программистом кода, написанного другим программистом, в "экстремальном" варианте представляет собой "парное программирование", когда один программист занимается кодированием, а его напарник в это же время непрерывно просматривает только что написанный кoд.
== Основные приёмы
Двенадцать основных приёмов экстремального программирования (по первому изданию книги ''Extreme programming
* Короткий цикл обратной связи (Fine-scale feedback)
** [[Разработка через тестирование]] (Test-driven development)
Строка 24:
=== Тестирование -очень важная вещь в ХРЕН ===
* [[юнит-тестирование]] модулей;
* [[функциональное тестирование]].
Строка 32:
Функциональные тесты предназначены для тестирования функционирования логики, образуемой взаимодействием нескольких (часто — довольно внушительного размера) частей. Они менее детальны, чем юнит-тесты, но покрывают гораздо больше — то есть, у тестов, которые при своём выполнении затрагивают больший объём кода, шанс обнаружить какое-либо некорректное поведение, очевидно, больше. По этой причине в промышленном программировании написание функциональных тестов нередко имеет больший приоритет, чем написание юнит-тестов.
Для
=== Игра в планирование ===
Строка 38:
=== Заказчик всегда рядом ===
«Заказчик» в
=== Парное программирование ===
Строка 47:
=== Непрерывная интеграция ===
: {{Main|Непрерывная интеграция}}
Если выполнять интеграцию разрабатываемой системы достаточно часто, то можно избежать большей части связанных с этим проблем. В традиционных методиках интеграция, как правило, выполняется в самом конце работы над продуктом, когда считается, что все составные части разрабатываемой системы полностью готовы. В
=== Рефакторинг ===
[[Рефакторинг]] (refactoring) — это методика улучшения кода без изменения его функциональности.
=== Частые небольшие релизы ===
Строка 58:
=== Простота проектирования ===
=== Метафора системы ===
Строка 72:
* обеспечивается эффективное выполнение остальных практик.
Если в команде не используются единые стандарты кодирования, разработчикам становится сложнее выполнять рефакторинг; при смене партнёров в парах возникает больше затруднений; в общем и целом, продвижение проекта затрудняется. В рамках
=== Коллективное владение ===
Строка 90:
== Ссылки ==
* [http://c2.com/cgi/wiki?ExtremeProgrammingRoadmap Ward Cunningham Wiki] {{ref-en}} — «передний край»
* [http://www.xprogramming.com
* [http://www.extremeprogramming.org Extreme Programming: A gentle introduction] {{ref-en}} — «Ненавязчивое введение в
* [http://www.maxkir.com/ MAXKIR.COM] {{ref-ru}} — переводы статей отцов-основателей и идеологов
* [http://agiledev.ru/ www.agiledev.ru] {{ref-ru}} — Сайт гибких методик разработки
* [http://topcoder.com TopCoder] {{ref-en}} — соревнование по спортивному программированию
|