Kent Beck - ekstremne programiranje. Razvoj kroz testiranje

Žanr:

Serija:
Starosna ograničenja: +
Jezik:
Izvorni jezik:
Prevodilac (i):
Izdavač:
Grad publikacije: St. Petersburg
Godina izdavanja:
ISBN: 978-5-496-02570-6 Veličina: 382 KB



Nositelji desnika!

Predstavljeni fragment rada postavljen je u koordinaciji s distributerom pravnih sadržaja LLC "litre" (ne više od 20% izvornog teksta). Ako mislite da tada postavljanje materijala krši nečiju prava.

Čitači!

Plaćeni, ali ne znate šta dalje raditi?



Pažnja! Preuzimate izlomak koji je dozvoljen zakonom i vlasnikom prava (ne više od 20% teksta).
Nakon čitanja, od vas će se tražiti da odete na mjesto vlasnika prava i kupite punu verziju posla.


Opis knjige

Povratak poznatog bestseler. Elegantni, fleksibilni i jasni kod koji se lako mijenja, koji pravilno funkcionira i koji ne podiže svoje kreatore neugodnih iznenađenja. Je li zaista moguće? Da biste postigli cilj, pokušajte testirati program čak i prije nego što je napisan. Takva je paradoksalna ideja koja se zasniva na TDD tehnici (razvoju testnog ponašanja - razvoj na osnovu testiranja). Gluposti? Ne žurite da biste napravili rane zaključke. S obzirom na upotrebu TDD-a na primjeru izrade stvarnog programa, autor pokazuje jednostavnost i moć ove tehnike. Knjiga sadrži dva programska projekta, u potpunosti i u potpunosti implementirana pomoću TDD-a. Za razmatranje primjera, opsežan katalog tehnika u TDD stilu, kao i uzorke i refaktorima povezane sa TDD-om. Knjiga će biti korisna za bilo koji programer koji želi poboljšati performanse vašeg rada i uživati \u200b\u200bu programiranju.

Poslednji dojam knjige
  • Dijeli:
  • 16-12-2018, 02:17

Prije čitanja ove knjige pokušao sam pisati testove na članke koje sam pročitao, ali samo s njom počeo je da se snalazi dobro.

Pročitao sam dva puta. Prvi put sam samo pročitao.

Ne razumije ništa. Drugi put kad sam napisao kod tokom čitanja knjige, a zatim sam konačno došao kod mene šta da radim šta i što je najvažnije - osjetila sam svoj korak koraka na koji mogu promijeniti kôd i istovremeno ne bih izgubiti kontrolu nad tim. Bio sam zadovoljan drugim poglavljem gdje je zajedno s autorom napisao moj sistem modularnog testiranja na Pythonu, osjećaj je bio kao da radite operaciju na mom mozgu (zapravo, ovaj usporednik bio je i sam autor i sam autor bio sam autor i sam autor) - Jedan nepažljiv pokret i ne radi, morate premjestiti vrlo male korake. Pročitao sam treće poglavlje selektivno, možda jednog dana čitam.

Skrenuti

Ostali komentari

Ova knjiga govori o ekstremnom programiranju. Ekstremno programiranje, često označeno skraćenicama "XP" - ovo je pojednostavljena metoda organiziranja proizvodnje za male i srednje programerske ekipe softverski proizvod U uvjetima nejasnih ili brzo promjenjivih zahtjeva. Ova je knjiga dizajnirana da vam pomogne da utvrdite da li je upotreba XP-a opravdana u vašoj situaciji ...

O XP seriji

Ekstremno programiranje (ekstremno programiranje), često označava skraćenica XP-a, je razvojna disciplina softver I poslovanje u oblasti stvaranja softvera, što fokusira napore obje strane (programera i privrednika) o zajedničkim, u potpunim ostvarivim svrhama. Timovi koristeći XP proizvode visokokvalitetni softver s vrlo velikom brzinom. Tehnike koje su dio discipline XP opisane u ovoj knjizi biraju se zbog činjenice da se zasnivaju na ljudskoj kreativnosti i usvajanju činjenice da je osoba stvorenje nestabilno i skloni se skloni.

XP je često predstavljen kao skup tehnika, ali sam HP nije ciljna linija. Ne morate biti bolji i bolji vježbati i razvijanje XP-a kako biste dobili dugo očekivanu zlatnu zvijezdu na kraju ovog procesa. Naprotiv, XP je početna linija. XR postavlja pitanje: "Koliko minimalni mogu biti naši napori da nastavimo s proizvodnjom visokokvalitetnog softvera?"

Početak odgovora na pitanje zvuči ovako: Ako želimo razviti visokokvalitetne programe bez previranja i zbrke, moramo biti gotovi i u potpunosti implementirati u našem timu nekoliko tehnika koje ćemo koristiti u potpunosti. Ako ove tehnike koristimo na pola, problemi će ostati i odlučiti, bit će potrebno prijeći na korištenje tehnika u najvećoj mjeri. Ako se s vremenom ograničavamo na polu dimenzije, toliko zbunjujemo da ne možemo razumjeti da je to glavna stvar koja stvara radnim programerima, nastaje za programiranje.

Rekao sam "početak odgovora na" od nastavka zaista ne postoji. Ljudi koji su stvorili i predstavili XP takođe su razmišljali o odluci ovog pitanja. Pokušavajući koristiti XP, zakoračili su preko praga i posjetili neobrađeni. Povratak, ispričali su svoju priču. Misli koje su naveli po pitanju su postavljene uz cestu: "Zmajevi žive ovdje", otvara se 15 km dobar pogled"", "Ova parcela je opasna tokom kiše."

Izvinjavam se, ali vrijeme je za mene da se programiram.

Predgovor

Ekstremno programiranje (

ekstremno programiranje

XP) definira kodiranje kao ključne i temeljne aktivnosti prilikom rada na softverskom projektu. Moguće je da nije u redu!

Mislim da je vrijedno pamtiti moje vlastito iskustvo u razvoju softvera. Radim u mediju u kojem se proizvod razvijen stalno u uslovi radaI istovremeno se u njemu stalno uvedene promjene. Rokovi za oslobađanje sljedeće izvedbene verzije su monstrualno komprimirani, a istovremeno postoji ogroman tehnički rizik nad svim tim. U sličnom okruženju, mogućnost popravljanja vašeg saradnika je umjetnost bez kojeg nije preživljen. Dijeljenje informacija i unutar nekog tima i između nekoliko naredbi koje se često razdvajaju geografski, vrši se pomoću koda. Pročitali smo kod kako bismo razumjeli uređaj od novih ili modificiranih sustava softverskih sučelja. Životni ciklus i ponašanje složeni objekti Definirano korištenjem testnih slučajeva, to je, opet sa kodovima. Poruke o stvarnim pitanjima popraćene su testnim slučajevima koji prikazuju problem, kôd se ponovo koristi. Konačno, stalno se bavimo poboljšanjem postojećeg koda, što ga činimo produktivnijim, fleksibilnijim, razumljivijim. Očito je u takvim uvjetima, razvoj softverskog proizvoda gotovo u potpunosti zasnovan na kodiranju, ali istovremeno možemo uspješno nadopuniti projekte po vremenu, tako ovaj pristup prilično održiv.

