poniedziałek, 10 grudnia 2012

"Refaktoryzacja. Ulepszanie struktury istniejącego kodu"

co się odwlecze...

Już od dłuższego czasu przymierzałem się do przeczytania książki Martina Fowlera niestety nieustannie coś mnie od tego odciągała (zazwyczaj brak czasu lub inna literatura:). Na szczęście ostatnio udało mi się po nią sięgnąć, a dzisiaj zakończyłem jej lekturę i muszę przyznać, że... ale o tym za chwilę:)

o czym to?

Autor książki Refaktoryzacja. Ulepszanie struktury istniejącego kodu, jak sam tytuł wskazuje, chce nam przybliżyć temat refaktoryzacji kodu. Czym jest owa refaktoryzacja?
Jest to proces ciągłego wprowadzania zmian do kodu, w taki sposób, aby jego jakość, czytelność i użyteczność była coraz lepsza, nie wpływając przy tym na jego obecne działanie. W parze z refaktoryzacją zazwyczaj (choć idealnie byłoby, gdybym mógł napisać - zawsze:) idą testy, ponieważ są zabezpieczeniem, że po drodze nie zmieniliśmy kodu w sposób, który negatywnie wpłynął na jego zachowanie.

W książce znajdziemy opis wielu sposobów refaktoryzacji wraz z dobrymi przykładami oraz, co jest moim zdaniem dużo istotniejsze, wskazówki, kiedy konkretną reafaktoryzację dobrze jest przeprowadzić, jakie korzyści przyniesie nam wprowadzenie tych zmian, jakie rzeczy powinny nam dać do myślenie i zapalać w głowie sygnał ostrzegawczy. Dodatkowo, przy każdej, jest również lista kroków, które należy przeprowadzić w celu uzyskania pożądanego efektu.

Muszę przyznać, że książka, poprzez wszystkie przykłady w niej zamieszczone, w świetny sposób pokazuje, jakie korzyści przyniesie nam dołączenie refaktoryzacji jako stałego punktu w naszym procesie deweloperskim.

dla kogo jest ta książka?

Dla każdego programisty, który dba o to, aby kod był najwyższej jakości, aby zawsze był aktualny i, przede wszystkim, aby dalsza praca z nim była przyjemnością.

Książkę polecam każdemu, chociaż nie ukrywam, że przy pracy nad aplikacjami, gdzie z góry mamy gotowy projekt, refaktoryzacja jest czymś, co bez problemu (zakładając, że projekt jest dobry:) jesteśmy w stanie uniknąć. Chyba, że po pewnym czasie klient do nas wróci i poprosi o rozwinięcie systemu:)
Tak więc, jeżeli pracujecie w metodykach zwinnych lub w bardzo zmiennym środowisku, to radzę się zapoznać z książką Fowlera, bo stosowanie praktyk w niej zawartych z pewnością niejednokrotnie ułatwi Wam życie:)
Oczywiście wszystkich tych, którzy mają ten komfort i pracują przy stabilnych projektach, również zachęcam do jej przeczytania, bo nigdy nie wiadomo, kiedy taka wiedza może się Wam przydać:)

A tak na marginesie, to jestem trochę zły na samego siebie za to, że tyle czasu zwlekałem z tą lekturą, ponieważ wiele rzeczy, o których autor pisze, już zdążyłem się dowiedzieć w inny, zazwyczaj odrobinę bardziej czasochłonny, sposób, a tak bym mógł spożytkować go w inny sposób:)