Was wäre der beste Ansatz? Schreibe Unit-Tests für sie oder frage dich, warum sie da sind?
Das Löschen von Code ist eine gute Sache.
Wenn Sie den Code nicht löschen können, können Sie ihn auf jeden Fall als @Deprecated markieren , um zu dokumentieren, auf welche Hauptversion Sie abzielen, um die Methode zu entfernen. Dann können Sie es "später" löschen. In der Zwischenzeit wird klar sein, dass kein neuer Code hinzugefügt werden sollte, der davon abhängt.
Ich würde nicht empfehlen, in veraltete Methoden zu investieren - also keine neuen Unit-Tests, um nur die Abdeckungsziele zu erreichen.
Der Unterschied zwischen den beiden besteht hauptsächlich darin, ob die Methoden Teil der veröffentlichten Schnittstelle sind oder nicht . Das willkürliche Löschen von Teilen der veröffentlichten Benutzeroberfläche kann für Benutzer, die von der Benutzeroberfläche abhängig waren, eine unangenehme Überraschung sein.
Ich kann nicht mit EclEmma sprechen, aber nach meinen Erfahrungen ist eines der Dinge, auf die Sie achten müssen, das Nachdenken. Wenn Sie zum Beispiel Textkonfigurationsdateien verwenden, um auszuwählen, auf welche Klassen / Methoden zugegriffen werden soll, ist die verwendete / nicht verwendete Unterscheidung möglicherweise nicht offensichtlich (ich bin dadurch ein paar Mal verbrannt worden).
Wenn es sich bei Ihrem Projekt um ein Blatt im Abhängigkeitsdiagramm handelt, wird der Fall für die Nichtbeachtung abgeschwächt. Wenn es sich bei Ihrem Projekt um eine Bibliothek handelt, ist die Begründung für die Nichtbeachtung strenger.
Wenn Ihr Unternehmen ein Mono-Repo verwendet , ist das Risiko beim Löschen geringer als im Multi-Repo-Fall.
Wenn die Methoden bereits in der Quellcodeverwaltung verfügbar sind, ist das Wiederherstellen nach dem Löschen, wie in l0b0 erwähnt , eine einfache Aufgabe . Wenn Sie dies wirklich befürchten, sollten Sie sich überlegen, wie Sie Ihre Commits so organisieren, dass Sie die gelöschten Änderungen bei Bedarf wiederherstellen können.
Wenn die Unsicherheit hoch genug ist, können Sie den Code auskommentieren, anstatt ihn zu löschen. Es ist zusätzliche Arbeit im Happy-Pfad (wo der gelöschte Code nie wiederhergestellt wird), aber es erleichtert die Wiederherstellung. Ich vermute, Sie sollten ein direktes Löschen bevorzugen, bis Sie ein paarmal davon verbrannt wurden, was Ihnen einige Einsichten darüber gibt, wie Sie "Unsicherheit" in diesem Kontext bewerten können.
Frage, warum sie da sind?
Zeit, die in das Erfassen der Überlieferungen investiert wird, ist nicht unbedingt verschwendet. Es ist bekannt, dass ich ein Entfernen in zwei Schritten durchführe - erstens indem ich einen Kommentar hinzufüge und festlege, in dem erklärt wird, was wir über den Code gelernt haben, und dann den Code (und den Kommentar) später lösche.
Sie können auch etwas verwenden, das mit Architekturentscheidungsunterlagen vergleichbar ist , um die Überlieferungen mit dem Quellcode zu erfassen.