Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
testami13pokazał,jakślepeoddanietechnikomTDDiSOLIDmożeprowadzićdoskom-
plikowanegokodu.Większośćjegouwagjestzwiązanychzniepotrzebnymikomplikacja-
miwynikającymizwyciąganiadrobnychfragmentówkodudoosobnychklaslubpisania
kodu,któryłatwotestować,aleciężkoczytać.Tutajpojawiasiękolejnyczynnikzwiązany
zprawidłowympisaniemoprogramowania:refaktoring.
Refaktoring
Refaktoringjestjednąznajtrudniejszychdowytłumaczeniaosobomnieprogramują-
cympraktykprogramistycznych.Podczaslotusamolotemwidzimyjedynie20%ztego,
cosprawia,żesamolotleci.Podwarstwamialuminiumitytanuznajdująsięzłożonesy-
stemyelektryczne,którezasilająoświetlenieawaryjne,hydraulikę,konstrukcjęnośną,
któramabyćlekka,aprzytymwytrzymałazbytwiele,abywszystkotutajwymienić.
Wyjaśnianiekomuś,coskładasięnakonstrukcjęsamolotu,jestjakwyjaśnianiekomuś,
żepodzlewemrury.
Refaktoringbazujenaistniejącejstrukturzeiulepsza.Poleganaczyszczeniuistnie-
jącegokodu,abyprzeglądającgo,łatwobyłozrozumieć,cosiędzieje.Samolotypro-
jektowanebardzorygorystycznie,aleoprogramowanienie.Oprogramowaniezmienia
siębardzoszybko.Wielefirmnieustanniewdrażaoprogramowaniewśrodowiskupro-
dukcyjnym.Całetoprojektowanienowychfunkcjimożeczasempowodowaćtzw.ndług
techniczny”
.
Długtechniczny,nazywanyteżdługiemprojektowymlubdługiemkodu,jestmetaforą
dlasłabegozaprojektowaniasystemu,któryulegadegradacjiwczasieżyciaprojektówpro-
gramistycznych.Problememdługutechnicznegojestnawarstwianiesięnodsetek”
,które
wkońcublokująprzyszłyrozwójoprogramowania.
Jeśliktośpracowałdługonadjakimśprojektem,toznatouczucie,gdymamyszybkie
nowewersjewpoczątkowymokresierozwojuistagnacjępodkoniec.Długtechniczny
wwieluprzypadkachwynikazbrakutestówalboniestosowaniazasadSOLID.
Długtechnicznyniekonieczniejestzłyczasamitrzebaprojektyprzepchnąćwcześniej,
abywspomócrozwójbiznesualenniespłacanie”gosprawi,żenarosnątakdużenodset-
ki”
,żeprojektzostaniezniszczony.Sposobemnaporadzeniesobieztymproblememjest
refaktoringkodu.
PoprzezrefaktoringprzybliżamynaszkoddowskazówekSOLIDibazykoduopartej
naTDD.Stosującsiędoponiższychwskazówek,możemyczyścićistniejącykodiułatwiać
nowymprogramistomdołączaniedopracynadjegodalszymrozwojem:
1.StosowaniewskazówekSOLID
a.Zasadapojedynczejodpowiedzialności
b.Zasadaotwarte-zamknięte
c.ZasadapodstawieniaLiskov
13http://bit.ly/test-induced-damage
6
|
Rozdział1:Wprzybliżeniuprawdopodobniepoprawneoprogramowanie