It's a common practice to use short common prefixes on class names to indicate something about where the class belongs. These prefixes are often two letter or three letter acronyms. In environments where there are no namespaces, it's important to use these as a simple namespacing mechanism to avoid naming clashes between different components. With namespaces, there's much less need for them. The problem I have with common prefixes is that they make changes difficult in the future. If you ever decide to push the class up from one component to another, you should really change the class name and it's hard to change the class name everywhere, especially if those class names are reflected in the database. I'm less concerned if those acronyms are common terms in the domain and represent what the object does rather than where it belongs. My tendency these days is to avoid class name prefixes and use namespaces instead. They are easier to read and remember and tend to be more accurate.
Download