Википедия

Экстремальное программирование

Экстрема́льное программи́рование (англ. Extreme Programming, XP) — одна из гибких методологий разработки программного обеспечения. Авторы методологии — Кент Бек, Уорд Каннингем, Мартин Фаулер и другие.

Название методологии исходит из идеи применить полезные традиционные методы и практики разработки программного обеспечения, подняв их на новый «экстремальный» уровень. Так, например, практика выполнения ревизии кода, заключающаяся в проверке одним программистом кода, написанного другим программистом, в «экстремальном» варианте представляет собой «парное программирование», когда один программист занимается написанием кода, а его напарник в это же время непрерывно просматривает только что написанный код.

История

Методология была разработана Кентом Беком во время его работы над проектом системы для расчета зарплатных ведомостей [англ.] (C3). Бек стал ведущим специалистом проекта в марте 1996 года. Он начал совершенствовать применяемую в проекте методологию разработки, и написал о ней книгу "Extreme Programming Explained" (опубликована в октябре 1999 года). Проект был закрыт в феврале 2000 года.

Основные приёмы XP

Двенадцать основных приёмов экстремального программирования (по первому изданию книги Extreme programming explained) могут быть объединены в четыре группы:

  • Короткий цикл обратной связи (Fine-scale feedback)
    • Разработка через тестирование (Test-driven development)
    • Игра в планирование (Planning game)
    • Заказчик всегда рядом (Whole team, Onsite customer)
    • Парное программирование (Pair programming)
  • Непрерывный, а не пакетный процесс
    • Непрерывная интеграция (Continuous integration)
    • Рефакторинг (Design improvement, Refactoring)
    • Частые небольшие релизы (Small releases)
  • Понимание, разделяемое всеми
    • Простота проектирования (Simple design)
    • Метафора системы
    • Коллективное владение кодом (Collective code ownership) или выбранными шаблонами проектирования (Collective patterns ownership)
    • Стандарт оформления кода (Coding standard or Coding conventions)
  • Социальная защищённость программиста (Programmer welfare):

Тестирование

XP предполагает написание автоматических тестов (программный код, написанный специально для того, чтобы тестировать логику другого программного кода). Особое внимание уделяется двум разновидностям тестирования:

  • юнит-тестирование модулей;
  • функциональное тестирование.

Разработчик не может быть уверен в правильности написанного им кода до тех пор, пока не сработают абсолютно все тесты модулей разрабатываемой им системы. Тесты модулей (юнит-тесты) позволяют разработчикам убедиться в том, что каждый из них по отдельности работает корректно. Они также помогают другим разработчикам понять, зачем нужен тот или иной фрагмент кода, и как он функционирует — в ходе изучения кода тестов логика работы тестируемого кода становится понятной, так как видно, как он должен использоваться. Тесты модулей также позволяют разработчику без каких-либо опасений выполнять рефакторинг (refactoring).

Функциональные тесты предназначены для тестирования функционирования логики, образуемой взаимодействием нескольких (часто — довольно внушительного размера) частей. Они менее детальны, чем юнит-тесты, но покрывают гораздо больше — то есть, у тестов, которые при своём выполнении затрагивают больший объём кода, шанс обнаружить какое-либо некорректное поведение, очевидно, больше. По этой причине в промышленном программировании написание функциональных тестов нередко имеет больший приоритет, чем написание юнит-тестов.

Для XP более приоритетным является подход, называемый TDD (от англ. test-driven development — разработка через тестирование). В соответствии с этим подходом сначала пишется тест, который изначально не проходит (так как логики, которую он должен проверять, ещё просто не существует), затем реализуется логика, необходимая для того, чтобы тест прошёл. TDD, в некотором смысле, позволяет писать код, более удобный в использовании — потому что при написании теста, когда логики ещё нет, проще всего позаботиться об удобстве будущей системы.

Игра в планирование

Основная цель игры в планирование — быстро сформировать приблизительный план работы и постоянно обновлять его по мере того, как условия задачи становятся всё более чёткими. Артефактами игры в планирование является набор бумажных карточек, на которых записаны пожелания заказчика (customer stories), и приблизительный план работы по выпуску следующих одной или нескольких небольших версий продукта. Критическим фактором, благодаря которому такой стиль планирования оказывается эффективным, является то, что в данном случае заказчик отвечает за принятие бизнес-решений, а команда разработчиков отвечает за принятие технических решений. Если не выполняется это правило, весь процесс распадается на части.

