Abstract: There are three rules I found extremely useful while naming a thing. For example, a variable, a package or a project. This is really the concentration of my three years experience, now I'm willing to share this with you.
- Make it short. Most people can't short memorize more than three words. Making it short to let other's life earlier.
- Every word must be precisely reflecting the action. You must dig into the origin of the language and make a perfect suit for your case, not only current, but also the future. This can be hard. For example, when you name something "service", think about why it can't be called "tool".
- Don't struggle too much in the beginning. Just do the job, this happens because as your development iterates deeper, the old name probably bears more meanings, then you have to change it anyways. Alert: changing names depends on how big the impact is and how likely you will be yielded from you teammates. If it is too hard to do, just leave it there and make it correct at the next time (this is so called the experience).
Inaccurate names usually cause a lot confusions in the end. Name = the driver of signals, good name coverages the actions; bad name diverges the goals.
Hope this is useful for you, it takes time to practice.