JavaSvet - otvorena java zajednica

 
glavna stranica arr2javasvet  english version arr2java.net

Recenzija knjige: "Refaktorisanje"

Igor Spasić
18 Maj 2004
Autor: Martin Fowler
Ostali autori: Kent Beck, John Brant, William Opdyke i Don Roberts
Izdavač: CET, 2003

Nemam često priliku da među domaćim izdanjima primetim knjigu koju bi bezrezervno trebalo imati. Reč je o prevodu knjige Refactoring: Improving the Design of Existing Code originalno izdata od strane izdavačke kuće Addison-Wesley, a koju je većim delom napisao i priredio Martin Fowler (takođe autor poznate knjige UML Distilled). Kada se neka knjiga bavi ovako korisnom temom, koja je prezentovana jasno i razumljivo, napisana od ljudi priznatih u svetu razvijalaca softvera, suvišno ju je hvaliti. Za predstavljanje ove knjige sasvim će poslužiti opis sa njene zadnje korice, čiji deo sledi.

Neposredno pošto je primena objektne tehnologije, posebno programskog jezika Java, postala sasvim uobičajena stvar, zajednica razvijalaca softvera se suočila sa potpuno novim problemom. Veliki broj inače loše projektovanih programa nastali su kao rezultat rada neiskusnih razvijalaca što je dovelo do toga da su aplikacije neefikasne, da se teško održavaju i proširuju. Profesionalci sistemskog softvera sve češće se suočavaju sa poteškoćama rada sa ovakvim nasleđenim, neoptimalnim aplikacijama. Godinama vrhunski stručnjaci objektnog programiranja osmišljavaju različite tehnike za poboljšanje strukturalnog integriteta i performansi postojećih aplikacija. Označene pojmom "refaktoring" ovakve aktivnosti ostaju i dalje u domenu stručnjaka, pošto do sada nije bilo pokušaja da se ova saznanja prevedu u formu koja je prohvatljiva za sve razvijaoce. U knjizi: Refaktorisanje: Poboljšanje dizajna postojećeg koda, svetski priznat poznavalac objektne tehnologije ide korak ispred drugih, uklanja plašt misterije sa ovih majstorskih tehnika rada i praktično pokazuje kako programeri mogu da iskoriste pogodnosti ovog sasvim novog postupka.

Iskusni sistemski projektant koji poseduje odgovarajući stepen obuke može lako da pretvori loš dizajn u dobro dizajniran robustni kod. U ovoj knjizi, Martin Fowler nam pokazuje gde najčešće leže mogućnosti za refaktorisanje i kako da loš dizajn preradimo u sasvim dobar. Svaki korak u postupku refaktorisanja je jednostavan, naizgled toliko jednostavan da ga ne treba ni preduzeti. Refaktorisanje ponekad zahteva da se jedno polje premesti iz jedne klase u neku drugu, da se određeni kod izbaci iz neke metode i od njega izradi zasebna metoda, ili čak da se nekom kodu izmeni redosled u postojećoj hijerarhiji. Iako ovi pojedinačni koraci deluju suviše jednostavno, zbirni efekat tako malih izmena može suštinski da unapredi sam dizajn. Refaktorisanje predstavlja sasvim proveren postupak kojim se onemogućava propadanje softvera.

Pored izlaganja o različitim tehnikama refaktoringa, autor knjige nudi vrlo detaljan katalog sa više od sedameset primera korišćenja refaktoringa uz korisne naznake koje vam pomažu da procenite kada koji slučaj treba primeniti; uputstva za postupno primenjivanje svake od izloženih tehnika refaktoringa; kao i primer koji prikazuje način na koji refaktoring funkcioniše. Slikoviti primeri su napisani u jeziku Javi, međutim koncept je primenljiv na bilo koji objektno orijentisani programski jezik.