Ne bismo trebali zaključiti da je sve što vam treba za uspješnu provedbu programa Projekt je rejocentno žestoko programiranje. Razviti softver je vrlo težak, ali razvijati visokokvalitetni softver i istovremeno završen posao na vrijeme - još teže. Da bi se prilaz opisao, potrebno je dosljedno primjenjivati \u200b\u200bvažna dodatna pravila i tehnike. Iz ovoga je da Kent Beck (Kent Beck) započinje svoju pozitivnu knjigu na XP-u.

Kent je bio među onim liderima Tektronixa, koji su realizirali ogromni potencijal koji su postavljeni u metodologiji programiranja u povezanim parovima prilikom razvijanja složenih inženjerskih aplikacija u Smalltalk medijumu. Zajedno s Bard Cunninghamom (Ward Cunningham), Kent je postao inspirativni razvoj metoda programiranja za uzorke (također se naziva i programiranje pomoću uzoraka -

Surađivao sam s Kent i koristio epizode opisane u okviru XP-a prilikom rada na malom, ali neželjeni projekt koji se zove Junit

Uvođenje

Ova knjiga o ekstremnom programiranju (

ekstremno programiranje

XP). Ekstremno programiranje je pojednostavljena metoda organizacije proizvodnje za male i srednje timove stručnjaka uključenih u razvoj softverskog proizvoda u uvjetima nejasnih ili brzo promjenjivih zahtjeva. Ova je knjiga dizajnirana da pomogne u određivanju je li upotreba XP-a opravdana u vašoj situaciji.

Za mnoge XP izgleda kao skup prilično prihvatljivih i opravdanih sa stanovišta zdravog razuma metoda organizacije rada. Zašto se onda programiranje u skladu sa XP tehnikama naziva ekstremne? Činjenica je da XP donosi upotrebu mnogih općenito prihvaćenih i široko korištenih programskih principa na ekstremne nivoe.

Ako je revizija Kodeksa dobra, to znači da ćemo kontinuirati kôd stalno (u parovima);

EANS testiranje je dobro, svaki učesnik projekta će testirati programski kôd (testiranje modula), čak i kupci ( funkcionalno ispitivanje);

Ersee Design je dobar, to znači da se dizajn mora napraviti dio svakodnevnog rada svakog od sudionika projekta (recikliranje koda);

Ekstremno programiranje

Posvećen mom ocu, i zahvaljujem Cindyju (Cindee Andres), mojoj ženi i partneru, za traženje da ne obraćam pažnju na to i napisao. Zahvaljujući Bethanyu, Lincoln (Lincoln), Forrest (Forrest) i za ne ometajući me i pružio mi da pišem.

O XP seriji

Ekstremno programiranje (ekstremno programiranje), često označava skraćenica XP-a, je disciplina razvoja softvera i poslovanje na polju stvaranja softverskih proizvoda, što fokusira napore obje strane (programera i privrednika) o zajedničkim, u potpunim ostvarivim svrhama. Timovi koristeći XP proizvode visokokvalitetni softver s vrlo velikom brzinom. Tehnike koje su dio discipline XP opisane u ovoj knjizi biraju se zbog činjenice da se zasnivaju na ljudskoj kreativnosti i usvajanju činjenice da je osoba stvorenje nestabilno i skloni se skloni.

XP je često predstavljen kao skup tehnika, ali sam HP nije ciljna linija. Ne morate biti bolji i bolji vježbati i razvijanje XP-a kako biste dobili dugo očekivanu zlatnu zvijezdu na kraju ovog procesa. Naprotiv, XP je početna linija. XR postavlja pitanje: "Koliko minimalni mogu biti naši napori da nastavimo s proizvodnjom visokokvalitetnog softvera?"

Početak odgovora na pitanje zvuči ovako: Ako želimo razviti visokokvalitetne programe bez previranja i zbrke, moramo biti gotovi i u potpunosti implementirati u našem timu nekoliko tehnika koje ćemo koristiti u potpunosti. Ako ove tehnike koristimo na pola, problemi će ostati i odlučiti, bit će potrebno prijeći na korištenje tehnika u najvećoj mjeri. Ako se s vremenom ograničavamo na polu dimenzije, toliko zbunjujemo da ne možemo razumjeti da je to glavna stvar koja stvara radnim programerima, nastaje za programiranje.

Rekao sam "početak odgovora na" od nastavka zaista ne postoji. Ljudi koji su stvorili i predstavili XP takođe su razmišljali o odluci ovog pitanja. Pokušavajući koristiti XP, zakoračili su preko praga i posjetili neobrađeni. Povratak, ispričali su svoju priču. Misli koje su naveli po njima su upućene po cesti: "Zmajevi žive ovdje", "15 km otvara se dobar pogled", za vrijeme kiše je opasno. "

Izvinjavam se, ali vrijeme je za mene da se programiram.

KENT BECK, konsultantska serija

Predgovor

Ekstremno programiranje ( ekstremno programiranje, XP) definira kodiranje kao ključne i temeljne aktivnosti prilikom rada na programskom projektu. Moguće je da nije u redu!

Mislim da je vrijedno pamtiti moje vlastito iskustvo u razvoju softvera. Radim u mediju u kojem se proizvod razvija stalno u radnom stanju, a promjene se u njemu stalno uvode. Rokovi za oslobađanje sljedeće izvedbene verzije su monstrualno komprimirani, a istovremeno postoji ogroman tehnički rizik nad svim tim. U sličnom okruženju, mogućnost popravljanja vašeg saradnika je umjetnost bez kojeg nije preživljen. Dijeljenje informacija i unutar nekog tima i između nekoliko naredbi koje se često razdvajaju geografski, vrši se pomoću koda. Pročitali smo kod kako bismo razumjeli uređaj od novih ili modificiranih sustava softverskih sučelja. Životni ciklus i ponašanje složenih objekata određuju se pomoću testnih slučajeva, odnosno ponovo sa kodovima. Poruke o stvarnim pitanjima popraćene su testnim slučajevima koji prikazuju problem, kôd se ponovo koristi. Konačno, stalno se bavimo poboljšanjem postojećeg koda, što ga činimo produktivnijim, fleksibilnijim, razumljivijim. Očito je u takvim uvjetima, razvoj softverskog proizvoda gotovo u potpunosti zasnovan na kodiranju, ali istovremeno možemo uspješno nadopuniti projekte po vremenu, tako da je ovaj pristup prilično održiv.

Ne bismo trebali zaključiti da je sve što vam treba za uspješnu provedbu programa Projekt je rejocentno žestoko programiranje. Razviti softver je vrlo težak, ali razvijati visokokvalitetni softver i istovremeno završen posao na vrijeme - još teže. Da bi se prilaz opisao, potrebno je dosljedno primjenjivati \u200b\u200bvažna dodatna pravila i tehnike. Iz ovoga je da Kent Beck (Kent Beck) započinje svoju pozitivnu knjigu na XP-u.

Kent je bio među onim liderima Tektronixa, koji su realizirali ogromni potencijal koji su postavljeni u metodologiji programiranja u povezanim parovima prilikom razvijanja složenih inženjerskih aplikacija u Smalltalk medijumu. Zajedno s Bard Cunninghamom (Ward Cunningham), Kent je postao inspirativni razvoj metoda programiranja za uzorke (također se naziva i programiranje pomoću uzoraka - programiranje obrazaca.što je uveliko uticalo na moju sopstvenu karijeru. U okviru XP-a, pristup razvoju softvera, koji kombinira metode koje koriste brojni uspješno radni programeri koji su studirali mnoga literatura o organizaciji programera za rad i pokušali su u praksi mnogim metodama i procedurama za razvoj softverskog proizvoda . Poput uzorka programiranja, XP formira skup najefikasnijih tehnika, kao što su testiranje softverskih modula, programiranja pare i recikliranje koda. Kao dio XP-a, ove su tehnike kombinirane na takav način da nadopunjuju i često kontroliraju jedni druge. Glavna svrha ove knjige je govoriti o interakciji i dijeljenju različitih tehnika. U svim programskim tehnikama jedan je cilj stvoriti softverski proizvod s određenim funkcionalnošću u određenom periodu. Predloženi OTI je vrlo uspješan upravo u vremenskom softverskom procesu nije XP in čist obrazacMeđutim, postoji mnogo od ove dva pristupa.

Surađivao sam s Kent i koristio epizode opisane u okviru XP-a prilikom rada na malom, ali neprikladnom projektu pod nazivom JUNIT. Njegovi stavovi i pristupi razvoju programa uvijek su me formirali da razmislim o tome koliko sam lično radio na programskom projektu. Bez sumnje, XP predstavlja pitanje mnogih tradicionalnih pristupa koje se koriste u programskoj industriji. Nakon čitanja ove knjige možete sami odlučiti, trebate li primijeniti XP u svom radu ili ne.

Ekstremno programiranje

Posvećen mom ocu, i zahvaljujem Cindyju (Cindee Andres), mojoj ženi i partneru, za traženje da ne obraćam pažnju na to i napisao. Zahvaljujući Bethanyu, Lincoln (Lincoln), Forrest (Forrest) i za ne ometajući me i pružio mi da pišem.

O XP seriji

Ekstremno programiranje (ekstremno programiranje), često označava skraćenica XP-a, je disciplina razvoja softvera i poslovanje na polju stvaranja softverskih proizvoda, što fokusira napore obje strane (programera i privrednika) o zajedničkim, u potpunim ostvarivim svrhama. Timovi koristeći XP proizvode visokokvalitetni softver s vrlo velikom brzinom. Tehnike koje su dio discipline XP opisane u ovoj knjizi biraju se zbog činjenice da se zasnivaju na ljudskoj kreativnosti i usvajanju činjenice da je osoba stvorenje nestabilno i skloni se skloni.

XP je često predstavljen kao skup tehnika, ali sam HP nije ciljna linija. Ne morate biti bolji i bolji vježbati i razvijanje XP-a kako biste dobili dugo očekivanu zlatnu zvijezdu na kraju ovog procesa. Naprotiv, XP je početna linija. XR postavlja pitanje: "Koliko minimalni mogu biti naši napori da nastavimo s proizvodnjom visokokvalitetnog softvera?"

Početak odgovora na pitanje zvuči ovako: Ako želimo razviti visokokvalitetne programe bez previranja i zbrke, moramo biti gotovi i u potpunosti implementirati u našem timu nekoliko tehnika koje ćemo koristiti u potpunosti. Ako ove tehnike koristimo na pola, problemi će ostati i odlučiti, bit će potrebno prijeći na korištenje tehnika u najvećoj mjeri. Ako se s vremenom ograničavamo na polu dimenzije, toliko zbunjujemo da ne možemo razumjeti da je to glavna stvar koja stvara radnim programerima, nastaje za programiranje.

Rekao sam "početak odgovora na" od nastavka zaista ne postoji. Ljudi koji su stvorili i predstavili XP takođe su razmišljali o odluci ovog pitanja. Pokušavajući koristiti XP, zakoračili su preko praga i posjetili neobrađeni. Povratak, ispričali su svoju priču. Misli koje su naveli po njima su upućene po cesti: "Zmajevi žive ovdje", "15 km otvara se dobar pogled", za vrijeme kiše je opasno. "

Izvinjavam se, ali vrijeme je za mene da se programiram.

KENT BECK, konsultantska serija

Predgovor

Ekstremno programiranje ( ekstremno programiranje, XP) definira kodiranje kao ključne i temeljne aktivnosti prilikom rada na programskom projektu. Moguće je da nije u redu!

Mislim da je vrijedno pamtiti moje vlastito iskustvo u razvoju softvera. Radim u mediju u kojem se proizvod razvija stalno u radnom stanju, a promjene se u njemu stalno uvode. Rokovi za oslobađanje sljedeće izvedbene verzije su monstrualno komprimirani, a istovremeno postoji ogroman tehnički rizik nad svim tim. U sličnom okruženju, mogućnost popravljanja vašeg saradnika je umjetnost bez kojeg nije preživljen. Dijeljenje informacija i unutar nekog tima i između nekoliko naredbi koje se često razdvajaju geografski, vrši se pomoću koda. Pročitali smo kod kako bismo razumjeli uređaj od novih ili modificiranih sustava softverskih sučelja. Životni ciklus i ponašanje složenih objekata određuju se pomoću testnih slučajeva, odnosno ponovo sa kodovima. Poruke o stvarnim pitanjima popraćene su testnim slučajevima koji prikazuju problem, kôd se ponovo koristi. Konačno, stalno se bavimo poboljšanjem postojećeg koda, što ga činimo produktivnijim, fleksibilnijim, razumljivijim. Očito je u takvim uvjetima, razvoj softverskog proizvoda gotovo u potpunosti zasnovan na kodiranju, ali istovremeno možemo uspješno nadopuniti projekte po vremenu, tako da je ovaj pristup prilično održiv.

Ne bismo trebali zaključiti da je sve što vam treba za uspješnu provedbu programa Projekt je rejocentno žestoko programiranje. Razviti softver je vrlo težak, ali razvijati visokokvalitetni softver i istovremeno završen posao na vrijeme - još teže. Da bi se prilaz opisao, potrebno je dosljedno primjenjivati \u200b\u200bvažna dodatna pravila i tehnike. Iz ovoga je da Kent Beck (Kent Beck) započinje svoju pozitivnu knjigu na XP-u.

Kent je bio među onim liderima Tektronixa, koji su realizirali ogromni potencijal koji su postavljeni u metodologiji programiranja u povezanim parovima prilikom razvijanja složenih inženjerskih aplikacija u Smalltalk medijumu. Zajedno s Bard Cunninghamom (Ward Cunningham), Kent je postao inspirativni razvoj metoda programiranja za uzorke (također se naziva i programiranje pomoću uzoraka - programiranje obrazaca.što je uveliko uticalo na moju sopstvenu karijeru. U okviru XP-a, pristup razvoju softvera, koji kombinira metode koje koriste brojni uspješno radni programeri koji su studirali mnoga literatura o organizaciji programera za rad i pokušali su u praksi mnogim metodama i procedurama za razvoj softverskog proizvoda . Poput uzorka programiranja, XP formira skup najefikasnijih tehnika, kao što su testiranje softverskih modula, programiranja pare i recikliranje koda. Kao dio XP-a, ove su tehnike kombinirane na takav način da nadopunjuju i često kontroliraju jedni druge. Glavna svrha ove knjige je govoriti o interakciji i dijeljenju različitih tehnika. U svim programskim tehnikama jedan je cilj stvoriti softverski proizvod s određenim funkcionalnošću u određenom periodu. Predloženi Otii uspješan upravo u vremenskom softverskom procesu nije XP u čistom obliku, ali postoji mnogo toga od ove dvije pristupe.

Surađivao sam s Kent i koristio epizode opisane u okviru XP-a prilikom rada na malom, ali neprikladnom projektu pod nazivom JUNIT. Njegovi stavovi i pristupi razvoju programa uvijek su me formirali da razmislim o tome koliko sam lično radio na programskom projektu. Bez sumnje, XP predstavlja pitanje mnogih tradicionalnih pristupa koje se koriste u programskoj industriji. Nakon čitanja ove knjige možete sami odlučiti, trebate li primijeniti XP u svom radu ili ne.

Erich Gamma (Erich Gamma)

Uvođenje

Ova knjiga o ekstremnom programiranju ( ekstremno programiranje, XP). Ekstremno programiranje je pojednostavljena metoda organizacije proizvodnje za male i srednje timove stručnjaka uključenih u razvoj softverskog proizvoda u uvjetima nejasnih ili brzo promjenjivih zahtjeva. Ova je knjiga dizajnirana da pomogne u određivanju je li upotreba XP-a opravdana u vašoj situaciji.

Za mnoge XP izgleda kao skup prilično prihvatljivih i opravdanih sa stanovišta zdravog razuma metoda organizacije rada. Zašto se onda programiranje u skladu sa XP tehnikama naziva ekstremne? Činjenica je da XP donosi upotrebu mnogih općenito prihvaćenih i široko korištenih programskih principa na ekstremne nivoe.

Ako je revizija Kodeksa dobra, to znači da ćemo kontinuirati kôd stalno (u parovima);

EANS testiranje je dobro, svaki učesnik projekta testirat će program program stalno (testiranje modula), čak i kupci (funkcionalno ispitivanje);

Ersee Design je dobar, to znači da se dizajn mora napraviti dio svakodnevnog rada svakog od sudionika projekta (recikliranje koda);

Esley jednostavnost je dobra, to znači da moramo održavati najjednostavniji dizajn u sustavu, pružajući trenutni potrebni nivo funkcionalnosti (najjednostavnija stvar koja će najvjerovatnije raditi); Ako je arhitektura važna, to znači da će svaki od sudionika projekta kontinuirano raditi na definiciji i reviziji arhitekture (metafora);

Ispitivanje ESLEY integracije važno je, znači da je potrebno prikupiti i testirati sustav koji se razvija nekoliko puta dnevno (nastavljaju integraciju);

Esley Male iteracije su dobre, potrebno je napraviti iteracije vrlo, vrlo male - sekunde, minute, možda sate, ali ne sedmice i mjesece, a ni u kojem se godinama (igra u planiranju).

Kada sam prvo odlučio formulirati suštinu XP-a za sebe, zamislio sam skup ručica na upravljačkoj ploči. Svaka ručka odgovara određenoj metodologiji o tome koja od njegove lično iskustvo Znao sam da je to prilično efikasno. Svaka ručka je omogućila korištenje ove ili te tehnike u određenoj mjeri: od 1 do 10. Pokušao sam instalirati sve ručke na maksimalni mogući položaj (10) i bio sam iznenađen što je kompletan skup metoda koje me smatraju stabilnim, Predvidljivo i fleksibilno.

XP formira dva skupa obećanja:

Programeri XP obećava da će svaki od njih raditi na rješenju istinski važnih zadataka svakog radnog dana. Svaki od njih nikada neće biti samo u količini. Svaki od njih moći će sve učiniti u njemu ovisi kako bi se sistem razvijen uspješan. Svaki od njih moći će donijeti odluku precizno na području u kojem je nadležan, a ako nije nadležan u nekoj regiji, neće učestvovati u donošenju odluka.

Kupci i rukovodioci HR-a obećavaju da će dobiti maksimalni mogući povratak iz svake sedmice rada na projektu. Svakog nekoliko tjedana moći će vidjeti napredak u postizanju svojih ciljeva. Imat će priliku da promijene smjer razvoja projekta u samoj sredini razvoja, bez straha od dodatnih izvanrednih troškova.

Ako govorite, XP obećava da će smanjiti rizik koji se odnosi na rizik, poboljšati reakciju na promenu poslovanja, poboljšanju performanse projekta i učinit će proces razvoja softvera ugodniji - i sve to istovremeno. Ne šalim se, dovoljno smijeh. Samo pročitajte ovu knjigu, a vi sami možete provjeriti jesam li lud.

Ova knjiga

Ova knjiga govori o stvarima vezanim za metodu XP-a, korijenima, filozofijom, raznim vrstama priča i mitova. Knjiga je dizajnirana da vam pomogne da napravite ponderisanu odluku o tome da li je potrebno koristiti XP u svom projektu. Ako ste nakon čitanja ove knjige odlučili da ne koristite XP-u prilikom rada na vašem projektu, smatrat ću glavnim ciljem postignutim na isti način kao da, nakon čitanja ove knjige, donijet ćete odluku da XP trebate . Drugi cilj knjige je pomoći onima koji već koriste XP. Nakon čitanja knjige takvi će čitatelji moći bolje razumjeti ovu tehniku.

Ova knjiga ne sadrži tačna uputstva o tome kako se treba izvesti točno proces ekstremnog programiranja. Nećete vidjeti mnogo primjera, algoritma ili priča o programeru u njemu. Da biste sve dobili, možete pretraživati \u200b\u200bInternet, razgovarati s nekim od sudionika projekta, pričekajte da se pojavi knjige posvećene ovom ili kako stvoriti takav materijal.

Daljnja sudbina koju su mi opisali disciplina razvoja softvera XP nalazi se u rukama grupe ljudi (možda ste jedan od njih), koji su nezadovoljni postojećim ovaj trenutak Tradicionalne metode organiziranja rada programera. Trebate B. najbolji način Razvoj softvera, želite uspostaviti produktivnije i prijateljske odnose sa svojim kupcima, želite da radite u okviru vaših vodnih programera sretnijim, lojalnijim i produktivnijim. Ukratko, želite dobiti značajnu prednost i ne bojite se iskoristiti nove ideje kako biste stekli ovu prednost. Međutim, prije rizika, želite osigurati da barem ne budete potpuna budala.

XP vam propisuje da radite posao sasvim drugačije nego što ste navikli na ovo. U nekim su slučajevima preporuke XP-a potpuno oprečno prihvaćene standarde. Na ovaj trenutak Vjerujem da će samo oni koji imaju značajne razloge za promjenu postojećeg poretka stvari moći koristiti XP. Međutim, ako postoje takvi razlozi, možete početi koristiti XP odmah. Napisao sam ovu knjigu tako da možete više naučiti o tim razlozima.

Šta je XP?

Šta je XP? XP je pojednostavljeni, efikasan, fleksibilan, predvidljiv, naučno zasnovan i vrlo ugodan način za razvoj softvera koji pružaju nizak nivo Rizik. Iz drugih metoda XP se razlikuje u sljedećim karakteristikama.

Zahvaljujući korištenju izuzetno kratkih ciklusa, razvoj XP nudi brze, stvarne i stalno funkcioniraju povratne informacije.

U okviru XP-a, planiranje povećanja, kao rezultat, opći plan projekta nastaje prilično brzo, ali shvaća se da se ovaj plan razvija tijekom cijelog vremena života projekta.

U okviru XP-a koristi se fleksibilan raspored realizacije jedne ili druge funkcije, poboljšavajući reakciju na promjenu prirode poslovanja i promjenu zahtjeva kupca.

XP se temelji na automatskim testovima koje su razvili oba programera i kupci. Zahvaljujući tim testovima moguće je pratiti razvojni proces, kako bi se osigurala ispravna evolucija sistema i bez odlaganja za otkrivanje kvarova koji postoje u sistemu.

XP se temelji na usmeni razmjene informacija, testova i izvornog koda. Tri od ovih alata koriste se za razmjenu informacija o strukturi sistema i njegovom ponašanju.

XP se temelji na procesu evoluciranja dizajna, koji se nastavlja sve dok sustav postoji.

XP se temelji na bliskoj interakciji programera koji imaju najčešće vještine i mogućnosti.

XP se zasniva na metodama koje zadovoljavaju i kratkoročne instinkte pojedinih programera i dugoročnih interesa cijelog projekta u cjelini.

XP je disciplina za razvoj softvera. Ovo je disciplina jer u okviru XP-a postoje određene stvari koje morate učiniti ako namjeravate koristiti XP. Ne morate odabrati, potrebno je ili ne pisati testove, jer ako to ne učinite, programiranje koje obavljate, ne možete se nazvati Extreme: Krajem diskusije.

Tehnika XP dizajnirana je za rad na projektima koji mogu raditi od dva do deset programera koji nisu učvršćeni u kruti okvir postojećeg računarskog okruženja i u kojem se sve potrebni rad koji se odnosi na testiranje može se izvoditi u roku od jednog dana.

XP plaši ili nervira neke ljude koji se prvi put suočavaju sa ovom tehnikom. Istovremeno, nijedna pojma osnovna XP nije nova. U određenom smislu, metoda XP-a je konzervativna - sve tehnike korištene u njegovom okviru testiraju se po decenijama (kao za strategiju implementacije), pa čak i vekovima (kao za strategiju upravljanja).

U inovacijama u XP-u su sljedeće karakteristike:

Sve ove dugo poznate tehnike sastavljaju se pod jednim krovom;

Intenzitet s kojim se ove tehnike uvode u svakodnevni rad donose se u krajnost;

Korištene tehnike su podržane za jedan različit mogući stupanj.

Adekvatnost

U svojim radovama Šumski ljudi (šumarski narod) i planina (ljudi planinski narod) Antropolog Colin Turnbull (Colin Turnbull) opisuje dva društva koja se potpuno razlikuju jedna od druge. U planinama neophodnim za život nedostaju resursi, a ljudi su uvijek na rubu gladi. Kultura koja je nastala u takvim uvjetima izgleda sjajno. Majke bacaju svoju djecu kako bi se preživela. Impregnacija može prouzrokovati ozljede. Surovost, zvjerstva i izdaja su obični i svakodnevni.

Za razliku od planina, šuma je zasićena resursima. Da bi se osigurao unos u cijelosti, osoba je dovoljno da provede samo oko pola sata. Šumarska kultura je odraz rudarske kulture. Odrasli sudjeluju u kultivaciji i obrazovanju zajedničke djece koja rastu zaljubljuju i brinu dok ne postanu dovoljno sposobni da se pobrinu za sebe. Ako jedna osoba ubije drugu osobu (namjerno ubistvo tih ljudi nije poznato), protjeran je iz društva. Međutim, istovremeno, egzil jednostavno treba ukloniti u šumu i tamo provesti nekoliko mjeseci, pa čak i neki članovi plemena donose mu hranu i poklone.

XP je pokušaj odgovora na pitanje: Kako biste lično programirali da imate dovoljno vremena? Zapravo nemate previše vremena, jer je u krajnjem programiranju posao. U svakom poslu osvaja onoga koji radi rad brže. Međutim, ako ste imali vremena, vjerovatno biste obratili pažnju na razvoj testova; Vjerovatno biste redovito prepravili arhitekturu sistema u slučaju da bi bilo potrebno zaključiti da je to potrebno; Sigurno ćete komunicirati s našim drugovima programera, kao i kod kupca.

Sličan osjećaj dovoljnosti izgleda humanije za razliku od situacija u kojima programeri iz posljednje sile pokušavaju ostati u određenom privremenom okviru, nokautirati iz rasporeda, nemaju vremena za obavljanje velike količine izuzetno važnog rada samo u redu Da biste morali prenijeti projekat na vrijeme. Požurite sprečava programere da u potpunosti pokazuju svoj talent i uživaju u radu. Međutim, počevši istraživati \u200b\u200bXP, morate shvatiti da je osjećaj dovoljnosti i dobro poslovanje. Osjećaj dovoljnosti postaje izvor efikasnosti na isti način kao što osjećaj nedostatka stvara kvarove, dovodi do pojave nedostataka i smanjenje kvalitete i, u konačnici, smanjenje produktivnosti rada.

Planirajte knjigu

Knjiga je napisana kao da se bavite i stvaranjem nove discipline razvoja softvera. Počinjemo s proučavanjem naših osnovnih ideja o razvoju softvera. Nakon toga zapravo stvaramo novu disciplinu. Tada proučavamo posljedice onoga što smo stvorili - kako se može implementirati i koristiti u praksi kada se ne treba koristiti i koje se mogućnosti otvaraju poslovima.

Knjiga je podijeljena u tri dijela.

Problem: u poglavljima, počev Rizik: Glavni problem I završna obrada Povratak na porijekloProblem se utvrđuje da se ekstremno programiranje pokušava riješiti, a utvrđeni su kriteriji kojim se kvaliteta rješenja može procijeniti. U ovom dijelu dobijate opću ideju o metodi ekstremnog programiranja.

Odluka: u poglavljima, počev Kratak pregled I završna obrada Strategija testiranja, Apstraktne ideje predstavljene u prvom dijelu knjige pretvaraju se u skup konkretnih tehnika disciplina. Ovo poglavlje ne sadrži nikakve informacije o tome kako možete primijeniti opisane tehnike u praksi. Umjesto toga, govorimo o općem obliku svake od tehnika. Prepirkom o svakoj tehnici, povezujem ga sa problemima i principima koji su razgovarani u prvom dijelu knjige.

Realizacija XP-a: u poglavljima, počev Uvod XP I završna obrada XP u raduRazgovaraju se o mnogim pitanjima koja se odnose na uvođenje XP-a - kako uvesti XP, koji bi se trebali očekivati \u200b\u200bod različitih ljudi koji sudjeluju u HP projektu, koja se ideja XP razvija u ljudima poslovnog svijeta.

Hvala

Apeliram na čitatelje iz prve osobe ne zato što knjiga predstavlja moje vlastite ideje, a zato što vam kažem o mojoj vlastitoj percepciji ovih ideja. Većina tehnika koja se koriste u okviru XP-a stare je kao sve programiranje.

Ward Cunningham (Ward Cunningham) moj je glavni izvor iz kojeg sam vrištio u kandidaturu. Na ovaj ili onaj način, proveo sam u proteklih petnaest godina, samo pokušavam objasniti drugim ljudima koji se vard praktično bavi gotovo dugo vremena. Hvala vam i Ron Jeffriesu zbog činjenice da je i on probao, a zatim se značajno poboljšao. Zahvaljujući Martinu Fower (Martinu Fowler) za sve ovo jednostavnim mekim jezikom i bez nervnih poremećaja. Zahvaljujući Erich Gama (Erich Gama) za duge razgovore, u kombinaciji s razmatranjem labudova u Limme, kao i da mi ne dopuštaju da ga napustim lošim mislima u mojoj glavi. I naravno, u mom životu ništa ne bi se dogodilo da nisam imao takvog primera za imitaciju, kao i moj otac, Doug Beck, koji su dugi niz godina izgovarali svoje programski veštine.

Zahvaljujući timu C3 u kompaniji Chrysler za mene u praćenju u svojim anketama. A takođe i posebna zahvaljujući našim menadžerima na Sue Anger (Ron Savage) za činjenicu da su imali dovoljno hrabrosti da nam pokušaju pokušati.

Zahvaljujući Daedalos Consulting za pomoć u pisanju ove knjige.

Nagrada za prvenstvo za gledanje materijala prelazi u ruke Paul Chisholma (Paul Chisholm) za svoje obilno, kaprilozne, skrupulozne i često iskreno neugodne komentare. Bez njegove pomoći ova knjiga Ne bih sam ne bih bio samo popularan.

Stvarno sam imao veliko zadovoljstvo komunicirati sa svim onima koji su izveli pregled Ono što sam napisao.

Njihov rad postao je velika pomoć za mene. Ne mogu pronaći riječi zahvalnosti za činjenicu da su imali dovoljno strpljenja da pročitaju svu ovu prozu, za mnoge od njih opisane na stranom jeziku.

Hvala (nasumičnim redosledom u kojem sam primio komentare) Greg Hutchinson, Massimo Arnoldi, Dave Cleal, Schuster, Don Wellsky, Joshua Kerievsky, Torsten Dittmar (Thorsten Dittmar), Moritz Beker (Daniel Hubler), Christofe Henric ( Christoph Henrici), Thomas Zangu (Dierk Koenig), Miroslav Novaka (Mroslav Novak), Rodney Rodney Rodney, Paul Trunz, Steve Hayes (Steve Hayes), Janny de Guzman (Jeannine de Guzman), do Kubita Tom Kubit), Falkmann, Hasko Heinec (Peter Merl), Rob Mell), McBreen, Tomas Ernstu (Thomas Ernst), Guido HCHELLE (Guido Hachler), Dieter Holz, Martin Knecht, Diarn Knecht ( Dierk Krampe), Patrick Liser (Patrick Lisser), Elisabeth Maier, Thomas Mancini (Thomas Mancini), Aleksio Moro (Alexio Moreno), Rolf Pfenninger (Rolf Pfenninger) i Matthias Ressel).

