Devo rifattare le variabili a lettera singola per costrutti come i nomi di puntatore / struttura? [chiuso]

2

E no, non mi riferisco a singole variabili in loop o eccezioni. Diciamo i nomi pointer / struct in grandi programmi c, c ++. Esistono lingue in cui questo tipo di denominazione è accettabile o è la norma. O qualsiasi costrutto in c / c ++ (non iteratori, loop) dove è implicito.

qual è la pratica generale nella gestione di tali convenzioni di denominazione? lo cambieresti? se sì, come lo cambieresti?

Se sei un capo di un progetto di squadra e qualcuno solleva un problema relativo alla convenzione di denominazione, come lo vedresti?

    
posta Aditya P 19.05.2012 - 15:43
fonte

7 risposte

7

Assolutamente vorrei cambiarli.

Come sapere se interrompe qualsiasi funzionalità esistente?

Esegui la tua suite di test dopo la modifica.

Ahh, nessuna suite di test. ok in questo caso aggiungi questo motivo alla lista sul big board dal titolo "perché abbiamo bisogno di test". Non cambiare nulla, è probabile che si rompa roba (e nel processo possibile perdere la possibilità di convincere la gente che le cose dovrebbero essere cambiate). È come indossare una cintura di sicurezza. Non devi ... ma non consiglierei di guidare senza ... qualcosa potrebbe rompersi;)

    
risposta data 19.05.2012 - 16:56
fonte
5

Innanzitutto, QUALSIASI rischio di modifica del codice che introduce nuovi errori, e quindi il vantaggio del cambiamento deve essere valutato rispetto al costo di effettuare la modifica. Questo potrebbe addirittura essere vivamente vietato dal tuo superiore per il software di produzione, se il modulo in questione ha funzionato correttamente per anni o addirittura decenni.

Sono d'accordo sul fatto che gli identificatori di un singolo carattere possono richiedere più sforzo per capire, ma è abbastanza abbastanza difficile da giustificare il cambiamento?

Detto questo, il refactoring è un buon modo per rinominare le variabili in qualcosa di più significativo. Gli IDE più moderni possono farlo per te. Assicurati che il nuovo nome sia conforme alle tue convenzioni locali, in modo che il prossimo manutentore non debba ripetere i tuoi sforzi.

    
risposta data 19.05.2012 - 16:24
fonte
3

Se il nome di una variabile è un problema, o perché non è sufficientemente descrittivo, confuso, o per qualche altro motivo, allora cambiala . È così semplice. Molti IDE forniscono strumenti di refactoring che rendono tali operazioni di ridenominazione un'operazione di 10 secondi. Se il tuo non lo fa, potresti dover trascorrere un po 'di tempo con un'operazione globale di ricerca e sostituzione.

    
risposta data 19.05.2012 - 15:53
fonte
3

Nella mia carriera ho scoperto che coccolare i sentimenti delle persone è molto più importante del codice corretto. Qualche yahoo potrebbe scrivere la merda più fottuta immaginabile, usando nomi di personaggi singoli come "m" per la mappa o "c" per ... ??

Suggerire che questo dovrebbe essere cambiato può ferire i sentimenti e creare molti drammi sul posto di lavoro. Se sei più saggio di me, ti avvicinerai a queste situazioni attentamente in modo che i tuoi capi non inizino a odiarti. Scrivere un codice del genere è davvero stupido e alla gente non piace che venga fatto notare che stanno facendo cose stupide. Potresti dover imparare a lavorare su merda.

Quindi no, non cambiarlo necessariamente. Metti fuori tastatori prima, ecc ... Nel posto in cui lavoro attualmente ho suggerito di cambiare un codice che ha preso gli indici come array di parametri globali, preso il valore in quell'indice e lavorato su quel valore per prendere il valore per riferimento e quindi essere indipendente dalle cazzate globali ... Sono stato odiato dall'architetto principale del progetto da allora e mi è costato un sacco di tempo.

Ovviamente lavori in un ambiente in cui il merdoso codice è stato permesso di insidiare. Le persone che lo hanno scritto potrebbero essere ancora in giro e in posizioni elevate. Possono diventare davvero odiosi anche nel suggerimento che ciò che stanno facendo non è definito perfezione.

    
risposta data 20.05.2012 - 00:44
fonte
1

I nomi delle variabili dovrebbero essere espressivi. Tu o chiunque altro del tuo team dovrebbe essere in grado di capire da cosa viene utilizzata la variabile dal suo nome. Se un altro sviluppatore del tuo team guarda il tuo codice e ti chiede a cosa serve questa variabile, è una buona indicazione che dovresti cambiare il suo nome.

Da ciò segue che i nomi di una sola lettera sono generalmente una cattiva idea, a meno che non sia qualcosa di ovvio come

struct Point
{
  int x, y;
};

o

struct Pixel
{
  uint8 R, G, B;
};

Ricorda che passi molto più tempo a leggere il codice che a scriverlo, quindi salvare le sequenze di tasti non dovrebbe essere la tua priorità. Questo è particolarmente vero con i moderni IDE, che completano automaticamente i nomi per te.

E IMHO, rendere più comprensibile un nome variabile è un'ottima ragione per cambiare codice. E hai assolutamente bisogno di una buona suite di test unitari automatizzati per essere in grado di refactoring senza paura. Vedi "Clean Code" di Robert C. Martin per i dettagli.

    
risposta data 19.05.2012 - 21:12
fonte
1

Questa opinione sarà impopolare, ma

  1. Si prega di conservare i nomi delle variabili a lettera singola. Sono necessarie. For-loops non dovrebbe mai avere nient'altro per le variabili di indice.
  2. Se i nomi delle classi sono nomi a una sola lettera, potrebbe essere necessario riconsiderarli.
  3. Usa la lunghezza dell'identificatore come documentazione di quanto comunemente si possa trovare la variabile dal codice. Se è comune, ha bisogno di un nome breve. Se è raro, ha bisogno di un nome più lungo.
  4. Il nome breve può essere molto più descrittivo del nome lungo. Pensa alla matematica. È necessaria una grande quantità di precisione in matematica, ma usano sempre nomi a lettere singole per tutto. La descrizione di ciò che ogni variabile o costante sta facendo non aiuta affatto quando la matematica è applicabile in molte situazioni - è un segno di astrazione quando puoi generalizzarlo. Il nome breve è più generico del nome lungo.
risposta data 20.05.2012 - 18:22
fonte
1

Le linee guida sullo stile di programmazione possono essere utili per il programmatore, il team e il pubblico più ampio del tuo codice.

Ci sono molti là fuori, dare un'occhiata e magari adottarne uno o modificarlo in base alle proprie esigenze?

es.

link

link

    
risposta data 27.05.2012 - 01:29
fonte