Екстремно програмиране: Разлика между версии

Изтрито е съдържание Добавено е съдържание
м Грешки в статичния код: Липсващ затварящ таг; форматиране: 16x тире, 6lokavica, 7 интервала, кавички, тире-числа (ползвайки Advisor)
м интервал; козметични промени
Ред 30:
XP има 12 практики, групирани в 4 области, който са наследени от най-добрите практики на софтуерното инженерство:
 
* '''Fine scale feedback:'''
** '''''[[Програмиране по двойки]]''''' – двама програмисти, който работят заедно на един компютър, driver и navigator. Докато driver-a пише на компютъра, navigator-а следи работата му. И е добре на половин час да си разменят ролите, а всеки ден да се сменят партньорите. Предимствата на pair programming-а са че по този начин се пише по-верен код, правят се по-малко логически грешки; разменят се знания, защото колкото и да знае даден човек никога не може да знае всичко и винаги може да научи повече; така се сближават хората от екипа, нещо много важно за XP. Ако хората се сменят по-често повече от тях ще бъдат въведени в различните features и по този начин всеки ще е много по-добре запознат с цялостния продукт и комуникацията ще е по-лесна. Смята се, че по този начин има по-малко прекъсвания на работата, което води по-голяма продуктивност. Друго предимство е, че по-малко компютри са необходими, за да се свърши работата, при което свободните могат да бъдат използвани за други цели.
** '''''Planning Game''''' – основния planning process; самият planning game е среща на екипа, която се състои веднъж на всяка итерация (обикновено веднъж седмично). Самият planning process се състои от 2 части: release planning и iteration planning
** '''''Release Planning''''' – фокусира върху това какви изисквания има за следващия release. Състои се от 3 фази:
*** '''''Exploration Phase''''' – клиента казва какви са изискванията му
*** '''''Commitment Phase''''' – има договаряне каква точно функционалност ще се търси при следващия release и кога се очаква да излезе
*** '''''Steering Phase''''' – при тази фаса изискванията може да бъдат подобрени, да бъдат добавени нови, да бъдат премахнати някой от старите
** '''''Iteration Planning''''' – Тук се обсъждат вече дейностите и задачите на разработчиците, клиента не се намесва. Състои се от 3 фази:
*** '''''Exploration Phase''''' – Изискванията се разпределят в различни задачи.
*** '''''Commitment Phase''''' – Задачите се разпределят между разработчиците и ще бъде оценено времето, необходимо за завуршването им
*** '''''Steering Phase''''' – Представят се завършените задачи и се сравняват с предварителните изисквания
** ''''' [[Test Driven Development]]''''' – Използват се Unit tests, който се пишат още преди да е написан кода, за да могат предварително да се предвидят ситуациите, в който кода може да fail-не. При ХР се смята, че продукта е завършен когато не могат да изникнат нови състояния при който кода да fail-не.
** ''''' Whole Team''''' – При ХР клиента е този, за когото е предназначен самия продукт; с ХР не се създават продукти по принцип, за много хора; създават се за даден конкретен клиент, който впоследствие ще използва продукта и самите разработчици поддържат връзка с него.
* '''Continuous process:'''
** ''''' Continuous Integration''''' – Практика, в която разработчиците интегрират често работата си.
** ''''' Design Improvement''''' – code refactoring
** ''''' Small Releases'''''
 
* '''Shared Understanding:'''
** '''''Coding Standards'''''
** '''''Collective Code Ownership'''''
Ред 54:
** [http://www.mayford.ca/xp/metaphor.html System Metaphor]
 
* '''Programmer welfare:'''
** '''''Sustainable Pace'''''
 
== Външни препратки ==
* http://extremeprogramming.org
* [http://www.cs.usfca.edu/~parrt/course/601/lectures/refactoring/refactoring.html Code Refactoring]
 
[[Категория:Процес на софтуерното разработване]]