Debugging… One of the most terrible and painful thing for developers and no matter what every developer has to go through this phase while working on a project. You start working on a project with full enthusiasm. You wrote thousands of lines of clean code in your development environment, everything works fine there but when you try to take the whole project in the production environment it doesn’t work or it doesn’t behave in a way you want it to behave. A lot of developers might have face this issue in their careers and it becomes more frustrating for them when they have to clean up the mess created by others.
Debugging is all about figure out the source of a problem than identifying it’s causes, testing your hypothesis and trying every possible solution to eliminate the cause behind it’s unexpected behaviour. Every developer spends a lot of time debugging the code, sometimes more than a week or more than writing the code and it drains the enthusiasm of developers. So what’s the solution to reduce the time of debugging the code? How to minimize the occurrence of bugs? Let’s discuss that in detail.
1. Run Your Code More Often: This one is the most important advice, especially for the beginners. A lot of beginners do this mistake and they run their code first time after writing a bunch of code in a file. Please avoid this mistake else you will become more confused checking your own code and you will waste your time finding little errors in your code. When you run your code every time and test it, you get the feedback and you check that whether you are going in the right direction or not.
2. Use Print Statement Effectively: One of the simplest and favorite tool for every programmer especially for beginners to debug the code. Most of the debugging issues can be solved by inserting the print statements in your code. Print the variable and check your console that if the value stored in it is correct or not. Print the array, object, variables wherever you get a sense to inspect your data values.
3. Google, Google, and Google: Yes…we can’t deny that Google has solutions for most of our problems and this one is the easiest advice, especially for beginners. You might encounter a problem when you don’t understand the error message on your screen for the code you have written. The simplest thing you can do is to copy the error message and google it. Once you will try to search it there is a big chance that you get your answer on StackOverflow (the largest community for developers) or on other forums or community (fewer chances to switch from StackOverflow).
4. Try Alternate Solution: Try different solutions when you don’t understand the cause and don’t know how to fix the problem. If still, it’s not working try another one. Possibilities are also that you get the solution but you encounter a new error. Don’t be panic in this case and accept that every developer has to go through this phase. If you are a junior developer or a beginner you should definitely try alternate solutions to get into the root cause of the problem before asking for help from senior developers or from someone else. If you won’t try the alternate solutions and ask for help directly the first question they will throw at yourself “Did you try a different solution?“. So make sure that you don’t need to come back to your seat again and try a different solution after asking for help.
5. Use Comments Effectively: In any language comments are not just to leave a note in the code or to explain the code. You can also use it smartly to debug your code. A lot of beginners don’t understand how to use comments effectively to debug the code. You can temporarily comment out a piece of code that you don’t need to run at that time and you can check another piece of code to identify which one is causing the problem. It becomes easy to check the remainder code and identify the mistake. A lot of beginners remove the code to check the error instead of commenting it out, please don’t do that and make a practice to comment out the code.
6. Reproduce the Bug: Many times it happens that when you upload your website in a production environment (Godaddy, Heroku, etc) it doesn’t work. It works fine in your local environment but you get the issue in a production environment and the reason might be a change in an environment variable or few things like API keys which you store directly in your local environment, you do the same thing in your production environment which you aren’t supposed to do there for security reasons.
To resolve this kind of problem the best solution is to reproduce the same bug in your local environment but make sure that you don’t play with your code in the production environment because it can take time to communicate with the server.
7. Use Binary Search: Finding a complex error in a buggy file is really difficult especially when it has thousands of lines of code. In those cases, you need to check more and more places and to avoid this case the best thing you can do is to apply binary search. In this process, you need to cut the whole bunch of code into two parts. Comment out one part and run another part. Whatever part is responsible for the error, repeat the same process with that part and keep repeating it until or unless you don’t find the exact lines of code which causes an error.
8. Use Debugging Tools: There are so many IDEs and environment available in the market with debugging tools, for example, visual studio code, eclipse where you can write your code and you can use it to find out the error also most of the languages have many debuggers as well with different features like graphical interfaces, breakpoint settings. These tools stop the execution and inspect data values line by line all you just have to do is to set a breakpoint.
9. Automated Tests: This technique is used in a lot of companies to detect the error. Automated tests and some other unit tests are performed to check if the actual output is matched with expected output or not and this is done by using some tool or writing some test scripts where we execute the software with specific input. If you are making any hypothesis or assumption write a unit test(checking the functionality of a single function or class) and check the outcome. Writing these test cases are traversing your code and checking their behavior which helps in finding the error.
10. Discuss and Ask for Help: If you have tried everything to find out the bug and to resolve it but nothing is working then it might be a complex issue like Race Condition and in such kind of scenarios, you need to ask someone for help. Explain everything about the issue, your assumption, solutions that you have tried, show the code that’s giving an error. Pairing up with someone else or if you ask for the help you might get a solution or you might have to consider some other scenarios which you haven’t considered before can resolve your issues.
- Always fix one problem at a time. You may find another error while solving one problem but don’t mess up with another piece of code. Always pick a single problem, solve that and then pick another one to solve that else you will be confused or this may become a nightmare to handle.
- Read your code carefully sometimes it can be a very small mistake like semicolon or comma or brackets. If you are a beginner and learning the code chancer are higher that your code is not exactly the same as the teacher is trying to teach you so read your code carefully every time.
- If you are using any kind of framework, in that case, keep yourself updated with your framework. Companies make regular changes in those frameworks so keep yourself updated with that.
- Take a break and walk away from your system to reset your mind if you start losing your patience or you are exhausted. Do some other activity for some time. Listen to music or drink a glass of water or give proper rest to your eyes. You may come up with another approach to debug your code or starting everything all over again after a short break can be helpful to resolve the issue.