# Style code VNOI Wiki
Hi mọi người. Cảm ơn mọi người đã viết bài cho VNOI Wiki. Như mọi người đã biết, vì code của mọi người sẽ được rất nhiều bạn đọc và code theo, vì vậy việc mọi người code chuẩn mực là rất quan trọng. Các bạn trước khi submit bài viết cần kiểm tra xem code mình đã tick vào tất cả các mục chưa nhé! **(Mọi thắc mắc về style code các bạn hãy hỏi trực tiếp lead)**
- [ ] Style các code trong bài nên thống nhất, ví dụ như sau:
* Style đặt tên biến. Vd: Mảng cạnh luôn gọi là `a` hoặc `g`
* Dùng `cin cout` hay `scanf printf`
* Include `bits/stdc++.h` hay include từng thư viện
- [ ] Code không nên sử dụng `define`, `typedef`, `pair` hay `array`. Trong trường hợp cần nhóm nhiều biến lại thì nên dùng `struct` (trừ một số trường hợp đặc biệt)
- [ ] Các hằng số như N, mod nên được viết bằng dạng `const int N =` thay vì define. Ngoài ra, các số được sử dụng lại nhiều lần trong bài (ví dụ như mảng 100000 phần tử) nên được gán là một hằng số
- [ ] Quy tắc đặt tên:
- tên hàm & biến nên là tiếng Anh
* tên biến và tên hàm là camelCase (viết hoa đầu mỗi từ, không bao gồm từ đầu tiên)
* tên class & struct là CamelCase (viết hoa đầu mỗi từ, bao gồm từ đầu tiên)
* tên các hàm nên có nghĩa, và nghĩa này nên thể hiện một phần hàm này định làm gì
- [ ] Khi compile các bạn nên bật chỉ lệnh "-Wshadow" và đảm bảo không có warning nào. Nói cách khác, các bạn không nên có 1 biến trùng tên trong scope của 1 biến khác. Ví dụ:
```cpp
for (int i=1; i<=n; i++) {
for (int j=1; j<=n; j++) {
int i = j * 2;
}
}
```
- [ ] **Code cần có comments cho những đoạn mà người đọc có thể sẽ thấy khó hiểu**