Recently I've been looking at some of the VCL and VCL Form Designer code having to do with themeing where I've encountered variable names like UnthemedDesigner. As a result I find code like this:
if not UnthemedDesigner then
FHasManifest := True;
Result := FHasManifest;
// Do something else...
When variable names are carefully chosen it sure can make everyone's life a lot easier. But then I wouldn't have anything to blog about. So here is a quick list off the top of my head when naming something.
Singular noun consisting of a class, interface, record, variable, field, accessor method, exception. For example: TControl, TButton.
Plural noun consisting of a variable or field holding a collection. For example: Items, Classes.
Verbs consisting of methods. For example: Dispose, GetItems, Delete.
Adjectives consisting of interface and boolean. For example: IDisposable, cloneable, IsEnabled.
Names should not be negative. "Un", "Not", etc should be avoided for clarity.
I'm sure you've seen similar lists before. If you haven't then you should go buy and read the book Design Patterns: Elements of Reusable Object-Oriented Software.