Code Smells: Nieużywany kod

Niepotrzebny kod

Dzisiejszy wpis nie będzie długi, ani nie będzie zawierał żadnych przykładów – wszystko to z racji małej złożoności poruszanego problemu. Nie mniej nieużywany kod jest jednym z bardziej powszechnych code smells’ów zwłaszcza w długo utrzymywanych, bądź rozwijanych projektach. Dlaczego tak się dzieje? Kiedyś, gdy nie było tak rozbudowanych IDE jak dziś, programiści musieli poświęcać więcej czasu, żeby zrozumieć działanie kodu napisanego przez kogoś innego. Pozostawienie więc kodu, który po wprowadzonych zmianach nie był już używany, mogło być powodowane np. niedokładną analizą źródeł, lub po prostu wynikiem błędu. Teraz dysponujemy zaawansowanymi narzędziami, które praktycznie natychmiast pokazują czy kod jest używany w solucji, więc wymówka z niedokładną analizą nie wchodzi w grę. Dlaczego więc dzisiaj tak rzadko widać by programista usuwał niepotrzebne fragmenty? Wydaje mi się, że wiele osób ma tendencję do unikania modyfikacji, a przede wszystkim usuwania, kodu który nie oni napisali. Każdy też odczuwa chyba pewien rodzaj strachu : “a co jeżeli Resharper się myli?”. Oczywiście ta obawa nie ma żadnego sensu. Po za tym nie bójmy się błędów – w razie czego jest system kontroli wersji 🙂

Dlaczego jest to problem?

Dlaczego w ogóle niewykorzystywany kod może stanowić problem? Wychodzę z założenia, że kod jest swoistą dokumentacją projektu. Nieużywany kod w tej dokumentacji, w najlepszym wypadku stanowi nadmiarowy, a w najgorszym wprowadzający w błąd, opis. Siłą rzeczy zbędny kod, który pozostaje w solucji wprowadza nieczytelność oraz ogranicza siłę ekspresji nowego kodu. Starajmy się zawsze usuwać kod, który nie jest wykorzystywany.

 

 

Jedna myśl na temat “Code Smells: Nieużywany kod

  1. Zdarza się też tłumaczenie, że może ten kod się jeszcze kiedyś przyda. 😉 Ale jakkolwiek szukalibyśmy wymówek, nie ma co się oszukiwać – to w przyrodzie się nie zdarza. A nawet gdyby, to kontrola wersji załatwia temat.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *