What would the best approach be? Write unit tests for them, or question why they're there?
Eliminare il codice è una buona cosa.
Quando non riesci a eliminare il codice, puoi sicuramente contrassegnarlo come @Deprecated , che documenta la versione principale che hai come obiettivo rimuovere il metodo. Quindi puoi eliminarlo "dopo". Nel frattempo, sarà chiaro che non dovrebbe essere aggiunto alcun nuovo codice che dipenda da questo.
Non consiglierei di investire in metodi deprecati, quindi nessun nuovo test unitario solo per colpire obiettivi di copertura.
La differenza tra i due è principalmente se i metodi fanno parte o meno dell'interfaccia pubblicata . L'eliminazione arbitraria di parti dell'interfaccia pubblicata può costituire una spiacevole sorpresa per i consumatori che dipendevano dall'interfaccia.
Non posso parlare ad Eclemma, ma dalle mie esperienze una delle cose di cui bisogna fare attenzione è la riflessione. Se, ad esempio, utilizzi i file di configurazione del testo per scegliere a quali classi / metodi accedere, la distinzione usata / non utilizzata potrebbe non essere ovvia (sono stato bruciato da quella volta accoppiata).
Se il tuo progetto è una foglia nel grafico delle dipendenze, il caso della deprecazione è indebolito. Se il tuo progetto è una libreria, allora il caso della deprecazione è più strong.
Se la tua azienda utilizza un mono-repo , l'eliminazione è un rischio inferiore rispetto al caso multi-repo.
Come indicato da l0b0 , se i metodi sono già disponibili nel controllo del codice sorgente, recuperarli dopo l'eliminazione è un passo avanti esercizio. Se fossi davvero preoccupato di doverlo fare, pensa a come organizzare i tuoi commit in modo che tu possa recuperare le modifiche cancellate se ne hai bisogno.
Se l'incertezza è abbastanza alta, potresti considerare commentare il codice , piuttosto che eliminarlo. È un lavoro extra nel percorso felice (in cui il codice eliminato non viene mai ripristinato), ma rende più facile il ripristino. La mia ipotesi è che dovresti preferire un'eliminazione diretta fino a quando non sei stato masterizzato da questo un paio di volte, il che ti fornirà alcune informazioni su come valutare "l'incertezza" in questo contesto.
question why they're there?
Il tempo investito nel catturare la tradizione non è necessariamente sprecato. Sono stato conosciuto per eseguire una rimozione in due passaggi: in primo luogo, aggiungendo e inserendo un commento che spieghi cosa abbiamo appreso sul codice e poi eliminando il codice (e il commento).
Potresti anche usare qualcosa di analogo ai record di decisioni architettoniche come modo per catturare la tradizione con il codice sorgente.