Od objavljivanja

Vaši komentari, prijedlozi, slati pitanja na e-pošta [Zaštićen e-poštom] (PETTER IZDAVANJE KUĆA, RAČUNALNI UREDNIKA).

Rado ćemo znati vaše mišljenje!

Svi izvorni tekstovi u knjizi možete pronaći na http://www.piter.com/download.

Na web mjestu izdavačke kuće http://www.piter.com pronaći ćete detaljne informacije o našim knjigama.

Problem

U ovom dijelu knjige, scena se priprema na kojoj se ekstremno programiranje treba naknadno. Opisuje različite aspekte problema koji treba riješiti formiranjem nove discipline razvoja softvera.

Ovaj odjeljak govori o osnovnim pretpostavkama koje moramo uzeti u obzir odabirom tehnika razvoja softvera, metaforu upravljanja automobilom, četiri vrijednosti, principe formirane na temelju tih vrijednosti, kao i aktivnosti koje su potrebne za strukturiranje u Okvir nove discipline za razvoj softvera.

Rizik: Glavni problem

Postojeće discipline razvoja softvera se ne pokreću i ne daju željeni ekonomski efekat. Ovaj problem ima ogroman ekonomski i humanitarni značaj. Treba nam novi način razvoja softvera.

Glavni problem razvoja softvera je rizik.

