DDevArchive
Đăng nhập

Đọc code người khác: kỹ năng sống còn không ai dạy

80% thời gian developer KHÔNG PHẢI viết code mới — mà là ĐỌC code cũ. Code của người khác, code của chính mình 3 tháng trước (lúc đó nghĩ gì vậy?), code open-source. Kỹ năng đọc code quan trọng hơn viết code, nhưng không trường nào dạy.

Vì sao đọc code khó hơn viết code?

Viết code = bạn kiểm soát logic từ đầu. Đọc code = phải dùng ngược: từ kết quả → suy ra logic, từ cây → suy ra rừng. Não bạn phải xây lại “bản đồ” mà người viết đã có sẵn trong đầu.

Quy trình đọc code hiệu quả

BướcLàm gìMục tiêu
1. Chạy trướcClone repo, cài dependencies, chạy lênBiết app làm gì trước khi đọc code
2. Đọc README + docsHiểu mục đích, tech stack, cấu trúc folderBản đồ tổng quan
3. Entry pointTìm file khởi động: index.js, main.ts, App.tsxĐiểm bắt đầu đọc
4. Follow 1 flowChọn 1 tính năng → trace từ UI → API → DBHiểu 1 luồng end-to-end
5. Đọc testUnit test = documentation tốt nhấtHiểu expected behavior
6. Ghi chúComment, vẽ diagram, viết lại bằng lờiConsolidate hiểu biết
// File: reading-tips.md
## Mẹo đọc code nhanh hơn

1. **Ctrl+Click** (VS Code): nhảy đến definition
   → Xem hàm này làm gì, nhận param gì

2. **Ctrl+Shift+F**: tìm kiếm toàn project
   → Hàm này được gọi ở đâu?

3. **Git blame**: ai viết dòng này, khi nào, PR nào?
   → Đọc PR description = hiểu context

4. **Đọc từ NGOÀI VÀO**: route → controller → service → model
   → Không đọc random file, follow luồng dữ liệu

5. **Bỏ qua chi tiết**: lần đầu đọc SKIP implementation,
   chỉ đọc function name + input/output
   → Hiểu "cái gì" trước, "thế nào" sau
💡 Mẹo: rubber duck reading

Giải thích code bạn đang đọc cho một con vịt cao su (hoặc bạn bè). Nếu bạn không giải thích được → bạn chưa hiểu. Phương pháp này cũng hoạt động khi debug.

Khi nào nên KHÔNG đọc code

Đừng cố đọc hiểu TẤT CẢ. Codebase 100.000 dòng — bạn chỉ cần hiểu phần liên quan đến task hiện tại. Đọc đủ để hoàn thành task, không phải đọc để thuộc lòng.

❓ Bước đầu tiên khi đọc codebase mới nên là gì?

  • Clone 1 project open-source, chạy local
  • Follow 1 flow: từ UI click → API → DB
  • Dùng Ctrl+Click và Git Blame trong VS Code
  • Viết lại logic bằng lời cho 1 function phức tạp