Archiwa kategorii: Refactoring

Refaktoryzacja w zielonym

Gdy prowadzę szkolenie z Test-Driven Development zwracam dużą uwagę na umiejętność refaktoryzacji kodu małymi krokami. Uważam, że to bardzo ważne, aby wiedzieć jak zmienić kod, nie rozwalając kompilacji ani testów. Stąd też zawsze znajduję czas na przynajmniej jedno ćwiczenie, w którym uczestnicy spróbują pracy w ten sposób.

Zazwyczaj robimy to z tym kodem, zmieniając wyjściową implementację do wzorca Strategii. Robimy to wg. mechaniki opisanej niegdyś przez Joshuę Kerievsky’ego. Przy okazji używamy maksymalnie dużo refaktoryzacji automatycznych w IntelliJ IDEA (lub Eclipse). Te 2 elementy – wykorzystanie IDE oraz małe kroki – sprawiają, że ćwiczenie bardzo się podoba.

Oczywiście można uczyć się refaktoryzacji „w zielonym” (zielony pasek runnera testów) także na innych przykładach. Ostatnio znalazłem na twardym dysku screencast, który zrobiłem kilka lat temu. Pokazuję w nim, jak za pomocą refaktoryzacji odkryć, że klasa ma za dużo odpowiedzialności (hint:Extract Till You Drop). Następnie dzielę ją na dwie mniejsze klasy, każda skoncentrowana na jednej odpowiedzialności.

Nagrywając ten screencast nie zauważyłem, że uruchomiam tylko 1 test, a nie wszystkie :-). Cóż, mylić się jest rzeczą ludzką. Tym niemniej sama refaktoryzacja jest ciekawa i zachęcam do obejrzenia.

Przy okazji zapraszam też na najbliższe otwarte szkolenie z Test-Driven Development. Będę je prowadził już 17 czerwca. Więcej szczegółów o tym, czego się spodziewać znajdziecie na tej stronie. Aby się zapisać, trzeba wypełnić ten formularz.

W filmie ukryłem też informację o tym, w jaki sposób uzyskać zniżkę na szkolenie. Zapraszam do oglądania!