Evo nekoliko primjera rizika.

Snimanje grafikona- Dolazi dan isporuke, a vi ste prisiljeni da obavijestite kupca da sustav koji se razvija neće biti spreman još šest mjeseci.

Zatvaranje projekta- Nakon nekoliko pomaka rasporeda i prijenosa datuma isporuke, projekt se zatvara, čak ni ne dovodi do testne faze u radnim uslovima.

Sistem gubi uslugu - Razvijeni softver uspješno je uspostavljen u stvarnom proizvodnom radnom okruženju, ali nakon pala godina upotrebe, troškovi unošenja promjena i / ili broja nedostataka povećavaju se da je to jeftinije zamijeniti sustav novim Razvoj.

- Softverski sistem instaliran je u stvarnom proizvodnom radnom okruženju, ali broj oštećenja i nedostataka je toliko veliki da se sistem ne koristi.

- Softverski sistem je instaliran u stvarnom proizvodnom radnom okruženju, međutim, ispada da u stvari ne rješava problem poslovanja, za rješavanje koje je prvobitno namijenjeno.

Promjena poslovne prirode - Softverski sistem je instaliran u stvarnom proizvodnom radnom okruženju, međutim, tokom šest posljednjih meseci, problem za koji je ovaj sistem trebao biti relevantan, a umjesto toga se suočio s novim, još ozbiljnim problemom.

