Ocena:

Książka jest wysoko ceniona przez programistów za dogłębne zbadanie technik refaktoryzacji, dokładne przykłady i praktyczne spostrzeżenia. Polecana jest zarówno początkującym, jak i doświadczonym programistom, podkreślając jej znaczenie w poprawie czytelności i łatwości utrzymania kodu. Niektórzy recenzenci zwrócili jednak uwagę na jej dosadność i wyrazili pragnienie przykładów kodu w językach innych niż JavaScript.
Zalety:⬤ Kompleksowe omówienie technik i zasad refaktoryzacji.
⬤ Przydatne zarówno dla początkujących, jak i doświadczonych programistów.
⬤ Dobrze zaprojektowana z wysokiej jakości diagramami i praktycznymi przykładami.
⬤ Autor zapewnia cenne spostrzeżenia wynikające z bogatego doświadczenia.
⬤ Nowe refaktoryzacje i zaktualizowane treści w drugim wydaniu zwiększają jego przydatność.
⬤ Działa jako dobre odniesienie do identyfikowania możliwości refaktoryzacji.
⬤ Niektórzy uważają, że styl pisania jest rozwlekły i trudny do naśladowania.
⬤ Przykłady są głównie w JavaScript, co może nie współgrać z programistami, którzy preferują inne języki, takie jak C# lub Java.
⬤ Brak gotowego, zrefaktoryzowanego kodu dla złożonych metodologii może utrudniać zrozumienie.
⬤ Niektórzy czytelnicy uważają, że książka ta może być bardziej odpowiednia jako odniesienie niż książka do przeczytania od deski do deski.
(na podstawie 123 opinii czytelników)
Refactoring: Improving the Design of Existing Code
Przewodnik Martina Fowlera po przerabianiu złego kodu na dobrze ustrukturyzowany.
Refaktoryzacja poprawia projekt istniejącego kodu i zwiększa łatwość utrzymania oprogramowania, a także sprawia, że istniejący kod jest łatwiejszy do zrozumienia. Martin Fowler, sygnatariusz oryginalnego Manifestu Agile i lider myśli programistycznej, dostarcza katalog refaktoryzacji, który wyjaśnia, dlaczego należy refaktoryzować; jak rozpoznać kod, który wymaga refaktoryzacji; i jak faktycznie zrobić to z powodzeniem, niezależnie od używanego języka.
⬤ Zasady refaktoryzacji: zrozumienie procesu i ogólnych zasad refaktoryzacji.
⬤ Zapachy kodu: rozpoznawanie „złych zapachów” w kodzie, które sygnalizują możliwości refaktoryzacji.
⬤ Ulepszanie aplikacji: szybkie stosowanie przydatnych refaktoryzacji w celu ułatwienia zrozumienia i zmiany programu.
⬤ Tworzenie testów: pisanie dobrych testów zwiększa efektywność programisty.
⬤ Przenoszenie funkcji: ważną częścią refaktoryzacji jest przenoszenie elementów między kontekstami.
⬤ Struktury danych: zbiór refaktoryzacji służących do organizowania danych, odgrywających ważną rolę w programach.
⬤ Logika warunkowa: użyj refaktoryzacji, aby sekcje warunkowe były łatwiejsze do zrozumienia.
⬤ API: moduły i ich funkcje są elementami składowymi naszego oprogramowania, a API są łącznikami, których używamy do łączenia ich ze sobą.
⬤ Dziedziczenie: jest zarówno bardzo przydatne, jak i łatwe do niewłaściwego użycia, a często trudno jest dostrzec niewłaściwe użycie, dopóki nie znajdzie się w lusterku wstecznym - refaktoryzacja może naprawić niewłaściwe użycie.
Przykłady są napisane w JavaScript, ale nie powinieneś mieć trudności z dostosowaniem refaktoryzacji do dowolnego języka, którego aktualnie używasz, ponieważ wyglądają one w większości tak samo w różnych językach.
Za każdym razem, gdy przeczytałeś (Refactoring), nadszedł czas, aby przeczytać go ponownie. A jeśli jeszcze go nie przeczytałeś, zrób to przed napisaniem kolejnej linii kodu.- David Heinemeier Hansson, twórca Ruby on Rails, założyciel i CTO w Basecamp.
Każdy głupiec może napisać kod zrozumiały dla komputera. Dobrzy programiści piszą kod zrozumiały dla ludzi."-M. Fowler (1999)