Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
1.WarTOśĆaUTOMaTYZaCJiTESTÓW
Koszt
Funkcje(czas)
Rysunek1.4.Kosztrozwojuoprogramowaniawtypowymprzypadku:dodawanienowychfunkcji
stajesięcorazbardziejkosztownewrazzupływemczasu
Wwiększościprzypadkówprzerywaniedotychczasowychpraciplanowaniewszystkie-
goodpoczątkuwceluobniżeniazłożonościprzypadkowejjestcałkowicieniepraktyczne.
Anawetgdybybyłobyinaczej,todoczasuzrównaniasiępodwzględemfunkcjonalnym
nowej(tworzonejodzera)wersjizwersjąpoprzednią,będziejużonamiałaswojąwłasną
złożonośćprzypadkową…
Refaktoryzacja
Wydajesięwięc,żetworzeniekolejnychnowychfunkcjinaustabilizowanympoziomie
kosztówjestniemożliwe,ponieważzłożonośćprzypadkowajestnieunikniona.Czyjesteś-
myzatemskazaninaporażkę?Cóż…niedokońca.Rozwiązaniempozwalającymtrzymać
złożonośćprzypadkowąpodkontroląjestrefaktoryzacja.Refaktoryzacjajestprocesem
polegającymnausprawnianiuprojektu(lubhwewnętrznejstruktury”)danegofragmentu
oprogramowania,bezwpływunajegozewnętrznezachowanie.Innymisłowy,refaktory-
zacjapozwalanampozbyćsięzłożonościprzypadkowej.Refaktoryzacjimożemydokony-
waćmałymikrokami,usprawniającnaszprojektkawałekpokawałku,bezkonieczności
przeprojektowywaniacałegosystemu.WksiążceMartinaFowlera,Refaktoryzacja.Ulep-
szaniestrukturyistniejącegokodu
3,podanoodpowiednietechnikipozwalającedokonywać
refaktoryzacjiwbezpiecznysposób.Obecnienajpopularniejszezintegrowaneśrodowiska
programistyczne
4
zawierająpewnenarzędziadoautomatycznejrefaktoryzacjiluboferują
dodatki,którejedostarczają.
3MartinFowler,„Refactoring:ImprovingtheDesignofExistingCode”(Addison-WesleyProfessional,1999).
4
Zintegrowaneśrodowiskoprogramowania(IntegratedDevelopmentEnvironment,IDE)odnosisiędo
oprogramowania,któreskładasięgłówniezedytora,kompilatoraorazzintegrowanegodebugera.Przykładem
najpopularniejszychśrodowiskdlajęzykówC#iJavaMicrosoftVisualStudio,EclipseorazIntelliJ.
8