Заказчик всегда рядом

«Заказчик» в XP — это не тот, кто оплачивает счета, а конечный пользователь программного продукта. XP утверждает, что заказчик должен быть всё время на связи и доступен для вопросов.

Парное программирование

Парное программирование предполагает, что весь код создается парами программистов, работающих за одним компьютером. Один из них работает непосредственно с текстом программы, другой просматривает его работу и следит за общей картиной происходящего. При необходимости клавиатура свободно передаётся от одного к другому. В течение работы над проектом пары не фиксированы: рекомендуется их перемешивать, чтобы каждый программист в команде имел хорошее представление обо всей системе. Таким образом, парное программирование усиливает взаимодействие внутри команды.

Непрерывная интеграция

Если выполнять интеграцию разрабатываемой системы достаточно часто, то можно избежать большей части связанных с ней проблем. В традиционных методиках интеграция, как правило, выполняется в самом конце работы над продуктом, когда считается, что все составные части разрабатываемой системы полностью готовы. В XP интеграция кода всей системы выполняется несколько раз в день, после того, как разработчики убедились в том, что все тесты модулей корректно срабатывают.

Рефакторинг

Рефакторинг (refactoring) — это методика улучшения кода без изменения его функциональности. XP подразумевает, что однажды написанный код в процессе работы над проектом почти наверняка будет неоднократно переделан. Разработчики XP безжалостно переделывают написанный ранее код для того, чтобы улучшить его. Этот процесс называется рефакторингом. Отсутствие тестового покрытия провоцирует отказ от рефакторинга в связи с боязнью поломать систему, что приводит к постепенной деградации кода.

Частые небольшие релизы

Версии (releases) продукта должны поступать в эксплуатацию как можно чаще. Работа над каждой версией должна занимать как можно меньше времени. При этом каждая версия должна быть достаточно осмысленной с точки зрения полезности для бизнеса.

Чем раньше выпускается первая рабочая версия продукта, тем раньше заказчик начинает получать за счёт неё дополнительную прибыль. Следует помнить, что деньги, заработанные сегодня, стоят дороже, чем деньги, заработанные завтра. Чем раньше заказчик приступит к эксплуатации продукта, тем раньше разработчики получат от него информацию о том, что соответствует требованиям заказчика. Эта информация может оказаться чрезвычайно полезной при планировании следующего выпуска.

Простота проектирования

XP исходит из того, что в процессе работы условия задачи могут неоднократно измениться, а значит, разрабатываемый продукт не следует проектировать заблаговременно целиком и полностью. Попытка детально спроектировать систему в самом начале работы является напрасной тратой времени. XP предполагает, что проектирование — это настолько важный процесс, что его необходимо выполнять постоянно в течение всего времени работы над проектом. Проектирование должно выполняться небольшими этапами, с учётом постоянно изменяющихся требований. В каждый момент времени следует пытаться использовать наиболее простой дизайн, который подходит для решения текущей задачи, и менять его по мере того, как условия задачи меняются.

Кент Бэк и Мартин Фаулер предлагают описывать "простое проектирование" как выполнение следующих четырех критериев:

  1. Система проходит все тесты
  2. Каждый элемент системы имеет своё явное назначение
  3. В системе отсутствует дублирование
  4. Система содержит как можно меньше элементов

Роберт Мартин соглашается c этими правилами, однако в своих ранних работах так же предлагает описывать "простое проектирование" следующими тремя принципами:

  • DRY - не допускайте дублирование кода или ответственности
  • KISS - реализуйте функциональность самым простым из доступных способов
  • YAGNI - не реализуйте функциональности больше, чем требуется для текущей итерации

Метафора системы

Архитектура — это представление о компонентах системы и их взаимосвязях между собой. Разработчикам необходимо проводить анализ архитектуры программного обеспечения для того, чтобы понять, в каком месте системы необходимо добавить новую функциональность, и с чем будет взаимодействовать новый компонент.

Метафора системы (system metaphor) — это аналог того, что в большинстве методик называется архитектурой. Метафора системы даёт команде представление о том, каким образом система работает в настоящее время, в каких местах добавляются новые компоненты, и какую форму они должны принять.