Nedostatak mogućnosti - Softverski sistem ima mnogo potencijalno zanimljivih funkcija, od kojih je svaki bio vrlo lijep za program, ali ispada da nijedna od ovih mogućnosti ne donosi dosta korist kupcu.

Nastavni okviri - Za dvije godine rada, sve dobri programeriKo je radio na projektu, jedan nakon drugog pokrenuo je program programa razvijen i otišao na drugi posao.

Na stranicama ove knjige pročitat ćete o ekstremnom programiranju ( ekstremno programiranje, XP) - Disciplina razvoja softvera, koja je usmjerena na smanjenje stepena rizika na svim nivoima razvojnog procesa. XP doprinosi značajnom povećanju produktivnosti i poboljšanju kvalitete programa koji se razvijaju, pored toga, to je vrlo zauzeta praksa koja svim svojim sudionicima daje puno zadovoljstva.

Kako XP smanjuje rizike navedene ranije?

Grafika za pomak - XP nudi korištenje vrlo kratkog vremena oslobađanja svake sljedeće verzije. Svaka redovita verzija spremne za upotrebu sistema razvijena je najviše nekoliko mjeseci. Dakle, opseg rada unutar svake verzije je ograničen, pa stoga, ako se dođe do raseljavanja, manje je značajno. Unutar svake verzije planira se izdati nekoliko iteracija koje zahtijeva mogućnosti kupca za razvoj svake od ovih iteracija od jedne do četiri sedmice. To osigurava fleksibilne i osjetljive povratne informacije s kupcem, tako da dobije ideju o trenutnom radu. Unutar svake iteracije, planiranje u skladu s XP-om vrši se u smislu nekoliko zadataka koje je potrebno riješiti kako bi se dobila sljedeća iteracija. Rješenje svakog od zadataka dato je od jedne do tri dana. Kao rezultat toga, naredba može otkriti i rješavati probleme čak i u procesu iteracije. Konačno, XP podrazumijeva da će se prvo priključiti mogućnosti s najvećim prioritetom. Dakle, sve mogućnosti koje nisu uspjele provoditi u okviru ove redovne verzije softverskog proizvoda imaju manji prioritet.

