As defined in wikipedia, coding standards are “a set of guidelines for a specific programming language that recommend programming style, practices, and methods for each aspect of a program written in that language.” I see coding standards mainly not for your own benefit but as a benefit for others who may read your code. This would be very useful for a group project or a team environment where everyone will be working on each other’s code or where code reviews are a part of the developmental process.
If you were coding on a project by yourself I could see the argument where coding standards are not as important to implement. If you have a pattern of writing in a certain style and don’t plan on sharing that code with others, why should you have to follow a coding standard such as AirBnB standards? For big projects this is rarely the case as you would more than likely be working with a team. Such coding standards would then be implemented company wide. The goal of this standard is to improve efficiency and workflow between developers. Using a linter such as eslint helps developers adhere to a specific standard. This is very helpful in keeping the standard in check but also can aggravate the developer if he is already naturally inclined to write in a way opposed to the standard guidelines.
This week in our ICS 314 class, we started to use the Intellij Idea IDE along with eslint to implement the AirBnB coding standards. The Intellij IDE is definitely a powerful tool for software development and has a lot of useful features. The latter benefit is also why I do not use it for my outside class projects. All the useful features and options that comes along with Intellij would, in majority, be never be used for the work I do. I’m personally a fan of Visual Studio Code which gives you your text editor and options to add on any additional functionality that you might need. Another reason why I would not go with a full fledged IDE like Intellij, is the fact that operations that can be achieved with the GUI interface hide the actual inner workings of doing those operations. This probably is not a problem for a well seasoned developer but for a new developer this leaves them without actually learning the manual process of doing some specific task. An example of this would be the VCS control you get in Intellij. Users would be able to push, commit, and pull with just a push of a button but do they know the actual commands issued in a terminal? Would they be able to solve issues if the IDE had any configuration errors?
I believe tools such as intellij provide developers a tool to quickly get work done but before you you use those tools make sure you understand them. I’ve seen multiple cases where a developer could not solve an issue because clicking on a button on an IDE was the only way they knew how to perform a task for their project.