Part of my Why is simple hard? series.
Like most people with taste, I despise Hungarian notation. But, at the end of the day it really is only a style issue and easy enough to fix with a search & replace.
There is one form of prefix notation that I do like, the prefixes
m_ for member variables,
s_ for static variables and
g_ for any global variables.
Globals!?! g_logger or g_app are reasonable globals, there are only a handful of others.
So what's good notation and naming?
There are only two hard things in Computer Science: cache invalidation and naming things.
Well the name should give a good hint to what is and what it's for. As an example, any function that I write that returns a bool starts with a boolean type word, like “is”, “has”, “can”, etc. Having said that, these prefixes are usually redundant.
bool IsConnected(); // or just Connected() bool HasListeningPort(); // or just Listening() bool CanYouSeeAPatternHere(); // or just true
Which brings up an important point, C++ has
false keywords. Use them! Don't use BOOL, TRUE, FALSE. I know that most Windows API calls use the ugly caps versions but that doesn't mean that new code that you write has too.