Come annotare le modifiche alla firma del metodo?

1

Sto sviluppando un mini framework e voglio apportare modifiche ai metodi esistenti. So che per deprecare un metodo posso usare l'annotazione @deprecated . Tuttavia, quale annotazione dovrei usare per far sapere agli utenti che cambierò la quantità di parametri che riceverà un metodo o forse il risultato restituito?

Mi piacerebbe sapere quali annotazioni usare in PHP.

    
posta Mosty Mostacho 20.02.2014 - 04:46
fonte

2 risposte

1

Supponendo che tu stia utilizzando il controllo delle versioni, dovresti prendere nota delle interruzioni delle modifiche nel registro delle modifiche quando si verifica e annunciare la modifica anticipata di una versione prima del tempo (o versioni anticipate in base a quanto ampiamente il tuo progetto è Usato). Se tutto ciò che stai facendo è l'espansione di una firma di funzione esistente e puoi farla franca avendo i nuovi parametri facoltativi, non devi annunciarlo, ma potresti comunque prendere in considerazione la possibilità di inserirlo nel log delle modifiche.

Per dirla chiaramente, le firme delle funzioni non possono essere deprecate in PHP. Puoi deprecare un'intera funzione, ma non una firma, poiché le funzioni PHP hanno solo una firma.

Forse mantenere il vecchio metodo e avere la nuova firma in una funzione con un nome di transizione, come "foo ()" e "_future_foo ()" e attendere la prossima versione per sostituire quella vecchia con quella nuova . Questo potrebbe complicare le cose, quindi sarebbe meglio fare ciò che fanno gli sviluppatori PHP e solo annunciare la modifica anticipata di una versione (o due) prima del tempo.

Se ti ritrovi a cambiare completamente una firma di funzione e il suo tipo di ritorno, considera invece di fare una nuova funzione e di lasciare la vecchia da sola, ma segna quella vecchia come deprecata. Per quello, sì, useresti @deprecated

    
risposta data 28.04.2014 - 23:16
fonte
1

Depreacated non mi ha ancora una soluzione.

In Java hide() e show() sono deprecati da anni. La documentazione ci obbliga a usare setVisible(boolean) invece di hide() e show() - comunque hide() e show() funzionano ancora bene.

@deprecated does not throw a exception, its a warning for developers.

Ogni volta che un metodo non esiste più: un Java-Unittest fallirà - ma questo test deve essere stato scritto da chi usa il tuo mini-framework.

Anche per dare informazioni sulla retrocompatibilità: java ha una @ version-annotation.

    
risposta data 29.04.2014 - 10:41
fonte

Leggi altre domande sui tag