2009-02-26 11 views

risposta

10

Alcune preoccupazioni:

  • perché hai variabili pubbliche?

  • Gli identificatori che iniziano con _ e __ sono riservati alle librerie di sistema. In pratica questo non importa molto spesso, ma è bello essere consapevoli.

Con queste cose dette, non c'è niente di sbagliato con la creazione di una convenzione di denominazione, a prescindere da come appare. Basta essere coerenti.

+1

+1 per il consiglio di coerenza. Si potrebbe avere la peggiore convenzione di denominazione di sempre, ma se è coerente, migliorerà la manutenibilità del codice. – Spidey

0

Supponendo che si stia lavorando con C++, la mia risposta è NO. È perfettamente ragionevole, ma dovresti davvero attenersi a quella convenzione.

Tuttavia, linguaggi tipizzati staticamente come C# presuppongono che tali convenzioni di denominazione siano alquanto ridondanti.

Personalmente penso che sia brutto, ma non è chiaro da dove viene una variabile in C++ come tale potrebbe aiutare lo zuccheraggio.

2

Ognuno ha le sue preferenze personali per quanto riguarda le convenzioni di denominazione. Direi che più persone sarebbero d'accordo nel non avere variabili pubbliche in una classe.

5

Lo stesso vale per C++ e Java: non è necessaria alcuna notazione ungherese né alcun prefisso/suffisso. Hai una parola chiave "questo"!

class MyClass { 
    private: 
     int value; 

    public: 
     MyClass(int value) { 
      this->value = value; 
     } 
} 

Naturalmente, in questo semplice esempio si può (dovrebbe!) Usa la lista di inizializzazione del costruttore;)

Così, invece di usare le eventuali osservazioni scomode solo utilizzano le possibilità del linguaggio. Quando conosci il nome della tua variabile membro, sai che è perfetto. Perché lo offuscerai con "_"?

Per quanto riguarda l'utilizzo degli stessi nomi per i membri pubblici e privati: questo pensiero assolutamente sbagliato! Perché uno dovrebbe avere due cose per rappresentare lo stesso nella stessa classe? Rendilo privato, chiamalo alla perfezione e rendi pubblici getter e setter.

+0

"questo" è un puntatore in C++. –

+0

Giusto. Correggerà! –

2

Non utilizzare nomi che iniziano con un carattere di sottolineatura o contengono un trattino di sottolineatura doppio. Quei nomi sono riservati per il compilatore e l'implementazione. Oltre a questa restrizione, puoi utilizzare qualsiasi convenzione di denominazione che tu e il tuo team piaccia. Personalmente, odio qualsiasi forma di notazione "ungherese" e non mi piace neanche la notazione m_something. Mi infastidisce davvero il fatto che se ho bisogno di cambiare il tipo di una variabile ho bisogno di andare ad aggiornare il suo nome ovunque si trovi. Questo è un mal di testa di manutenzione.

0

Ci sono molte convenzioni in C++. La chiave è trovarne una e/o adattarla. Rimanere con esso ed essere coerenti. Se lavori da qualche parte, prova ad abbattere il maggior numero di convenzioni stabilite. Ce ne sono tanti là fuori, e ognuno ha buoni argomenti, ma possono contraddirsi l'un l'altro (Joint Strike Fighter, Bell Labs, Mozilla, e così via)

Se ci sono diverse convenzioni tra le diverse parti del progetto , almeno rendere ogni file coerente all'interno di sé e i file .cpp e .h devono essere coerenti tra loro.

Trovo meglio essere in grado di capire il codice scritto da diverse convenzioni in modo che si può facilmente adattarsi ad un nuovo ambiente di lavoro più veloce

Problemi correlati