10-08-2022
Jakiś czas temu przeczytałam książkę „Praca z zastanym kodem. Najlepsze techniki” autorstwa Michael C. Feathers.
Dziś chciałabym się z Tobą podzielić moimi odczuciami i przemyśleniami na jej temat 🙂
Dla kogo?
Książka skierowana jest do osób które pracują przy projektach, których kod jest trudny w rozwoju i modyfikacji.
Co tam znajdziemy?
Książka opisuje konkretne sytuacje jakie często mamy pracując przy kodzie legacy (takim który jest ciężko utrzymywać, modyfikować i rozwijać) i pokazuje rozwiązania danego problemu.
W mojej opinii sam spis treści najlepiej oddaje w jakich sytuacjach sięgnąć po tą książkę. Poniżej część spisu treści:
- Nie mam zbyt wiele czasu, a muszę to zmienić
- Dokonanie zmiany trwa całą wieczność
- Jak mogę dodać nową funkcjonalność?
- Nie mogę umieścić tej klasy w jarzmie testowym
- Nie mogę uruchomić tej metody w jarzmie testowym
- Muszę dokonać zmian. Które metody powinienem przetestować?
- Muszę dokonać wielu zmian w jednym miejscu. Czy powinienem pousuwać zależności we wszystkich klasach, których te zmiany dotyczą?
- Muszę dokonać zmian, ale nie wiem, jakie testy napisać
- Dobijają mnie zależności biblioteczne
- Nie rozumiem wystarczająco dobrze kodu, żeby go zmienić
- Moja aplikacja nie ma struktury
- Przeszkadza mi mój testowy kod
- Mój projekt nie jest zorientowany obiektowo. Jak mogę bezpiecznie wprowadzać zmiany?
- Ta klasa jest za duża, a ja nie chcę, żeby stała się jeszcze większa
- Wszędzie zmieniam ten sam kod
- Muszę zmienić monstrualną metodę, lecz nie mogę napisać do niej testów
- Skąd mam wiedzieć, czy czegoś nie psuję?
- Czujemy się przytłoczeni. Czy nie będzie chociaż trochę lepiej?
Jeśli pracujesz obecnie przy projekcie i masz takie myśli jak wyżej, to ta książka jest dla Ciebie!
Ja osobiście wiele razy miałam problemy opisane wyżej. Pracując przy projekcie legacy próbowałam obchodzić na różne sposoby pewne problemy. Jednym z takich przykładów jest opisany przeze mnie w pierwszym wpisie na tym blogu „nie mogę napisać testu do metody” (przykład jest w języku PHP). Sposób opisany we wpisie obmyśliłam zanim przeczytałam tą książkę. W momencie czytania książki okazało się, że ktoś już obmyślał tego typu problemy i nie musiałam do tego dochodzić na własną rękę, tylko mogłam po prostu wcześniej przeczytać tą książkę…
Minusy książki?
- W mojej opinii głównym minusem tej książki są niektóre tłumaczenia na język polski angielskich słów. Całość brzmiałaby dużo bardziej sensownie przy pozostawieniu angielskich nazw.
- W książce przykłady napisane są zamiennie w języku Java, C i C++. Niektóre przykłady w związku z tym sprawiały mi trudność zrozumienia danego przykładu.