There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.Martin Fowler
Some general advice on naming things (Avoid ambiguity; Make it easy to pronounce, to type, and to remember; Consider the translations; Check it isn't a reserved keyword in the usual programming languages; Abbreviations; Stick with a single name)
Some advice and various categories of naming schemes (“A good naming scheme is scalable, unique, and easy to remember.”) suitable for networked servers, wireless access points, projects, products, variables, streets, pets, kids, or any other project where unique, memorable names are required.
Some Falsehoods Programmers Believe About Names. (“I have never seen a computer system which handles names properly and doubt one exists, anywhere. So, as a public service, I’m going to list assumptions your systems probably make about names. All of these assumptions are wrong.”)
automated → the naming game