This is a list of some common words that should have the same meaning throughout Zope. It is not exhaustive.
The term ‘id’ should only be used when we are talking about an identifier that is unique in the context of some particular id scheme. Examples include
We could consider the name of an object within a container to be an id within the id scheme of that container, but this is not a particularly useful way of thinking. One reason is that to identify the container, we need to consider it as having an id within the id scheme of its container.
Id schemes should really be well-known points of reference within a system. So, the model of Services in Zope 3 fits; you look up a service by its id within the service manager id scheme.
We use an object’s name to get it from within a container. The container sees these names as ‘keys’, so from a container’s point of view, a name functions as a key to look up an object.
When we use the term ‘key’, we really mean “a name functioning as a key in the context of a container”.
Generally, the word ‘manager’ is inappropriate for objects that don’t perform through-the-web configuration. For example, global “service services” are not configurable through the web, but they were once called “service managers”, and have now been renamed, since the name caused confusion with through-the-web configurable service managers.
Martin Fowler, “Analysis Patterns: reusable object models”, Addison Wesley 1997. Chapter 5 “Referring to Objects” has a good discussion of names, ids and id schemes.