Podziel się:

Czyli to samo ale inaczej. Czym jest refaktoring (ang. refactoring)? To przebudowa kodu naszej aplikacji / skryptu. Czasami jest to modernizacja jednej klasy, która nazbyt bardzo się rozrosła. W innym przypadku trzeba cały kod napisać na nowo, gdy fundamenty nie są w stanie utrzymać rosnącego rozmiaru programu.

Po co stosuje się przebudowę (refaktoring)?

Powodów jest sporo. Najważniejszym jesteś Ty sam(a). Z dnia na dzień stajesz się lepszym programistą, sprawniej rozwiązujesz problemy, obmyślasz nowe zastosowania poznanych technik i wiele więcej. Gdy Ty się rozwijasz, Twoje programy muszą iść w ślad za Tobą. Ktoś kiedyś porównał proces tworzenia oprogramowania do pielęgnacji ogrodu. Jest to proces ciągły, który trzeba udoskonalać.

Jeśli po tygodniu od ukończenia programu wpadniesz na pomysł, jak coś można było zrobić lepiej – nie wahaj się wprowadzić go w życie. Takie podejście bardzo szybko procentuje. Jeśli kompletnie nie masz ochoty i zapału, by brać się do pracy, spróbuj chociaż zapisać swoje pomysły na kartce. Rób to bardzo szczegółowo, żeby nie pominąć żadnego detala. Zazwyczaj po paru godzinach zupełnie zapominamy, o co nam chodziło.

Nie zawsze jednak własny rozwój lub nowe pomysły skłaniają nas do przebudowy. W miarę rozwoju aplikacji coraz trudniej jest nam utrzymać porządek w kodzie. Szczególnie mamy z tym problemy, gdy terminy są napięte, a my pracujemy pod presją czasu. Zazwyczaj w takich sytuacjach robimy bardzo dużo, mało przy tym myśląc.

Po kilku takich maratonach poprawek okazuje się, że dodanie choćby drobnej funkcjonalności zajmuje sporo czasu i pracy. Przychodzi taki moment, że trzeba przebudować architekturę, by dalszy rozwój w ogóle był możliwy.

Są też przyczyny nie do końca zależne od nas. Np. technologia, w której napisany jest program, przestaje być rozwijana i wspierana. Może się zdarzyć, że robimy refaktoring na życzenie klienta, którego życzeniem jest implementacja programu w Javie lub .Necie.

Niezależnie od powodów, dobrze jest wiedzieć, jak się za ową przebudowę zabrać. Od czego zacząć? Zawsze od planu i kalkulacji, czy jest ona opłacalna. Do tego potrzebujemy zidentyfikować wady obecnej architektury. Teraz trzeba się zastanowić, czy oczekiwane rezultaty są warte włożonej pracy. Przykładowo, jeśli skrócenie czasu wyszukiwania z 5 sekund na 4 i pół ma nas kosztować tydzień pracy, szkoda się za to zabierać. Jeżeli byłaby to jednak tylko kwestia dodania właściwych indeksów do bazy, warto byłoby przyspieszyć wyszukiwanie.

Przepis na udany refaktoring znajdziesz tutaj: http://it.esky.pl/2014/08/08/przepis-na-udany-refaktoring/.

Podczas gdy część zmian jest niezbędna i nie da się ich uniknąć (np. przenosiny na nowy serwer i przebudowa konfiguracji) większość jest zależna od nas. Podejmuj decyzje świadomie, będąc gotowym na konsekwencje. Refaktoring zawsze wiąże się z ryzykiem, które czasem ciężko jest przewidzieć wcześniej.