Uno degli ultimi progetti a cui ho lavorato aveva molti metodi deprecati. Esistono buone strategie per assicurarsi che l'uso di questi metodi diminuisca effettivamente nel tempo? L'esempio che segue è specifico per Python, ma questa domanda si applica davvero a tutte le lingue.
Ho letto un po 'in passato sull'adozione di politiche informali che si applicano a ogni commit come "il numero di linee non coperte dalla suite di test non può crescere" o "la percentuale di copertura non deve diminuire" come mezzi per migliorare la copertura del test che non comporta la perdita di tutto. Questo è anche l'angolo di cui mi sto avvicinando. Qual è un criterio misurabile che può essere visto da qualcuno per determinare se il commit è educato o meno.
Ecco come potrebbe apparire un esempio. Supponiamo che io abbia un RequestTask
che aveva un group_id
, ma non lo ha più. Il metodo validate_group_id
è ora deprecato e chiama solo validate_request_id
. La variabile di istanza group_id
è stata sostituita con una proprietà. Ecco un file scheletro.
class RequestTask:
...
def validate_request_id(self):
...
# deprecated method
def validate_group_id(self):
return self.validate_request_id()
@property
def group_id(self):
return None
Supponiamo inoltre che non possiamo semplicemente modificare tutto il codice che chiama i metodi deprecati in questo momento, a causa di vincoli di tempo.
Voglio assicurarmi che il codice che chiama questi metodi deprecati alla fine venga modificato.
- Quali sono alcune buone strategie per tracciare se l'uso di metodi e API deprecati sta effettivamente diminuendo nel tempo?
- Se necessario, qual è un buon modo per applicare una norma che porterà al non utilizzo dei metodi deprecati?
- È anche una buona idea provare qualcosa del genere?