I can't agree with everything in the document either, but there is some good stuff in there.
Example: I used to be a stickler for my own version of hungarian notation - not weird "my own" just platform independant....
But with intellisense, and objects - I drop it because it tells me the data type, and the names are alphabetically listed - PLUS if I change the data type, I still find that "name" where it was before.
Now I still use my notation method... but only in areas where intellisense doesn't save the day....
My notation is basically....
s=string
sl=Large string (matters on database apps kinda - implementation specific... like maybe for strings >1024bytes... or 256 whatver...)
ss=Short String - again - usually only with database apps
sz=null terminated
a=array - So it looks vulgar with an array of short strings... LOL
i=integer - generic - platform specific
i1 = one byte int
i2 = two byte int
i4
i8 etc.
u1 - unsigned byte
u2
u4
u8 etc.
p_ = parameter like void MyFunction( int p_iMyParameter );
But... again... for stuff like a struct, a class etc... I make the members just the name only - without data type information... and I prefix things that are private usually with:
pvt_
ESPECIALLY because its FASTER to EXECUTE code that reads a variable versus calling a function... so sometimes I make private stuff public but I keep the pvt_ there so I know - HEY you have access to this BUT you better understand that class before you go mucking around with it.
??? What do I mean ???
int MyValue = MyClass->pvt_Value; //executes faster than
int MyValue = MyClass->Value_Get(); // Sweet... more overhead...stack involved.
--Jason