Подбор хорошей метафоры облегчает для группы разработчиков понимание того, каким образом устроена система. Иногда сделать это непросто.

В настоящий момент Боб Мартин признал, что метафора системы устарела и должна быть заменена на Domain Driven Design.

Стандарты оформления кода

Все члены команды в ходе работы должны соблюдать требования общих стандартов оформления кода. Благодаря этому:

  • члены команды не тратят время на споры о вещах, которые фактически никак не влияют на скорость работы над проектом;
  • обеспечивается эффективное выполнение остальных практик.

Если в команде не используются единые стандарты оформления кода, разработчикам становится сложнее выполнять рефакторинг; при смене партнёров в парах возникает больше затруднений; в общем и целом, продвижение проекта затрудняется. В рамках XP необходимо добиться того, чтобы было сложно понять, кто является автором того или иного участка кода, — вся команда работает унифицированно, как один человек. Команда должна сформировать набор правил, а затем каждый член команды должен следовать этим правилам в процессе написания кода. Перечень правил не должен быть исчерпывающим или слишком объёмным. Задача состоит в том, чтобы сформулировать общие указания, благодаря которым код станет понятным для каждого из членов команды. Стандарт оформления кода поначалу должен быть простым, затем он может постепенно усложняться по мере наработки опыта группой разработчиков. Не нужно тратить слишком много времени на предварительную разработку стандарта.

Коллективное владение

Коллективное владение означает, что каждый член команды несёт ответственность за весь исходный код. Таким образом, каждый вправе вносить изменения в любой участок программы. Парное программирование поддерживает эту практику: работая в разных парах, все программисты знакомятся со всеми частями кода системы. Важное преимущество коллективного владения кодом — в том, что оно ускоряет процесс разработки, поскольку при появлении ошибки её может устранить любой программист.

Право каждого программиста изменять код ведёт к риску появления ошибок, вносимых программистами, которые считают, что знают, что делают, но не рассматривают некоторые зависимости. Приверженцы экстремального программирования считают, что хорошо определённые юнит-тесты решают эту проблему: если нерассмотренные зависимости порождают ошибки, то ближайший запуск юнит-тестов будет неудачным и выявит наличие проблемы.

Примечания

  1. Lee Copeland. Extreme Programming (англ.). Computerworld (3 декабря 2001). Дата обращения: 26 ноября 2019. Архивировано 30 июля 2019 года.
  2. BeckDesignRules. Дата обращения: 24 августа 2022. Архивировано 9 июля 2022 года.
  3. Clean Craftsmanship: Disciplines, Standards, and Ethics, Robert C. Martin, ISBN 978-0136915713
  4. Agile Software Development, Principles, Patterns, and Practices, Robert C. Martin
  5. The Pragmatic Programmer, 20th Anniversary Edition, David Thomas and Andrew Hunt, 2019, Addison Wesley, ISBN 978-0135957059

Литература

  • Кент Бек: Экстремальное программирование — Питер, 2002, ISBN 5-94723-032-1.
  • Кент Бек, Мартин Фаулер: Экстремальное программирование: планирование — Питер, 2003, ISBN 5-318-00111-4.
  • Кент Бек: Экстремальное программирование: разработка через тестирование — Питер, 2003, ISBN 5-8046-0051-6.
  • Кен Ауэр, Рой Миллер: «Экстремальное программирование: постановка процесса с первых шагов и до победного конца» — Питер, 2003, ISBN 5-318-00132-7.

См. также

  • Экстремальное управление проектами
  • Покер планирования

Ссылки

  • Ward Cunningham Wiki (англ.) — «передний край» XP.
  • XProgramming.com (англ.) — сайт Рона Джеффриза: статьи и ресурсы по XP и смежным вопросам, обзоры книг.
  • Extreme Programming: A gentle introduction (англ.) — «Ненавязчивое введение в XP» Дона Уэллса.
  • MAXKIR.COM (рус.) — переводы статей отцов-основателей и идеологов XP
  • Topcoder (англ.) — соревнование по спортивному программированию
  • Электронная библиотечка книг по экстремальному программированию (рус.)
  • Экстремальное программирование — реальность и мифы (рус.)
  • Тестирование в свете Экстремального Программирования. Часть 1 (рус.)
  • IT и психология. Человеческий фактор в парном программировании: почему многие не получают желаемого от его внедрения? (рус.)

