•  

    983 + 1 = 984

    Tytuł: Refaktoryzacja. Ulepszanie struktury istniejącego kodu
    Autor: Martin Fowler
    Gatunek: informatyka
    Ocena: ★★★★★★☆☆☆☆

    Pierwsza książka w mojej biblioteczce, która zdążyła się zdezaktualizować, bo zanim ją przeczytałem, to pojawiło się drugie wydanie. Fowler zmienił nawet język z Javy na JavaScript i w gruncie rzeczy mu się nie dziwię, bo jakby dalej chciał się trzymać Javy, to musiałby usunąć większość treści ze swojej książki.

    Nie da się ukryć, że pierwsze wydanie mocno się zestarzało i jest to widoczne już od pierwszego rozdziału. Książka przypomina nam, że była pisana w czasach, gdy Java nie posiadała typów wyliczeniowych i numeryczne kody typu najlepiej było przekształcać na dziedziczenie. Przekształcać na dziedziczenie lub użyć przekształcenia refaktoryzacyjnego Zastąpienie Kodu Typu Podklasami, bo taką formę preferuje Fowler. Dla mnie to jest trochę potworek językowy i o ile rozumiem potrzebę zdefiniowania pewnego katalogu przekształceń, to używanie sformułowań pokroju „użyj Zmiany Nazwy Metody” wydaje mi się zaciemniać sam przekaz. Książka jest usłana tego typu wyrażeniami i jest to moje główne zastrzeżenie co do jej formy, bo sam język używany przez autora jest raczej lekki i łopatologiczny.

    Treść jest przedstawiona tak łopatologicznie, że momentami jest to naprawdę kuriozalne. 12 kroków jest potrzebnych, by wyjść z uzależnienia od alkoholu (12 kroków AA), z kolei przeniesienie metody z klasy do klasy potrzebuje 11 kroków i 7 podpunktów, a zmiana nazwy metody 8 kroków i 2 podpunktów. Z dzisiejszej perspektywy większość przekształceń to raczej banalne przykłady i książkę traktuję głównie historycznie, ale podejrzewam, że w czasach Javy 1.1 refaktoryzacja to coś, czego programiści unikali, bo kilka rozdziałów to po prostu podawanie argumentów za refaktoryzacją. Warto dodać, że przesłanki za przekształceniami często są subiektywne i polegają na „widzimisię” autora. Jest to o tyle widoczne, że niektóre przykłady dobrane są w przeciwstawne pary, jak ekstrakcja i wchłonięcie klasy, gdzie pierwsze przekształcenie wyodrębnia jakiś kod, by za chwilę znowu go zintegrować. Pojedyncze wzorce refaktoryzacyjne obecnie znajdują się już w samych językach, jak wzorzec obiektu pustego, czyli Optional z Javy.

    Mam pewien problem z tą książką, bo nie mam jej zbytnio komu polecić, a nie jest to znowu taka słaba pozycja. Fowler definiuje refaktoryzację jako „czyszczenie kodu w efektywny i kontrolowany sposób”, ale według mnie książka Wujka Boba o czystym kodzie jest dzisiaj bardziej aktualna (nie wiem jak wydanie drugie „Refaktoryzacji”). Jeśli ktoś naprawdę potrzebuje rozszerzenia wiedzy w zakresie czyszczenia kodu i nie odpychają go przestarzałe przykłady, to może po tę książkę sięgnąć, chociaż bardziej doświadczeni programiści i tak zbyt wiele się nie nauczą.

    Wpis dodany za pomocą tego skryptu

    #bookmeter #readdev #ksiazki #programowanie #naukaprogramowania #czytajzwykopem

    źródło: refukv.jpg

    +: thority, g.........k +13 innych