Jakie byłoby najlepsze podejście? Napisz dla nich testy jednostkowe lub zadaj pytanie, dlaczego tam są?
Usunięcie kodu to dobra rzecz.
Jeśli nie możesz usunąć kodu, możesz z pewnością oznaczyć go jako @Deprecated , dokumentując, do którego głównego wydania chcesz usunąć metodę. Następnie możesz go usunąć „później”. W międzyczasie będzie jasne, że nie należy dodawać nowego kodu, który będzie od niego zależny.
Nie zalecałbym inwestowania w przestarzałe metody - dlatego nie ma nowych testów jednostkowych, które mogłyby tylko osiągnąć cele dotyczące zasięgu.
Różnica między nimi polega przede wszystkim na tym, czy metody są częścią opublikowanego interfejsu . Arbitralne usuwanie części opublikowanego interfejsu może być nieprzyjemną niespodzianką dla konsumentów zależnych od interfejsu.
Nie mogę rozmawiać z EclEmma, ale z moich doświadczeń wynika, że jedną z rzeczy, na które należy uważać, jest refleksja. Jeśli na przykład użyjesz tekstowych plików konfiguracyjnych, aby wybrać klasy / metody dostępu, użyte / nieużywane rozróżnienie może nie być oczywiste (zostałem przez to wypalony kilka razy).
Jeśli twój projekt jest liściem na wykresie zależności, wówczas argument dotyczący wycofania jest osłabiony. Jeśli twój projekt jest biblioteką, to argument za zaniechaniem jest silniejszy.
Jeśli Twoja firma korzysta z mono-repo , wówczas usuwanie jest mniejsze ryzyko niż w przypadku wielu repo.
Jak zauważono w l0b0 , jeśli metody są już dostępne w kontroli źródła, odzyskanie ich po usunięciu jest prostym ćwiczeniem. Jeśli naprawdę martwiłeś się koniecznością zrobienia tego, zastanów się, jak zorganizować swoje zatwierdzenia, aby w razie potrzeby móc odzyskać usunięte zmiany.
Jeśli niepewność jest wystarczająco wysoka, możesz rozważyć skomentowanie kodu , zamiast go usunąć. To dodatkowa praca na szczęśliwej ścieżce (gdzie usunięty kod nigdy nie jest przywracany), ale ułatwia przywracanie. Domyślam się, że powinieneś preferować proste usuwanie, dopóki nie zostaniesz przez to spalony kilka razy, co da ci wgląd w to, jak ocenić „niepewność” w tym kontekście.
pytanie, dlaczego tam są?
Czas zainwestowany w zdobywanie wiedzy niekoniecznie jest marnowany. Przeprowadzono usuwanie w dwóch krokach - najpierw poprzez dodanie i zatwierdzenie komentarza wyjaśniającego, czego dowiedzieliśmy się o kodzie, a następnie usunięcie kodu (i komentarza).
Możesz także użyć czegoś analogicznego do architektonicznych zapisów decyzji jako sposobu przechwytywania wiedzy za pomocą kodu źródłowego.