Extrémní programování

Z Wikipedie, otevřené encyklopedie

Extrémní programování (XP) je metodika vývoje softwaru a programování, která velmi ovlivnila celé softwarové inženýrství. Zavedl ji Kent Beck v knize Extreme Programming Explained. Jedná se o souhrn jednoduchých praktik, které mají dohromady velký synergický účinek.

Obsah

[editovat] Proč extrémní?

XP používá osvědčené a známé principy a postupy vývoje software, dotahuje však jejich použití do extrémů.

  • základem vývoje je neustálá revize zdrojového textu programů – aby nedocházelo k tzv. „profesionální slepotě“, pracují na jednom zdrojovém kódu vždy dva programátoři
  • testování je důležité – proto se program neustále testuje. Testovací rutiny jsou součástí kódu (tento testovací kód někdy přesahuje svým rozsahem vlastní výkonný kód) a program prakticky při každém spuštění testuje, zda se v průběhu vývoje nepoškodil
  • neustále se provádí refaktorování – ověřování, zda návrh programu je správný
  • program se udržuje na co nejmenší úrovni složitosti – vždy se programuje jen to, co je v danou chvíli nezbytné
  • neustále se testuje integrace jednotlivých komponent – konečný program se i několikrát denně sestavuje a testuje se, zda všechny komponenty spolupracují tak, jak mají
  • vývoj probíhá v krátkých iteracích – vždy se vyřeší jedna konkrétní změna programu a okamžitě se ověří, zda všechno pracuje jak má

[editovat] Základní stavební bloky

XP si váží hodnot:

  • jednoduchost
  • komunikace
  • zpětná vazba
  • odvaha

[editovat] Postup vývoje

Následují pravidla, která se dodržují v XP.

[editovat] Plánování

  • napsané „User stories“
  • plánování vydání tvoří časový harmonogram
  • časté vydávání malých změn
  • měří se aktuální rychlost vývoje
  • projekt je rozdělen do iterací
  • každá iterace začíná plánováním
  • rychlé schůze, nejlépe ve stoje
  • „sprav to, když se to rozbije“

[editovat] Design

  • ceněná je jednoduchost
  • pro systém musí existovat metafora
  • pro design se používají Class, Responsibilities, and Collaboration kartičky
  • pro zmenšení rizika „spike solution“
  • funkčnost není přidávána předčasně
  • časté refaktorování (kdykoliv a kdekoliv)

[editovat] Programování

  • zákazník vždy spolupracuje
  • zdrojový kód musí odpovídat firemní kultuře
  • Nejdřív se píší jednotkové testy.
  • Veškerý kód programují programátoři ve dvojicích (tj. dva programátoři sedí u jednoho počítače a u jedné klávesnice).
  • Integraci provádí v jednu chvíli pouze jediný pár programátorů.
  • Integrace probíhá často.
  • Zdrojové kódy vlastní všichni programátoři (každý přispívá k celku a odpovídá za celek).
  • Optimalizace se provádí až nakonec.
  • Žádné pracovní přesčasy.

[editovat] Testování

  • všechen kód má své jednotkové testy — viz unit testing.
  • všechen kód musí projít jednotkovými testy, před tím než je vydán,
  • když se najde chyba, vytvoří se nové jednotkové testy,
  • akcepční testy se spouští často a výsledky se zaznamenávají.

[editovat] Literatura

  • Kent Beck, Martin Fowler: Planning Extreme Programming
  • Ron Jeffries, Ann Anderson, Chet Hendrickson: Extreme Programmin Installed, předmluva Kent Beck

[editovat] Podívejte se také na

[editovat] Externí odkazy