"Navigating the Coding Minefield: Essential Mistakes Developers Must Dodge"
During my starting year in code, I have done many mistakes while coding. Here are some common developer mistakes that I have learned and which are the ones to be aware of:
Not Planning or Designing: Rushing into coding without proper planning and design can lead to confusion and messy code. Planning out the implementation is important before starting to develop the features. For example, seeing a DSA problem and jumping to solve it without even properly thinking about it can lead to extra time wastage. The best practice would be to first read the problem statement properly, write examples and see the hidden logic behind it. This would be much helpful in writing the logic of the problem.
Ignoring Best Practices: Ignoring coding standards, best practices and design principles can result in code that is difficult to maintain, understand, and collaborate. It is especially important to attend internal workshops or sessions regarding best practices followed while coding at your workplace. You must perform proper input validations, and checks to improve your code security. Following coding standards helps in improving code maintainability, fewer bugs, and dead codes, improving efficiency and code can be scaled much more effectively.
Poor Naming Conventions: Choosing unclear or inconsistent variables, functions, and class names can make code hard to understand. Descriptive and meaningful names improve code readability and maintainability. This is especially a good thing to follow when multiple developers are working on a project at the same time and have some code dependency. Therefore it is very important to choose proper function names, class names and other variables to effectively convey their meaning as well as to serve their requirement.
Ignoring testing: It is also important to consider testing all possible scenarios and doing a proper analysis of the implemented code and checking if it impacts the existing functionality. Neglecting testing such as a unit, integration, or user acceptance testing, can lead to software with hidden bugs and vulnerabilities. Comprehensive testing helps identify issues early and ensures the software behaves as expected. It is important to perform manual testing, or writing regression test cases, SAST or DAST scans or perform load testing basis on your development requirements.
Ignoring error handling: It is important to see if you have implemented conditions to prevent errors and implement proper error handling. Failing to implement proper error handling can lead to unexpected crashes or failures in the application. For example, when your application is expecting a resultset from the database to display on your application screen but due to some SQL exception, the resultset might not get generated, it is important to catch this SQLException as well as log it for monitoring purposes.
Copying and Pasting Code: Blindly copying and pasting code without understanding it can introduce bugs and security vulnerabilities. It is recommended not to blindly use such code as it can compromise the security of your application. Also using online code snippets might not properly align with your project goals. Therefore we must modify the code to suit our coding standards and requirements, check its security and perform a thorough testing to identify any potential risks or vulnerabilities.
Lack of Version Control: Version control tools such as git are very important from a developer's perspective. It is important to check for files in your staging area and check them before making commits which helps you to visualise the intended changes. It is especially very important when there are major code changes and updating the files manually might lead to time wastage. When developing a new feature you must make a separate branch from the QA. Version control helps us to track changes, revert mistakes, and collaborate effectively.
Hardcoding Values: It is generally not advisable to hardcode values as this limits our ability to modify them at a later point in time in case the same value is used at multiple places. For such scenarios, it is better to keep a class file intended only for constants, or variables which can change in the future course of time. Also, saving at your database end or in configuration files helps centralize such values and makes updates easier and preventing the unnecessary steps of going through the entire code review cycle again.
Documentation/Commenting: Lack of proper comments in your code makes it very difficult to identify any issues or modifications to it. Comments are therefore very important as it helps you in future time or any other developer who might be reading your code.
Code review and feedback: It is crucial to have your code reviewed by other developers before merging them into your QA. Skipping code reviews can lead to missed bugs, exceptions, unwanted application crashes or also limit code optimizations. Code reviews increase your knowledge as well as help you become better at your job. It also helps in improving code quality.
Remember that making mistakes is a natural part of the learning and coding process. The key is to acknowledge and learn from these mistakes in order to become a better developer over time.