Википедия, чтение, книга, библиотека, поиск, нажмите, истории, книги, статьи, wikipedia, учить, информация, история, скачать, скачать бесплатно, mp3, видео, mp4, 3gp, jpg, jpeg, gif, png, картинка, музыка, песня, фильм, игра, игры, мобильный, телефон, Android, iOS, apple, мобильный телефон, Samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Сеть, компьютер, Информация о Экстремальное программирование, Что такое Экстремальное программирование? Что означает Экстремальное программирование?

Ekstrema lnoe programmi rovanie angl Extreme Programming XP odna iz gibkih metodologij razrabotki programmnogo obespecheniya Avtory metodologii Kent Bek Uord Kanningem Martin Fauler i drugie Nazvanie metodologii ishodit iz idei primenit poleznye tradicionnye metody i praktiki razrabotki programmnogo obespecheniya podnyav ih na novyj ekstremalnyj uroven Tak naprimer praktika vypolneniya revizii koda zaklyuchayushayasya v proverke odnim programmistom koda napisannogo drugim programmistom v ekstremalnom variante predstavlyaet soboj parnoe programmirovanie kogda odin programmist zanimaetsya napisaniem koda a ego naparnik v eto zhe vremya nepreryvno prosmatrivaet tolko chto napisannyj kod IstoriyaMetodologiya byla razrabotana Kentom Bekom vo vremya ego raboty nad proektom sistemy dlya rascheta zarplatnyh vedomostej angl C3 Bek stal vedushim specialistom proekta v marte 1996 goda On nachal sovershenstvovat primenyaemuyu v proekte metodologiyu razrabotki i napisal o nej knigu Extreme Programming Explained opublikovana v oktyabre 1999 goda Proekt byl zakryt v fevrale 2000 goda Osnovnye priyomy XPDvenadcat osnovnyh priyomov ekstremalnogo programmirovaniya po pervomu izdaniyu knigi Extreme programming explained mogut byt obedineny v chetyre gruppy Korotkij cikl obratnoj svyazi Fine scale feedback Razrabotka cherez testirovanie Test driven development Igra v planirovanie Planning game Zakazchik vsegda ryadom Whole team Onsite customer Parnoe programmirovanie Pair programming Nepreryvnyj a ne paketnyj process Nepreryvnaya integraciya Continuous integration Refaktoring Design improvement Refactoring Chastye nebolshie relizy Small releases Ponimanie razdelyaemoe vsemi Prostota proektirovaniya Simple design Metafora sistemy Kollektivnoe vladenie kodom Collective code ownership ili vybrannymi shablonami proektirovaniya Collective patterns ownership Standart oformleniya koda Coding standard or Coding conventions Socialnaya zashishyonnost programmista Programmer welfare 40 chasovaya rabochaya nedelya Sustainable pace Forty hour week Testirovanie XP predpolagaet napisanie avtomaticheskih testov programmnyj kod napisannyj specialno dlya togo chtoby testirovat logiku drugogo programmnogo koda Osoboe vnimanie udelyaetsya dvum raznovidnostyam testirovaniya yunit testirovanie modulej funkcionalnoe testirovanie Razrabotchik ne mozhet byt uveren v pravilnosti napisannogo im koda do teh por poka ne srabotayut absolyutno vse testy modulej razrabatyvaemoj im sistemy Testy modulej yunit testy pozvolyayut razrabotchikam ubeditsya v tom chto kazhdyj iz nih po otdelnosti rabotaet korrektno Oni takzhe pomogayut drugim razrabotchikam ponyat zachem nuzhen tot ili inoj fragment koda i kak on funkcioniruet v hode izucheniya koda testov logika raboty testiruemogo koda stanovitsya ponyatnoj tak kak vidno kak on dolzhen ispolzovatsya Testy modulej takzhe pozvolyayut razrabotchiku bez kakih libo opasenij vypolnyat refaktoring refactoring Funkcionalnye testy prednaznacheny dlya testirovaniya funkcionirovaniya logiki obrazuemoj vzaimodejstviem neskolkih chasto dovolno vnushitelnogo razmera chastej Oni menee detalny chem yunit testy no pokryvayut gorazdo bolshe to est u testov kotorye pri svoyom vypolnenii zatragivayut bolshij obyom koda shans obnaruzhit kakoe libo nekorrektnoe povedenie ochevidno bolshe Po etoj prichine v promyshlennom programmirovanii napisanie funkcionalnyh testov neredko imeet bolshij prioritet chem napisanie yunit testov Dlya XP bolee prioritetnym yavlyaetsya podhod nazyvaemyj TDD ot angl test driven development razrabotka cherez testirovanie V sootvetstvii s etim podhodom snachala pishetsya test kotoryj iznachalno ne prohodit tak kak logiki kotoruyu on dolzhen proveryat eshyo prosto ne sushestvuet zatem realizuetsya logika neobhodimaya dlya togo chtoby test proshyol TDD v nekotorom smysle pozvolyaet pisat kod bolee udobnyj v ispolzovanii potomu chto pri napisanii testa kogda logiki eshyo net proshe vsego pozabotitsya ob udobstve budushej sistemy Igra v planirovanie Osnovnaya cel igry v planirovanie bystro sformirovat priblizitelnyj plan raboty i postoyanno obnovlyat ego po mere togo kak usloviya zadachi stanovyatsya vsyo bolee chyotkimi Artefaktami igry v planirovanie yavlyaetsya nabor bumazhnyh kartochek na kotoryh zapisany pozhelaniya zakazchika customer stories i priblizitelnyj plan raboty po vypusku sleduyushih odnoj ili neskolkih nebolshih versij produkta Kriticheskim faktorom blagodarya kotoromu takoj stil planirovaniya okazyvaetsya effektivnym yavlyaetsya to chto v dannom sluchae zakazchik otvechaet za prinyatie biznes reshenij a komanda razrabotchikov otvechaet za prinyatie tehnicheskih reshenij Esli ne vypolnyaetsya eto pravilo ves process raspadaetsya na chasti Zakazchik vsegda ryadom Zakazchik v XP eto ne tot kto oplachivaet scheta a konechnyj polzovatel programmnogo produkta XP utverzhdaet chto zakazchik dolzhen byt vsyo vremya na svyazi i dostupen dlya voprosov Parnoe programmirovanie Osnovnaya statya Parnoe programmirovanie Parnoe programmirovanie predpolagaet chto ves kod sozdaetsya parami programmistov rabotayushih za odnim kompyuterom Odin iz nih rabotaet neposredstvenno s tekstom programmy drugoj prosmatrivaet ego rabotu i sledit za obshej kartinoj proishodyashego Pri neobhodimosti klaviatura svobodno peredayotsya ot odnogo k drugomu V techenie raboty nad proektom pary ne fiksirovany rekomenduetsya ih peremeshivat chtoby kazhdyj programmist v komande imel horoshee predstavlenie obo vsej sisteme Takim obrazom parnoe programmirovanie usilivaet vzaimodejstvie vnutri komandy Nepreryvnaya integraciya Osnovnaya statya Nepreryvnaya integraciya Esli vypolnyat integraciyu razrabatyvaemoj sistemy dostatochno chasto to mozhno izbezhat bolshej chasti svyazannyh s nej problem V tradicionnyh metodikah integraciya kak pravilo vypolnyaetsya v samom konce raboty nad produktom kogda schitaetsya chto vse sostavnye chasti razrabatyvaemoj sistemy polnostyu gotovy V XP integraciya koda vsej sistemy vypolnyaetsya neskolko raz v den posle togo kak razrabotchiki ubedilis v tom chto vse testy modulej korrektno srabatyvayut Refaktoring Osnovnaya statya Refaktoring Refaktoring refactoring eto metodika uluchsheniya koda bez izmeneniya ego funkcionalnosti XP podrazumevaet chto odnazhdy napisannyj kod v processe raboty nad proektom pochti navernyaka budet neodnokratno peredelan Razrabotchiki XP bezzhalostno peredelyvayut napisannyj ranee kod dlya togo chtoby uluchshit ego Etot process nazyvaetsya refaktoringom Otsutstvie testovogo pokrytiya provociruet otkaz ot refaktoringa v svyazi s boyaznyu polomat sistemu chto privodit k postepennoj degradacii koda Chastye nebolshie relizy Versii releases produkta dolzhny postupat v ekspluataciyu kak mozhno chashe Rabota nad kazhdoj versiej dolzhna zanimat kak mozhno menshe vremeni Pri etom kazhdaya versiya dolzhna byt dostatochno osmyslennoj s tochki zreniya poleznosti dlya biznesa Chem ranshe vypuskaetsya pervaya rabochaya versiya produkta tem ranshe zakazchik nachinaet poluchat za schyot neyo dopolnitelnuyu pribyl Sleduet pomnit chto dengi zarabotannye segodnya stoyat dorozhe chem dengi zarabotannye zavtra Chem ranshe zakazchik pristupit k ekspluatacii produkta tem ranshe razrabotchiki poluchat ot nego informaciyu o tom chto sootvetstvuet trebovaniyam zakazchika Eta informaciya mozhet okazatsya chrezvychajno poleznoj pri planirovanii sleduyushego vypuska Prostota proektirovaniya XP ishodit iz togo chto v processe raboty usloviya zadachi mogut neodnokratno izmenitsya a znachit razrabatyvaemyj produkt ne sleduet proektirovat zablagovremenno celikom i polnostyu Popytka detalno sproektirovat sistemu v samom nachale raboty yavlyaetsya naprasnoj tratoj vremeni XP predpolagaet chto proektirovanie eto nastolko vazhnyj process chto ego neobhodimo vypolnyat postoyanno v techenie vsego vremeni raboty nad proektom Proektirovanie dolzhno vypolnyatsya nebolshimi etapami s uchyotom postoyanno izmenyayushihsya trebovanij V kazhdyj moment vremeni sleduet pytatsya ispolzovat naibolee prostoj dizajn kotoryj podhodit dlya resheniya tekushej zadachi i menyat ego po mere togo kak usloviya zadachi menyayutsya Kent Bek i Martin Fauler predlagayut opisyvat prostoe proektirovanie kak vypolnenie sleduyushih chetyreh kriteriev Sistema prohodit vse testy Kazhdyj element sistemy imeet svoyo yavnoe naznachenie V sisteme otsutstvuet dublirovanie Sistema soderzhit kak mozhno menshe elementov Robert Martin soglashaetsya c etimi pravilami odnako v svoih rannih rabotah tak zhe predlagaet opisyvat prostoe proektirovanie sleduyushimi tremya principami DRY ne dopuskajte dublirovanie koda ili otvetstvennosti KISS realizujte funkcionalnost samym prostym iz dostupnyh sposobov YAGNI ne realizujte funkcionalnosti bolshe chem trebuetsya dlya tekushej iteraciiMetafora sistemy Arhitektura eto predstavlenie o komponentah sistemy i ih vzaimosvyazyah mezhdu soboj Razrabotchikam neobhodimo provodit analiz arhitektury programmnogo obespecheniya dlya togo chtoby ponyat v kakom meste sistemy neobhodimo dobavit novuyu funkcionalnost i s chem budet vzaimodejstvovat novyj komponent Metafora sistemy system metaphor eto analog togo chto v bolshinstve metodik nazyvaetsya arhitekturoj Metafora sistemy dayot komande predstavlenie o tom kakim obrazom sistema rabotaet v nastoyashee vremya v kakih mestah dobavlyayutsya novye komponenty i kakuyu formu oni dolzhny prinyat Podbor horoshej metafory oblegchaet dlya gruppy razrabotchikov ponimanie togo kakim obrazom ustroena sistema Inogda sdelat eto neprosto V nastoyashij moment Bob Martin priznal chto metafora sistemy ustarela i dolzhna byt zamenena na Domain Driven Design Standarty oformleniya koda Vse chleny komandy v hode raboty dolzhny soblyudat trebovaniya obshih standartov oformleniya koda Blagodarya etomu chleny komandy ne tratyat vremya na spory o veshah kotorye fakticheski nikak ne vliyayut na skorost raboty nad proektom obespechivaetsya effektivnoe vypolnenie ostalnyh praktik Esli v komande ne ispolzuyutsya edinye standarty oformleniya koda razrabotchikam stanovitsya slozhnee vypolnyat refaktoring pri smene partnyorov v parah voznikaet bolshe zatrudnenij v obshem i celom prodvizhenie proekta zatrudnyaetsya V ramkah XP neobhodimo dobitsya togo chtoby bylo slozhno ponyat kto yavlyaetsya avtorom togo ili inogo uchastka koda vsya komanda rabotaet unificirovanno kak odin chelovek Komanda dolzhna sformirovat nabor pravil a zatem kazhdyj chlen komandy dolzhen sledovat etim pravilam v processe napisaniya koda Perechen pravil ne dolzhen byt ischerpyvayushim ili slishkom obyomnym Zadacha sostoit v tom chtoby sformulirovat obshie ukazaniya blagodarya kotorym kod stanet ponyatnym dlya kazhdogo iz chlenov komandy Standart oformleniya koda ponachalu dolzhen byt prostym zatem on mozhet postepenno uslozhnyatsya po mere narabotki opyta gruppoj razrabotchikov Ne nuzhno tratit slishkom mnogo vremeni na predvaritelnuyu razrabotku standarta Kollektivnoe vladenie Kollektivnoe vladenie oznachaet chto kazhdyj chlen komandy nesyot otvetstvennost za ves ishodnyj kod Takim obrazom kazhdyj vprave vnosit izmeneniya v lyuboj uchastok programmy Parnoe programmirovanie podderzhivaet etu praktiku rabotaya v raznyh parah vse programmisty znakomyatsya so vsemi chastyami koda sistemy Vazhnoe preimushestvo kollektivnogo vladeniya kodom v tom chto ono uskoryaet process razrabotki poskolku pri poyavlenii oshibki eyo mozhet ustranit lyuboj programmist Pravo kazhdogo programmista izmenyat kod vedyot k risku poyavleniya oshibok vnosimyh programmistami kotorye schitayut chto znayut chto delayut no ne rassmatrivayut nekotorye zavisimosti Priverzhency ekstremalnogo programmirovaniya schitayut chto horosho opredelyonnye yunit testy reshayut etu problemu esli nerassmotrennye zavisimosti porozhdayut oshibki to blizhajshij zapusk yunit testov budet neudachnym i vyyavit nalichie problemy PrimechaniyaLee Copeland Extreme Programming angl Computerworld 3 dekabrya 2001 Data obrasheniya 26 noyabrya 2019 Arhivirovano 30 iyulya 2019 goda BeckDesignRules neopr Data obrasheniya 24 avgusta 2022 Arhivirovano 9 iyulya 2022 goda Clean Craftsmanship Disciplines Standards and Ethics Robert C Martin ISBN 978 0136915713 Agile Software Development Principles Patterns and Practices Robert C Martin The Pragmatic Programmer 20th Anniversary Edition David Thomas and Andrew Hunt 2019 Addison Wesley ISBN 978 0135957059LiteraturaKent Bek Ekstremalnoe programmirovanie Piter 2002 ISBN 5 94723 032 1 Kent Bek Martin Fauler Ekstremalnoe programmirovanie planirovanie Piter 2003 ISBN 5 318 00111 4 Kent Bek Ekstremalnoe programmirovanie razrabotka cherez testirovanie Piter 2003 ISBN 5 8046 0051 6 Ken Auer Roj Miller Ekstremalnoe programmirovanie postanovka processa s pervyh shagov i do pobednogo konca Piter 2003 ISBN 5 318 00132 7 Sm takzheEkstremalnoe upravlenie proektami Poker planirovaniyaSsylkiWard Cunningham Wiki angl perednij kraj XP XProgramming com angl sajt Rona Dzheffriza stati i resursy po XP i smezhnym voprosam obzory knig Extreme Programming A gentle introduction angl Nenavyazchivoe vvedenie v XP Dona Uellsa MAXKIR COM rus perevody statej otcov osnovatelej i ideologov XP Topcoder angl sorevnovanie po sportivnomu programmirovaniyu Elektronnaya bibliotechka knig po ekstremalnomu programmirovaniyu rus Ekstremalnoe programmirovanie realnost i mify rus Testirovanie v svete Ekstremalnogo Programmirovaniya Chast 1 rus IT i psihologiya Chelovecheskij faktor v parnom programmirovanii pochemu mnogie ne poluchayut zhelaemogo ot ego vnedreniya rus

NiNa.Az

NiNa.Az - Абсолютно бесплатная система, которая делится для вас информацией и контентом 24 часа в сутки.
Взгляните
Закрыто