Questa è una domanda vecchia, ma sto rispondendo per non essere d'accordo con la risposta accettata (e solo).
Sono stato un programmatore Java per circa quindici anni, e lo sto facendo professionalmente e intensamente per circa tre anni. Inizialmente ho resistito alla convenzione mMember
per tutti i motivi astratti comunemente citati. Ma più ho fissato il codice Java, più questa convenzione è cresciuta su di me. Ho iniziato a usarlo da solo pochi mesi fa.
Per prima cosa, è non completamente ridondante. Anche con l'evidenziazione della sintassi moderna, la convenzione rende più facile riconoscere immediatamente che un identificatore è un campo membro. Soprattutto a 3 A.M.
E molti degli argomenti contro la notazione ungherese sono in realtà argomenti contro la notazione ungherese Systems , in cui le verruche identificano il tipo della variabile. Questo è davvero ridondante in un linguaggio strongmente tipizzato come Java. Ma c'è un buon argomento da fare per Application ungherese, in cui le verruche codificano l'ambito e l'utilizzo. Su Google questi due termini verranno visualizzati diversi articoli.
Il tuo secondo punto è il più vicino alla verità. Direi che non è affatto una cattiva pratica, per le ragioni sopra esposte. Ma penso che possiamo lasciare da parte questo argomento e dire che dovresti farlo solo sulla base della convenzione. Le ragioni di questo sono sia pratiche che sociali.
La comunità Java ha convenzioni di denominazione molto forti. Diventano radicati al punto in cui il codice che non li segue diventa difficile da leggere. Se non utilizzi la convenzione mMember
, puoi scommettere che un programmatore di manutenzione che viene dopo che ha intenzione di refactoring tutti i tuoi nomi di identificatore.
E l'aspetto sociale è che non rispettare le convenzioni di denominazione Java immediatamente ti segnala ai tuoi pari come non un vero programmatore Java . "Fai attenzione a questo ragazzo, probabilmente non sa nemmeno che cos'è un modello di memoria." (E di solito hanno ragione ...)