If you profile offenders, you rely on hotspots in your hunt for criminals. However, while they are better than random guessing, they do not guarantee that you will find the offender. In code, hotspots can identify real problems, but you have to be prepared for false positives, too.
In this chapter, you’ll learn heuristics to pass quick judgments on your hotspots. The goal is to differentiate between hotspots that are the result of complex application logic and those that are based on configuration files. The distinction is important. Hotspots give us a narrow view of the system, but we may still have thousands of lines of code to inspect. Sorting out the hotspots that really matter saves time and effort.
The first heuristic we’ll discuss is naming. As you’ll see, good names helps you understand your design elements. Here we’ll use names as a heuristic on the quality of modules.