> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cloudthinker.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Bảng xếp hạng

> Tìm hiểu công thức tính điểm của Bảng xếp hạng Lập trình viên — cân bằng giữa chất lượng code và năng suất.

Bảng xếp hạng chấm điểm từng lập trình viên dựa trên sự cân bằng giữa **Chất lượng** (điểm đánh giá AI) và **Tác động** (độ phức tạp của code), qua đó khen thưởng những kỹ sư viết code chắc chắn thay vì chỉ những người commit nhiều nhất. Truy cập tại **Code Review → Bảng xếp hạng** khi nhóm của bạn đã có một số PR được review.

<Frame>
  <img src="https://mintcdn.com/cloudthinker/ezLyBgfIZEMSknyR/images/code-review/leaderboard.png?fit=max&auto=format&n=ezLyBgfIZEMSknyR&q=85&s=fc932105c913d35a6c84b091675e1445" alt="Bảng xếp hạng" width="2922" height="1714" data-path="images/code-review/leaderboard.png" />
</Frame>

## Tại sao có bảng xếp hạng

* **Điểm số theo nhóm** — cả hai chỉ số đều được chuẩn hóa so với mức trung bình của nhóm, giúp điểm số có ý nghĩa trong ngữ cảnh thực tế
* **Đánh giá cân bằng** — chất lượng và tác động đóng góp ngang nhau (50/50), nên năng suất cao không thể che khuất chất lượng thấp
* **So sánh công bằng** — các refactor lớn được tính tỷ lệ cao hơn so với các thay đổi nhỏ
* **Khuyến khích chất lượng** — Điểm Chất lượng từ 1–10 biến code review thành vòng phản hồi tích cực
* **Chẩn đoán, không chỉ xếp hạng** — bảng xếp hạng lộ ra sự mất cân bằng về khối lượng công việc và xu hướng chất lượng mà số lượng PR đơn thuần không thể hiện

## Điểm chất lượng

Mỗi PR nhận một **Điểm Chất lượng** trên thang 1–10. Điểm bắt đầu từ 10 và bị trừ theo số lượng và mức độ nghiêm trọng của các phát hiện — vấn đề nghiêm trọng bị trừ nhiều hơn vấn đề nhẹ. **Điểm Chất lượng Nhóm** hiển thị trên dashboard là trung bình cộng của tất cả lập trình viên.

## Công thức cốt lõi

```text theme={null}
Contribution Score = (Normalized Quality Score + Normalized Impact Score) / 2
```

Trong đó:

* **Normalized Quality Score** = Điểm Chất lượng Trung bình của Tác giả / Điểm Chất lượng Nhóm
* **Normalized Impact Score** = Tổng Tác động của Tác giả / Tác động Trung bình Nhóm

| Điểm Đóng góp | Nhãn          | Diễn giải                           |
| ------------- | ------------- | ----------------------------------- |
| ≥ 1.5         | Xuất sắc      | Vượt đáng kể so với trung bình nhóm |
| 1.0 – 1.5     | Tốt           | Trên trung bình nhóm                |
| 0.8 – 1.0     | Trung bình    | Bằng hoặc gần mức trung bình nhóm   |
| \< 0.8        | Cần cải thiện | Dưới trung bình nhóm                |

Điểm chính xác **1.0** có nghĩa lập trình viên đang ở mức trung bình của nhóm.

## Tính toán tác động

Điểm tác động của mỗi merge request đo mức độ phức tạp của thay đổi:

```text theme={null}
MR Impact = (files_changed × 6.0) + (lines_added × 0.14) + (lines_deleted × 0.28)
```

| Chỉ số             | Trọng số | Lý do                                                     |
| ------------------ | -------- | --------------------------------------------------------- |
| Số file thay đổi   | 6.0      | Thay đổi nhiều file cho thấy độ phức tạp cao hơn          |
| Dòng thêm vào      | 0.14     | Code mới cần hiểu biết và tích hợp                        |
| Dòng xóa đi        | 0.28     | Xóa thường cần phân tích kỹ hơn (trọng số gấp 2 lần thêm) |
| Tác động tối thiểu | 1.0      | Giá trị sàn để tránh lỗi chia                             |

Công thức tác động được dẫn xuất từ phương pháp [Oobeya GitWiser Coding Impact Score](https://docs.oobeya.io/gitwiser-repo-analytics/git-analytics-metric-definitions/coding-impact-score).

## Ví dụ tính toán

**Dữ liệu nhóm:**

| Tác giả | Điểm CL TB | Tổng Tác động |
| ------- | ---------- | ------------- |
| Alice   | 8.5        | 450           |
| Bob     | 7.2        | 280           |
| Carol   | 9.0        | 120           |

**Trung bình nhóm:**

* Điểm Chất lượng Nhóm = (8.5 + 7.2 + 9.0) / 3 = **8.23**
* Tác động Trung bình Nhóm = (450 + 280 + 120) / 3 = **283.33**

**Điểm Đóng góp của Alice:**

* Normalized Quality = 8.5 / 8.23 = **1.03**
* Normalized Impact = 450 / 283.33 = **1.59**
* Contribution Score = (1.03 + 1.59) / 2 = **1.31**

Alice đạt **1.31** — vượt 31% so với trung bình nhóm.

## Đọc hiểu bảng xếp hạng

Dùng tổ hợp điểm như một công cụ chẩn đoán sức khỏe kỹ thuật, không chỉ để xếp hạng:

| Mô hình                        | Tín hiệu                                                       | Hành động                                                             |
| ------------------------------ | -------------------------------------------------------------- | --------------------------------------------------------------------- |
| Chất lượng cao + Tác động cao  | Người thực hiện xuất sắc                                       | Mentor lý tưởng, lead reviewer, hoặc chủ sở hữu các refactor phức tạp |
| Tác động cao + Chất lượng thấp | Có thể kiệt sức — ship nhanh, cắt góc                          | Kiểm tra khối lượng công việc và deadline                             |
| Chất lượng cao + Tác động thấp | Có thể đang vướng mắc bài toán khó hoặc chưa được tận dụng hết | Kiểm tra phân bổ nhiệm vụ                                             |
| Tác động phân bố không đều     | "Bus Factor" cao — kiến thức tập trung vào một người           | Phân phối lại kiến thức và khối lượng công việc                       |

<Tip>
  Xem lại bảng xếp hạng hàng tuần để theo dõi xu hướng chất lượng và cân bằng khối lượng công việc trong nhóm.
</Tip>

## Liên quan

<CardGroup cols={2}>
  <Card title="Skill matrix" icon="table-cells" href="/vi/guide/code-review/skill-matrix">
    Xem mức độ thành thạo của từng lập trình viên trên các lĩnh vực Security, Performance, Correctness, và Patterns
  </Card>

  <Card title="Code review analytics" icon="chart-line" href="/vi/guide/code-review/analytics">
    Theo dõi xu hướng code review, hiệu suất lập trình viên, và sức khỏe nhóm theo thời gian
  </Card>
</CardGroup>
