We asked students to solve a simple problem.
We asked them to write a program which calculates the final price of product items in a shopping cart, when the initial price of each item, the category in which each item falls, their quantity and the GST (goods & services tax) slab applicable to each category was given.
Going through the code for some of the students led me to write this post.
Please read the code below:
Were you able to understand the code? After a few minutes of repeated reading, you could.
It’s difficult to know the meaning of the variables like CGR, iCat, iName, iQnt, cPercentage, fPrice and so on?
It creates a complicated mapping in your brain. You need to scroll up and down to understand the intention of everything, isn’t it?
Now let’s see the same code after giving little better names.
Do you see how simple it becomes as soon as you write meaningful names?itemName, itemQuantity, ratePerUnitItem, gstPercentageForItem, finalPrice and so on. Now the variables are conveying their intent, better than the first snippet? (I agree I could use a better data structure or use LINQ. However, I am simulating what students had written. They used different programming languages too. This code is for demo purpose.)
Now, you don’t need to scroll up and down to understand the intention of the variables. This is an impact of giving meaningful names to variables.
Don’t use abbreviations for variable names
Hence, we should spend little more time on giving meaningful names to variables (same thing is applicable to the class, namespace, methods, and so on) so that when you or maintenance developer revisits your code to fix a bug or add a feature, she/he could do it very easily. It should be flawless. Avoid using abbreviations while giving names to variables throughout the project. It would be a nightmare to maintain such code.