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ước | Làm gì | Mục tiêu |
|---|---|---|
| 1. Chạy trước | Clone repo, cài dependencies, chạy lên | Biết app làm gì trước khi đọc code |
| 2. Đọc README + docs | Hiểu mục đích, tech stack, cấu trúc folder | Bản đồ tổng quan |
| 3. Entry point | Tìm file khởi động: index.js, main.ts, App.tsx | Điểm bắt đầu đọc |
| 4. Follow 1 flow | Chọn 1 tính năng → trace từ UI → API → DB | Hiểu 1 luồng end-to-end |
| 5. Đọc test | Unit test = documentation tốt nhất | Hiểu expected behavior |
| 6. Ghi chú | Comment, vẽ diagram, viết lại bằng lời | Consolidate 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
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