Snippet : Najczęściej edytowane klasy

Częsta edycja jednej klasy może przyczyniać się do błędów w kodzie, konfliktów i bałaganu. Klasa taka, na pewno nie spełnia OCP (Open/Close Principle) – jest zamknięta na rozszerzenia, dlatego dodanie każdej nowej funkcjonalności powoduje jej edycję.

Do najczęściej edytowanych klas zazwyczaj należą klasy typu. Main, MainActivity, DataManager – ponieważ tam zazwyczaj programiści dodają najwięcej kodu. Każde dodanie nowej funkcjonalności do takiej aplikacji wymusza zmianę w tych klasach – w MainActivity trzeba dodać nowy element menu a w DataManager nowy model danych.

Istnieje prosty sposób na sprawdzenie takich potencjalnych punktów zapalnych:

git log --name-status $*| \
   grep -E '[A-z]*(.kt|.java)'| \
   cut -c3-500| \
   sort| \
   uniq -c| \
   sort -n -r| \
   head --lines=100

Jeśli jakiś plik znajduje się na samej górze listy, to nie znaczy, że od razu musisz go refaktorować. Zrób to przy najbliższej próbie edycji, ale pod kątem zachodzących zmian. Próba naprawienia wszystkiego na raz może pochłonąć wiele godzin pracy i mieć marny efekt. Rób to stopniowo i z głową a zminimalizuje to ryzyko błędów i konfliktów.

Skrypt ten nie działa niestety na zmianę nazwy klasy i przeniesienie klasy do innych pakietów, ale jeśli w projekcie nie było radykalnych porządków w ostatnim czasie to powinien spełnić oczekiwania 90% osób.

Jeśli uważasz treść za wartościową to podziel się nią z innymi. Dziękuję.

Mateusz Chrustny

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *