- Version Control
Git / Mercurial / Subversion— has been an integral part of programmers life. No matter which programming language you choose, version control is essential to be in your programming vocabulary. It helps manage your code, share among your peers, and also maintain your coding history. I still remember, when I was in university we used to pass zip files over email to make sure all my friends had same version I was working on. It used to get tedious and confusing with all the file name convention we used to have.
- Node JS
- Visual Studio Code (vscode)
- Web Pack
- Test Cases
- Editor Config
We all have that issue with formatting done by other developers over the course of project completion, day in day out. Some use one type of formatting, when they push their code, has issue with the formatting used by other developers and the things goes on. For issues like that, you can use .editorconfig standards to maintain formatting accross IDEs and developers.
Recently I was working with my team members, on a reactjs project. I asked one of my fellow developer to setup and work on initial test cases coverage while some of us worked on the feature that was due for the week. However, the very next day when I tried to run the tests my fellow colleague wrote, it did not run in my machine. There was a wired bug in my machine, but it worked perfectly fine in his computer. After a day of fixing the issue, I found that the version of NodeJS I was using was incompatible with the test package we were using. I tried several different ways, but the bug did not seem to go away. These kinds of development issues occurs immensely while developing. And is a waste of time, because you are fixing an issue that is not merely related to actual development of the product. For these scenarios, concept of Docker is essentials. Docker helps to setup same development and production environment across machines and developers. If it works in one machine, it will also work on every other machines as the same code is running in the same development environment.