Refaktorointi

Refaktorointi tarkoittaa prosessia, jossa tietokoneohjelman lähdekoodia muutetaan siten, että sen toiminnallisuus säilyy, mutta sen sisäinen rakenne muuttuu. Muutokset voivat koskea esimerkiksi luettavuutta tai ohjelmakomponenttien työnjaon selkeyttämistä. Uusia ominaisuuksia ei pyritä lisäämään tai ohjelmointivirheitä korjaamaan refaktoroinnin yhteydessä.

Tyypillisiä refaktorointeja 
Yleisimmät refaktoroinnin menetelmät ovat rename ja extract method, joista rename tarkoittaa muuttujan, metodin tai luokan uudelleennimeämistä paremmin merkitystään kuvaavaksi, kun taas extract methodissa pitkä metodi pilkotaan pienempiin osiin.

Perustelut 
Refaktoroinnin hyödyllisyyttä perustellaan sen koodin laatua parantavalla vaikutuksella. Koodista tulee myös luettavampaa, ja sitä kautta helpommin ylläpidettävää. Kustannussäästöt tulevat siis sitä kautta.

Refaktorointia tarvitaan, kun ohjelmaa pitää laajentaa sellaisiin tapauksiin, joita ei ole huomioitu alkuperäisessä suunnittelussa. Joissakin ohjelmistotuotantomenetelmissä (esimerkiksi Extreme Programming) refaktorointi on oleellisessa osassa kokonaisprosessia.

Oikeaoppiseen refaktorointiin kuuluu vain pienten muutosten tekeminen kerrallaan ja niiden välitön testaaminen. Testivetoinen kehitys edellyttää, että refaktoroitavalla koodilla on olemassa yksikkötestit joiden avulla voidaan varmistaa, että refaktorointi ei muuta sovelluksen toimintaa.

Kirjallisuutta 
 Fowler, Martin (1999). Refactoring. Improving the Design of Existing Code. Addison-Wesley. ISBN 0-201-48567-2.

Aiheesta muualla
http://www.refactoring.com/catalog/index.html 

Ohjelmointi