Skip to main content

Coding Standard

 

Starting...

This lab is to help our codes to standardize automatically. As you have experienced a lot, group coding is very difficult to be unified in one specific style. In this lab, we will explore how to make one style code with very efficient or effective libraries, prettier and lint for node js.

Progressing...

Prettier, link, is great for matching our coding style especially indent with tab or space, how many line and so on. The first step I took is to install prettier and put simple scripts in package.json,  "prettier-fix": "prettier --write \"./**/*.{md,js,json}\"", "prettier": "prettier --check \"./**/*.{md,js,json}\"". I just run the script and I realized that there were a lot of prettier issues like indent, different ending style, tab, space and so on. Luckily, these scripts were very helpful since it provided auto editing features as well so I did not have to modify following the rules manually. 

Eslint, link, is also great tool for more small mistakes of developers. It is more complicated to install since there are many plugin to adopt. For example, I chose airbnb's rules for it, https://github.com/airbnb/javascript. To be honest, I don't like it for a small project, but I believe for a big one, it will be very helpful because there are so many restrictions like below. I had to add a lot of exceptions into eslintrc.js and in real development world, I should not.

I think it is more powerful than prettier. Because of it, I could modify small mistakes like useless escape, strong equal and so on and it didn't provide auto-modification feature since the error is more complicated so I spent a lot of time for it.

VSCode, one of famous IDE, also provides Prettier - Code formatter nad Eslint as extensions. Once I install them, they also provide a guide to set up eslint and prettier. So, I set up the configs in .vscode folder.

Finally, I set the pre-hook for commit since any developer can forget to run the prettier or eslint script. For this feature, I install husky and lint-staged.

Concluding...

You maybe have experienced that it was very difficult to handle with other programmers' coding style and at least one person had to handle with all of different coding style before submission of team project. Now, I have learned from this lab about how to set up coding standard, which is great for team projects. So, everybody is happy. 

Comments

Popular posts from this blog

Experience about a contribution to fix a bug or issue

  Starting... I have been very exciting to review other classmates' repository before I will jump into a real open source project. From this lab, I have learned how to do forking and cloning other projects and create a new branch for a new issue or a new feature. It is very hard to wait for the owner's answer but it also can be a special experience  Reading... In my experience, finding an issue and improvement is not easy especially for other's task and really careful to touch it since it should be very sensitive. For this reason, my first step for this lab, I tried to create an issue with a nice comment. During the time for waiting for reply, I did forking and cloning the repository and started to review a code to find out what I can contribute. Finally, I figured out some part I can improve so I added comment for it,  Issue 5 I suggested three things. First of all, the number of counter is always the last number so I wanted to fix it. Second, I wanted to add an another ...

Working with telescope

   Starting... This lab is to help students to communicate with a big project, telescope, and understanding how to handle with the set it up. There were a lot of trouble since many of technologies are new for me such as docker, docker-compose, elastic search ladis, pino, and so on. Let's jump in the big project . Progressing... The first step I took is to install wsl 2. It is not very difficult since microsoft provides good instruction, link . Although the telescope provides very good instruction,   here , It was not really easy for me to get a concept and set it up successfully. Therefore, I needed to ask a lot of questions on slack, telescope channel. Some helped me a lot and explained so much and finally I got it work successfully.  After my server was working locally, I didn't have any issue to get the response from the url, http://localhost:3000/posts.  To communicate with the local server, actually I needed to change my code a lot since I wanted to sp...

Start new journey for oauth2

  Release 0.4 For the release 4, I decided to contribute the issue that I failed to contribute since the owner changed language. This is my final goal for this course so I don't want to cotribute just one line code or edit a document. Fortunately, there was an issue when I visited the repository again so I added a comment again to get the issue. The issue is about adding more oauth2 feature, which is new for me even I have not been touched oauth2 on my academic projects at all. So, It will be fun and I am looking forward to what I will face from this issue.