fbpx

Refactoring Majster

Opublikowane przez Jerzy Wickowski w dniu

Refaktoring jest postrzegany i rozumiany różnie. W zależności od doświadczenia, umiejętności czy stanowiska. Od czegoś zupełnie niepotrzebnego, takiej zabawy developerskiej zjadającej czas i pieniądze, aż do fanatyzmu, który prowadzi do chęci otrzymania kodu idealnego. Oczywiście oba podejścia nie są dobre, ponieważ nie należy popadać z patologii w patologię. Z okazji zakończonego już jakiś czas temu remontu naszła mnie taka refleksja. Posłuchaj.

Jak klient może rozumieć refaktoring?

Refaktoring często jest postrzegany jako coś niepotrzebnego, nadmiarowego, zbędnego. Zwłaszcza przez klienta, któremu czasami ciężko wytłumaczyć, co to jest i do czego służy. Bo jak wytłumaczyć, że musimy przeorać bebechy i zajmie nam to trzy tygodnie, a po wszystkim aplikacja powinna działać tak jak działała. Przecież to jawna strata czasu i pieniędzy. Czy na pewno? To zależy, ale można spróbować użyć przenośni.

Refaktoring jest jak remont

Wyobraź sobie, że chcesz wyremontować łazienkę w swoim mieszkaniu, które już ma swoje lata. Masz w planie położyć nowe płytki oraz zrobić odpływ z pralki, tak aby nie trzeba były wkładać rury odpływowej do wanny, czy sedesu. Robota wydaję się prosta. 

Dzwonisz zatem do fachowca. Umawiacie się. On przychodzi, ogląda łazienkę, opowiadasz mu o swoich planach. On z uwagą słucha, chwilę myśli i przewraca do góry nogami wszystkie Twoje plany. Uświadamiając się, że nie będzie tak szybko i tanio jak myślałeś na początku. Dowiadujesz się, że instalacja wodno-kanalizacyjna jest bardzo stara i może pęknąć przy podłączaniu odpływu. Z kolei elektryczna jest aluminiowa z czasów PRL, a ścianę to najlepiej wyburzyć i postawić od nowa, bo jest krzywa i mało stabilna.

Wybór

Poznając fakty, musisz podjąć decyzję, która nie jest łatwa, ale w przybliżeniu może wyglądać tak:

  • Zrobić to dobrze – zapłacić fachowcowi i mieć pewność, że nowa instalacja będzie solidna i szczelna. Nowo postawiona ściana, wraz z płytkami będzie równa, a płytki będą się układać wręcz idealnie. Może być drogo, ale solidnie. Ponadto fachowiec daje gwarancję.
  • Zrobić po taniości – powiedzieć fachowcowi, żeby zrobił szybciej i taniej. Niech zostawi stare rury i kable, a płytki nie muszą być idealnie. W końcu jak instalacja działała to na pewno będzie działać.

Ty jesteś fachowcem

Postaw się teraz z drugiej strony. Co Ci pozostaje, gdy klient zdecydował się na wersję nr 2? Możesz zakasać rękawy i zabrać się do roboty z nadzieją, że jednak wszystko będzie dobrze. Jednak to dość ryzykowne podejście. To Ty jesteś specjalistą w jakiejś dziedzinie i Ty znasz się na swojej pracy. 

Jeżeli jesteś pewien, że to zaraz się rozsypie, to musisz go edukować, bo rola programisty to nie jest tylko klepanie kodu, ale przede wszystkim rozwiązywanie problemów. Jednak jeśli jest uparty i wybiera bramkę numer dwa, to Ty możesz nie być wstanie dać jakiejkolwiek gwarancji na nowy twór.

Na koniec

Wiem, że to jest przejaskrawiony przypadek. Jednak czasem spojrzenie z innej, czasem groteskowej perspektywy, pozwala na świeże spojrzenie na temat. Bardzo często w świecie oprogramowania można wybrać inną ścieżkę, aby połączyć opcję A i B. 



Czy to był wartościowy artykuł? Zapisz się, a wyślę Ci dwa ebooki o czystym kodzie oraz będę informował Cię o nowych postach

1 Komentarz

8 przyczyn złego kodu | Jerzy Wickowski · 2019-11-11 o 10:32

[…] Jak często refaktorujesz kod aplikacji, nad którą pracujesz? Raz na miesiąc/tydzień/dzień? Jedyna poprawna odpowiedź to “przy każdej możliwej okazji”. Tylko w taki sposób możesz zapewnić, że kod będzie zawsze czysty. Refaktoring to nic niezwykłego. Traktuj go jako normalną część pracy programisty. Tak jak to, że fachowiec, po sobie sprząta. […]

Dodaj komentarz

Twój adres email nie zostanie opublikowany.

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.

[contact-form-7 404 "Nie znaleziono"]

Zapisz się

Wyślę Ci dwa dokumenty mówiące o jakości kodu. Dodatkowo będę Cię informował o nowych postach i nowościach.