Czysta funkcja (ang.: pure function) jest to termin z programowania funkcjonalnego, który mówi, że funkcja jest "czysta" jeśli są spełnione następujące warunki:
Te same dane przekazane do funkcji zawsze dają taki sam wynik.
Funkcja nie tworzy efektów ubocznych.
Przyjrzyjmy się obu warunkom bliżej.
Dane na wejściu, wynik na wyjściu
Te same dane przekazane do funkcji zawsze dają taki sam wynik.
Czyli: dla taki samych parametrów funkcja zawsze powinna zwrócić ten sam wynik:
Stworzyliśmy kopię tablicy, a następnie zmieniliśmy jej pierwszy element. Niestety zmienił się także oryginał. Jest tak dlatego, że w ten sposób skopiowaliśmy także referencje z macierzystej tablicy.
Martwy kod zaśmieca projekt. Skoro go nie używamy to warto go skasować prawda?
Problem pojawia się kiedy pracujemy w dużym projekcie i trzeba sprawdzić wiele plików. Na szczęście Webstorm udostępnia funkcjonalność, która wskazuje miejsca, gdzie znajduje się nieużywany kod.
Znajdź: JavaScript and TypeScript. W drzewku znajdź: Unused symbols.
Domyślnie powinny być zaznaczone wszystkie opcje dla tej kategorii. Jeśli tak nie jest, zaznacz wszystko.
Własny profil inspekcji kodu
Ponieważ jak zauważysz, zaznaczonych jest wiele opcji a Tobie, zależy tylko na znalezieniu martwego kodu, możesz stworzyć specjalny profil dla tej operacji. Zlokalizuj na górze: Profile. Obok znajduje się lista z profilami. Żeby dodać własny, kliknij ikonkę z prawej strony listy. Wybierz opcję Duplicate.... Stworzy nowy profil. Ustaw w nim nazwę na przykład: Dead code. Jest wiele opcji do odznaczenia, ale głowa do góry! Jest szybki sposób na odznaczenie wszystkich opcji. Poniżej listy z profilami jest ikonka: minus w kwadracie kiedy na nią najedziesz kursorem, wyświetli się tooltip z tekstem: Reset to Empty. Kliknij to. Wszystkie opcje są niezaznaczone. Teraz znajdź znowu: Unused symbols. Zaznacz to. Wszystkie opcje dla tej kategorii także zostaną wybrane. Zapisz swoje ustawienia.
Dobra mamy wszystko czas odpalić inspekcję kodu.
Uruchomienie inspekcji kodu
Zamknij okno z ustawieniami. Przejdź do: Code -> Inspect Code....
Wyświetli się okienko. Możesz ustawić sobie lokalizację, w jakim miejscu inspekcja kodu ma się uruchomić. Domyślnie to: Whole project, czyli: cały projekt.
Na koniec wybierz swój profil w Inspection profile.
Kliknij Analyze.
Po chwili wygeneruje się raport z zaznaczonymi miejscami, gdzie znajduje się martwy kod. O ile jakiś istnieje :)