Zatvaranje projekta - U okviru XP-a, kupac mora odrediti najmanji dopušteni skup mogućnosti da minimalna radna verzija programa mora imati osjećaj sa stanovišta rješavanja poslovnih zadataka. Dakle, programeri će morati izvršiti minimalni napor kako bi kupca shvatio da li joj treba ovaj projekt ili ne.

Sistem gubi uslugu - Kao dio XP-a kreiran je veliki broj testova i podržan, koji se pokreću i ponovo pokrenute nakon bilo kakve promjene u sustavu (nekoliko puta dnevno), zbog kojeg je moguće pažljivo nadgledati kvalitetu programa biti razvijen. XP stalno podržava sistem u odličnom stanju. Neispravnosti jednostavno ne daju nakupljanju.

Broj oštećenja i nedostataka - U okviru XP-a, sustav je razvijen testiran kao programeri koji stvaraju testove za svaku pojedinačnu funkciju koja se razvija i kupci koji stvaraju testove za svake pojedinačne mogućnosti sistema.

Nedostaje problem koji se rješava - Kao dio XP-a, kupac je sastavni dio tima koji radi na projektu. Specifikacija projekta se neprestano reciklira u cijelom radu na projektu, zahvaljujući tome, bilo kakvim profinjenjem i otkrićima, koje kupac izvještava o razvojnom timu, odmah nalaze svoj odraz u programu koji se razvija.

Ekstremno programiranje: razvoj kroz testiranje

Posvećen Cindy: krila moje duše

Prava publikacije dobivena su dogovorom sa Addison-Wesley Longman. Sva prava zadržana. Nijedan dio ove knjige ne može se reproducirati u bilo kojem obliku bez pismenog odobrenja vlasnika autorskih prava.


Podaci sadržani u ovoj knjizi dobivaju se iz izvora koje izdavač smatra pouzdanim. Ipak, imajući u vidu moguće ljudske ili tehničke greške, izdavač ne može garantovati apsolutnu tačnost i potpunost informacija i nije odgovoran za moguće greške u vezi s korištenjem knjige.


ISBN 978-0321146533 Engleski

ISBN 978-5-496-02570-6


© 2003 Pearson Education, Inc.

© Prevod na ruski doo Izdavačka kuća "Peter", 2017

© Izdanje na ruskom, registraciji doo Izdavačka kuća "Peter", 2017

© biblioteke programera, 2017

Predgovor

Čisti kod koji radi (Čisti kod koji radi) - u ovom kratkom, ali frazu sadržaja, izumio je Ron Jeffries (Ron Jeffries), leže cijelo značenje metodologije razvoja testiranjem (razvoju testnog testiranja, TDD). Čisti kod koji djeluje je cilj na kojem vrijedi truditi jer

Ovo je predvidljiv način razvoja programa. Znate kada se posao može smatrati potpunim i ne brinuti se o dugoj seriji greške;

Daje priliku da nauči lekcije koje kôd predstavlja. Ako koristite prvu ideju koja je pala na pamet, nećete imati priliku da realizirate drugu, bolju ideju;

Poboljšava život korisnika vaših programa;

Omogućava vašim kolegama da računaju na vas, a vi - da računate na njih;

Pišite takav kod ugodnijim.

Ali kako dobiti čisti kod koji radi? Mnoge sile miješaju se u nas kako bismo dobili čist kod, a ponekad nije moguće ni dobiti kôd koji samo radi. Da biste se riješili mnogih problema, razvit ćemo kôd zasnovan na automatskom testiranju. Ovaj programski stil naziva se testiranje. Prema ovoj tehnici

Novi kôd piše se tek nakon automatskog testa koji završava ne uspije;

Svaka duplifikacija je eliminirana.

