Vedo domande simili a questa per quanto riguarda i nomi dei parametri che corrispondono alle proprietà della classe, ma non riesco a trovare nulla riguardo all'utilizzo di un nome di parametro uguale al nome del tipo di parametro tranne che per il case in C #. Non sembra essere una violazione che posso trovare, ma è considerata una cattiva pratica? Ad esempio, ho il seguente metodo
public Range PadRange(Range range) {}
Questo metodo accetta un intervallo e restituisce un nuovo intervallo a cui è stato applicato del riempimento. Quindi, dato il contesto generico, non riesco a pensare a un nome più descrittivo per il parametro. Tuttavia, mi viene in mente un suggerimento che ho preso leggendo il Codice completo sulla "distanza psicologica". Dice
La distanza psicologica può essere definita come la facilità con cui due elementi possono essere differenziati ... Mentre esegui il debug, sii pronto per i problemi causati da una distanza psicologica insufficiente tra nomi di variabili simili e tra nomi di routine simili. Mentre costruisci il codice, scegli nomi con grandi differenze in modo da poter evitare il problema.
La mia firma del metodo ha un sacco di "Range" in corso, quindi sembra che possa essere un problema rispetto a questa distanza psicologica. Ora vedo molti sviluppatori fare quanto segue
public Range PadRange(Range myRange) {}
Personalmente ho un forte disgusto per questa convenzione. L'aggiunta di un prefisso "mio" ai nomi delle variabili non fornisce alcun contesto aggiuntivo.
Vedo anche quanto segue
public Range PadRange(Range rangeToPad) {}
Mi piace meglio del prefisso "mio", ma nel complesso non mi interessa ancora. Mi sembra troppo prolisso e legge goffamente come un nome variabile. Per me, è chiaro che l'intervallo sarà riempito a causa del nome del metodo.
Quindi, con tutto ciò esposto, il mio istinto è di andare con la prima firma. Per me è pulito. Non è necessario forzare il contesto quando non è necessario. Ma sto facendo di me stesso o dei futuri sviluppatori un disservizio con questa convenzione? Sto violando una buona pratica?
Range r
(almeno per un corpo di metodo breve) e Range toPad
.
Range range
va bene.