Magic strings and numbers
Using unnamed strings or numbers in a class is called magic strings and numbers.
The following code snippet explains this:
List<Opportunity> lstOpp = [SELECT Id, Name , StageName from Opportunity Where StageName = 'Under Verification'] ; //some awesome code
In the preceding code, we are trying to fetch all the opportunities in the Under Verfication
stage. In this code snippet, a string literal is directly used to compare the stage without any variables or configurations. There may be many other classes as well where developers could have used the same approach. In this example, it's the string; however, the same applies to numbers as well. Now assume that our company wants to rename the stage from Under Verification
to Pending Review
. Imagine the amount of work that needs to be done to perform the impact analysis and incorporate the changes. If we had used a constant variable or configuration, this situation could have been avoided.