# Thuật thức hơi thở của Review Code

### Tầng thứ nhất: Tự động hóa

#### Hơi thở thứ nhất: Phong cách code

* Kiểu định dạng dự án có được áp dụng không?
* Mã có đạt thỏa thuận quy ước đặt tên biến?
* Mã có đạt tiêu chuẩn DRY?
* Mã có dễ đọc không?
* Mã có sạch sẽ không?
* Mã có comment giải thích tường minh không?

#### Hơi thở thứ hai: Kiểm thử

* Đã vượt qua tất cả testcase chưa?
* Tính năng mới đã được kiểm thử chưa?
* Các corner case có được thử nghiệm không?
* Nó có sử dụng unit test ở tất cả mọi nơi trong dự án án không?
* Tính năng đã được kiểm thử hiệu năng chưa?

#### Tầng thứ hai: Tập trung đánh giá ảnh hưởng

* Hơi thở thứ ba: Documentation
* Tính năng mới đã được cập nhật vào tài liệu README, CHANGELOG, API chưa?
* Tài liệu đã được phê duyệt đạt tiêu chuẩn chưa?

#### Hơi thở thứ tư: Ngữ cảnh thực hiện

* Có đáp ứng yêu cầu ban đầu không?
* Có đúng về mặt logic không?
* Có phức tạp không cần thiết không?
* Có đạt hiệu xuất tối đa không?
* Có bảo mật không? (VD: SQL injection)
* Có dễ quan sát không? (VD: Logging, metrics, tracing,...)

#### Hơi thở thứ năm: Ngữ cảnh API

* API có dễ dàng scale up hoặc scale down không?
* API có độc lập không phụ thuộc lẫn nhau không?
* API có theo nguyên tắc phát triển không?
* API mới nhìn chung có hữu ích và không quá cụ thể không?
