Coding conventions vs Programming style

Xin cho mình được hỏi Coding conventions là gì? Programming style là gì? Chúng khác nhau như thế nào? Trước giờ mình toàn lẫn lộn hai cái này

2 Likes

Câu hỏi hay, theo quan niệm trước giờ của mình là thế này (mình chưa đọc định nghĩa hàn lâm của nó nên không biết có đủ chưa)

Coding Convention bao hàm Programming Style. Tuy nhiên nhiều người hay nhóm vẫn sử dụng hai khái niệm này qua loại một cách linh hoạt, nói chung là không strictly lắm.

Programming Style, nhiều người cũng gọi là Coding Style thường là về mặt trình bày và tổ chức code của bạn. Ví dụ nhiều style bắt bạn phải viết thế này:

if ((x>=1) && (y<=0))

thay vì thế này

if (x>=1 && y <=0)

Coding Convention, nhiều người lại gọi là Coding Rule không chỉ quy định về mặt hình thức như Programming Style mà còn về mặt thực thi của code. Chẳng hạn nhiều Coding Rule qui định bạn không được viết thế này:

if (x>0) {
 ...
 }
else if (y<0) {
 ... 
}
...

mà phải thế này (luôn phải có else) để tránh bug:

if (x>0) {
 ...
 }
else if (y<0) {
 ... 
}
else {
 //do nothing
}

...

Nên tham khảo nhiều Coding Rule của các hãng lớn để biết code thế nào cho ra đồng tiền bát gạo. Ví dụ đây là rule của Google https://google.github.io/styleguide/cppguide.html

5 Likes

Coding Convention là cái chung . Còn PS là cái riêng . :smile: Covention là
các qui tắc chung khi làm việc trong 1 dự
án. Style là tùy mỗi người

1 Like

cảm ơn bạn nhiều :smiley: :smiley:

Mình khuyến khích mọi người nên đọc và làm theo (có chắt lọc) các coding convention của 1 vài hãng lớn. Thú thực nhiều lúc review code hoặc fix code (các dự án legacy mà điên hết cả đầu).

Ví dụ với js thì theo bnb: https://github.com/airbnb/javascript
Với AngularJS: https://angular.io/docs/ts/latest/guide/style-guide.html
Với React: …

Coding convention không phải chỉ có Coding Style mà còn cả Scaff Folding, Automation Tool.

3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?