Qui http://source.android.com/source/code-style.html#follow-field-naming-conventions si precisa che:Le regole di denominazione dei campi private di Android sono ok?
nomi dei campi
- , i nomi non pubblici dei campi non statici iniziano con m.
- nomi dei campi statici iniziano con s.
- Altri campi iniziano con una lettera minuscola.
- campi finali statici pubblici (costanti) sono ALL_CAPS_WITH_UNDERSCORES.
Essa afferma inoltre che:
Le regole che seguono non sono linee guida o raccomandazioni, ma regole severe. Non è possibile ignorare le regole che elenchiamo qui di seguito tranne quelle approvate su una base di necessità di utilizzo.
Non mi piace la convenzione "m" prima dei campi privati o del pacchetto in una classe. Trovo davvero questo non ispirato ... Voglio dire, se proviamo ad applicare buoni progetti, l'accoppiamento basso delle classi implica avere pochi campi pubblici. in realtà, nei miei programmi di solito non ho campi pubblici, anche quando ne ho bisogno uso getter e setter ...
Quindi, perché dovrei essere forzato ad avere quasi tutti i miei campi nel programma con una "m" di fronte a loro? non sarebbe più facile avere i pochi campi pubblici, se ce ne sono, con qualche "g" di fronte o qualcosa del genere? o semplicemente usare setter e getter come suggeriscono i fagioli? questo rende il mio codice più difficile da leggere ....
Inoltre, seguendo queste linee guida, le variabili temporali locali utilizzate nei metodi non hanno restrizioni in modo che possano essere facilmente scambiate per campi globali pubblici (anche senza restrizioni). anche questo trovo che sia sbagliato, poiché è una probabile fonte di errori ... Capisco di avere un modo di differenziare dai campi, ma i campi membri privati / protetti sono i più usati in un'applicazione, non dovrebbero essere meno "leggibile".
Cosa ne pensi? Devo seguire le linee guida?
Uno dei motivi per cui prefissi come questi sono spesso obbligatori è quello di impedire di nascondere i campi membri. Ad esempio, si ha spesso un parametro per un metodo costruttore o setter che ha lo stesso nome del campo membro se non si hanno prefissi. In questi casi devi quindi accedere al campo membro usando "questo". di fronte ad esso ogni volta che è nascosto. I programmatori ogni tanto dimenticano il "questo", che porta a bug. Un prefisso sui campi pubblici non è così utile perché non è necessario un setter su un campo pubblico. –
in realtà preferisco il prefisso m_ sui campi privati perché rende più semplice leggere i metodi della classe. Queste convenzioni sono usate perché il codice è letto più del suo scritto ... Penso che questo sia nel codice Completo somwhere? ... –
sono d'accordo con te .. non mi piace la convenzione "m" e non lo uso volentieri – hendrix