I work on a lot of projects with different teams. Every project has its own conventions, including what to call arbitrary classes that don't lend themselves to obvious names.As a counter-example, it's usually pretty obvious what you should name your models (UserModel, AlbumModel, etc.). The same goes for repositories, installers, controllers and views.But inevitably there are classes that aren't as clear-cut. For example, I'm working on a project right now that has a ForumService that does the following:Connect to the forum database and start a forum sessionRetrieve forum posts and commentsCreate posts and commentsAt first, the name ForumService made sense. But then I read more about service-oriented programming and realized that many developers may consider a service to be something different entirely (like a web service). So now I'm considering whether I should call it ForumProvider or just Forum.The team I work with full-time likes to name classes like this Tasks (e.g. AuthenticationTasks, UserTasks). We also have a lot of Helpers (e.g. ViewHelpers) and Utilities (e.g. HtmlUtilities) for smaller classes. Some developers don't like these ambiguous names just because they're ambiguous.What do you normally use and why? Do most people generally prefer to avoid names like Helpers and Utilities, and is there a good reason?
What do you call classes that do arbitrary work in your project?
naming;coding standards;organization;naming standards