Dvoje jednostavna pravila, nije li? Međutim, oni stvaraju složenu pojedinačno i grupno ponašanje sa mnoštvom tehničkih posljedica:

U procesu dizajna stalno lansiramo kod i dobijamo ideju svog rada, pomaže u donošenju pravih odluka;

Mi pišemo testove, jer ne možemo čekati da će neko drugi pisati testove za nas;

Naše razvojno okruženje mora brzo odgovoriti na modifikacije malih kodova;

Dizajn programa trebao bi se temeljiti na korištenju skupa autonomnih, slabo povezanih komponenti za pojednostavljenje testiranja koda.

Dvije spomenuta pravila TDD-a određuju postupak za programski faks.

1. Crveno - Napišite mali test koji ne radi, a možda i nije ni sačinjen.

2. Zeleno - učinite testnim radom što je brže moguće, nemojte razmišljati o oznaci dizajna i čistoće koda. Napišite tačno toliko koda tako da je test radio.

3. Refactoring - eliminirajte bilo kakvo umnožavanje iz pismenog koda.

Crveno - zeleno - refactoring je TDD mantra.

Ako pretpostavimo da je takav program programiranja mogući, može se pretpostaviti da će zbog njegove upotrebe kodeks sadržavati znatno manje nedostatke, osim toga, cilj rada bit će jasan svima koji sudjeluju u njemu. Ako je to slučaj, tada razvoj samo koda potrebnog za prolazak testova također dovodi do socijalnih posljedica:

Uz dovoljno nisku gustoću nedostataka, osiguranje kvaliteta, QA će moći preći iz odgovora na greške u njihovo upozorenje;

Sa smanjenjem broja neugodnih iznenađenja, menadžeri projekata moći će preciznije ocjenjivati \u200b\u200btroškove rada i uključiti kupce u razvojni proces;

Ako su teme tehničkih rasprava jasno definirane, programeri mogu se međusobno komunicirati i više od jednom dnevno ili jednom sedmično;

I opet, s prilično niskom gustoćom nedostataka, možemo primiti integrirani radni proizvod s novom funkcionalnošću koja mu je svaka dana dodala, tako da se možemo pridružiti našim kupcima u poslovnom odnosu potpuno novog tipa.

Dakle, ideja je jednostavna, ali šta je naš interes? Zašto bi programer trebao preuzeti dodatni naboj za pisanje automatiziranih testova? Zašto premjestiti programera da se krene naprijed malim lancima kada mu mozak može razmišljati o mnogo složenijih dizajnerskih struktura? Hravršivost.

Hrabrost

TDD je način upravljanja strahom u procesu programiranja. Ne mislim na strah od pada sa stolice ili straha od glave. Mislim na strah od zadatka, "tako kompliciran da nemam pojma kako to riješiti." Bol je kada nam priroda govori: "Stani!", A strah je kad nam priroda kaže: "Pazi!" OPREZ uopće nije loše, ali pored koristi, strah ima negativan uticaj na nas:

Strah nas čini unaprijed i temeljno razmišljati o nečemu ili drugoj akciji;

Strah nas čini manje komunicirajući;

Strah nas čini strahom od povratnih informacija o našem radu;

Strah nas čini razdražljivijim.

Ništa od toga ne može se nazvati korisnim procesom programiranja, posebno ako radite na složenom zadatku. Dakle, suočeni smo sa pitanjem kako da izađemo iz teške situacije i

Ne pokušavajte predvidjeti budućnost i odmah započeti praktičnu studiju problema;

Nemojte se ispraviti od ostatka svijeta, već povećati nivo komunikacije;

Ne izbjegavajte odgovore, već, naprotiv, uspostavite pouzdane povratne informacije i uz njegovu pomoć pažljivo prati rezultate svojih postupaka;

(Uz iritaciju morate se nositi sa sobom).

Uporedite programiranje sa kantom bunara. Kanta je napunjena vodom, rotirate ručicu, navijate lanac na kapiji i podižete kantu gore. Ako je mala kanta sasvim pogodna za redovnu, slobodno rotirajuću kapiju. Ali ako je kanta velika i tvrda, bit ćete umorni prije nego što ga podignete. Da biste dobili priliku da se odmarate između okreta ručice, potreban je mehanizam za ratchet, što vam omogućava da popravite ručicu. Teže kanta, češće bi zubi trebali slijediti na brzinu ratcheta.

Testovi u TDD-u su zubi na brzinu ratchetka. Prisiljavanje testa na posao, znamo da sad test djeluje, od sada zauvijek. Postao smo jedan korak bliže dovršetku posla nego prije zarađenog testa. Nakon toga primorani smo da radimo drugi test, a zatim treći, četvrti itd. Što je teže problem s kojim se suočavao s programerom, manje funkcionalnost treba pokriti svaki test.

Čitatelji knjige Extreme programiranje objašnjenjaMora primijetiti pažnju na razliku u tonu između ekstremnog programiranja (ekstremnog programiranja, XP) i testiranja testiranjem (razvoj testnog razvoja, TDD). Za razliku od XP-a, TDD tehnika nije apsolutna. XP kaže: "Da krenemo dalje, morate to naučiti i to." TDD je manje specifična tehnika. TDD pretpostavlja prisustvo intervala između donošenja odluka i dobivanja rezultata i nudi alate za kontrolu trajanja ovog intervala. "Šta ako tokom sedmice dizajnirat ću algoritam na papiru, a zatim pisati kod, koristeći pristup" prvim testovima "? Hoće li uložiti TDD? " Naravno da će biti. Znate veličinu intervala između donošenja odluka i evaluacije rezultata i svjesno kontrolirajte ovaj interval.

Većina ljudi koji su savladali TDD tvrde da se njihova programska praksa promijenila na bolje. Zaražena testovima (Ispitivanje zaraženo) - takva je definicija pojavila Erich Gamma (Erich Gamma) kako bi opisala ovu promjenu. Savladavajući TDD, otkrivate da pišete mnogo više testova nego prije i krenite naprijed sitnim koracima, koji bi vam se pojavili besmislen. S druge strane, neki programeri koji su se upoznali sa TDD-om, odlučuju se vratiti u upotrebu prethodnih praksi, rezervirati TDD za posebne prigode kada uobičajeno programiranje ne dovodi do željenog napretka.

Definitivno, postoje zadaci koji su nemogući (trenutno trenutno) za rješavanje samo testovima. Konkretno, TDD ne dozvoljava mehanički demonstriranje adekvatnosti razvijenog koda u pogledu sigurnosti podataka i pouzdanosti paralelnih operacija. Naravno, sigurnost se temelji na kodu u kojem ne bi trebalo biti nedostataka, ali se također temelji na ljudskom sudjelovanju u postupcima zaštite podataka. Tanki problemi paralelnih operacija nemoguće je reproducirati sa povjerenjem, samo pokrenuti neki kod.