Uso migliore sul nome delle variabili

3

Ho un metodo che assomiglia a questo:

Public Function NormalizeStreetAddress(country As Namespace.Country,
                                       streetAddress As Namespace.StreetAddress) _
                                   As Namespace.StreetAddress

        Dim _streetAddress As New Namespace.StreetAddress = streetAddress

        If My.Settings.Streeteable = True Then
            Dim _AddressCustom As New Namespace.AddressCustom
            _streetAddress = _AddressCustom.NormalizeStreetAddress(country, streetAddress)
        End If
        Return _streetAddress
End Function

Ricevo un oggetto streetAddress, ma all'interno del metodo ho bisogno di usare un altro oggetto streetAddress che ho chiamato _streetAddress - è quello che segue lo standard? Un mio amico mi ha detto che nomi di oggetti come _yourNameObject sono per variabili globali, ma non riesco a trovare informazioni su questo e voglio rendere questo metodo più leggibile.

    
posta Luis 18.05.2012 - 22:57
fonte

2 risposte

7

I nomi delle variabili devono essere espliciti, cioè, quando possibile, il lettore deve sapere qual è la variabile semplicemente guardando il suo nome.

Se hai streetAddress e _streetAddress nello stesso codice, c'è un grosso problema. Poiché le due variabili si riferiscono a qualcosa di diverso, dovrebbero avere nomi diversi.

Mantenere entrambi i nomi non è solo confuso, ma estremamente soggetto a errori. Sareste in grado di fare immediatamente la differenza tra queste due variabili in sei mesi quando modificate del codice nel mezzo del metodo? Se digiti il nome sbagliato e il programma fallisce, sei in grado di vedere immediatamente nel debugger da dove arriva l'errore?

Che dire:

Public Function NormalizeStreetAddress(country As Namespace.Country,
                                       streetAddress As Namespace.StreetAddress) _
                                       As Namespace.StreetAddress

    If My.Settings.Streeteable = True Then
        Dim _AddressCustom As New Namespace.AddressCustom
        Return _AddressCustom.NormalizeStreetAddress(country, streetAddress)
    Else
        Return streetAddress
    End If
End Function
    
risposta data 18.05.2012 - 23:01
fonte
1

Questa è in gran parte opinione, l'unica cosa che mi interessa quando si tratta di nomi variabili è la coerenza. Vuoi avere un flusso dal tuo progetto che è continuato in tutte le sue sfaccettature.

Non vedo perché sarebbe importante il suo nome fintanto che non sta attivamente confondendo la sua funzione.

Inoltre, mi piacerebbe davvero che la gente assuma la notazione ungherese modificata.

Scherzi a parte, spesso le persone chiamano le loro variabili in questo modo

ESEMPIO DI VARIABILI NOMI VARIABILI:

int statistic;
float statistics;
string stats;

Cosa c'è di sbagliato in questo? Beh, mi sta dicendo che è una statistica, ma ho davvero bisogno di scavare nel codice per trovare tutte queste definizioni? Sarebbe una buona pratica farlo, ma è anche bello per un programmatore pensare in anticipo agli altri che leggono il suo codice.

Esempio di nomi di variabili validi:

int nStatistic; //n prefix for ints
float fStatistics; //f prefix for floats
string sStats; //s for strings

Naturalmente, qualunque cosa tu faccia, la cosa più importante è CONSISTENCY. Non voglio leggere il tuo codice e a metà strada hai deciso di iniziare a nominare le variabili dopo uno schema diverso.

    
risposta data 05.02.2014 - 19:03
fonte

Leggi altre domande sui tag