Viết PR và README tốt
Tại sao viết kỹ thuật quan trọng
Phần tiêu đề “Tại sao viết kỹ thuật quan trọng”Trong code review, mô tả PR là điểm vào cho người xem xét. Mô tả PR tốt giúp:
- ✅ Người xem xét nhanh chóng hiểu bạn đã làm gì
- ✅ Giảm các câu hỏi qua lại
- ✅ Thể hiện bạn suy nghĩ kỹ lưỡng
Cấu trúc chuẩn của mô tả PR: What/Why/How/Testing
Phần tiêu đề “Cấu trúc chuẩn của mô tả PR: What/Why/How/Testing”1. What (đã làm gì)
Phần tiêu đề “1. What (đã làm gì)”Tóm tắt ngắn gọn, một câu.
Refactor authentication flow to support OAuth2 and magic link sign-upBiểu đạt chính:
- Add X — thêm tính năng mới
- Fix X — sửa bug
- Refactor X — viết lại code (không thay đổi chức năng)
- Optimize X — cải thiện hiệu suất
2. Why (tại sao làm)
Phần tiêu đề “2. Why (tại sao làm)”Phần thường bị bỏ qua nhất. Giải thích bối cảnh và động lực.
Why:- Users requested passwordless sign-up option- Current session-based auth doesn't scale to multiple domains3. How (làm như thế nào)
Phần tiêu đề “3. How (làm như thế nào)”Tổng quan kỹ thuật cấp cao.
How:1. Created JWT service using Web Crypto API2. Replaced SessionMiddleware with AuthMiddleware3. Added OAuth2 routes for Google/GitHub sign-in
Breaking changes:- Clients now need to store and send JWT in Authorization header4. Testing (kiểm tra như thế nào)
Phần tiêu đề “4. Testing (kiểm tra như thế nào)”Testing:- Manual testing: Verified OAuth2 sign-in with Google and GitHub- Existing auth tests pass (147 tests)- Added 23 new testsTemplate mô tả PR
Phần tiêu đề “Template mô tả PR”## What[tóm tắt một câu]
## Why- [lý do 1]- [lý do 2]
## How1. [thay đổi 1]2. [thay đổi 2]
## Testing- [bạn đã kiểm tra gì]
## RelatedCloses #123Bẫy ngữ pháp trong viết kỹ thuật
Phần tiêu đề “Bẫy ngữ pháp trong viết kỹ thuật”1. Thì động từ (lỗi phổ biến nhất)
Phần tiêu đề “1. Thì động từ (lỗi phổ biến nhất)”Nguyên tắc: hiện tại cho code làm gì, quá khứ cho thay đổi bạn đã thực hiện
| Sai | Đúng |
|---|---|
| ”The function was created to handle X" | "The function handles X" |
| "The code will validate input" | "The code validates input” |
2. Thể bị động quá mức
Phần tiêu đề “2. Thể bị động quá mức”| Bị động | Chủ động (tốt hơn) |
|---|---|
| “The JWT is generated by the server" | "The server generates the JWT" |
| "Breaking changes were introduced" | "This PR introduces breaking changes” |
3. Phân biệt sắc thái từ đồng nghĩa
Phần tiêu đề “3. Phân biệt sắc thái từ đồng nghĩa”| Từ | Cách dùng |
|---|---|
| Add | Thêm tính năng mới: “Add OAuth2 support” |
| Fix | Sửa bug: “Fix race condition in cache” |
| Refactor | Cải thiện code, không thay đổi chức năng |
| Optimize | Cải thiện hiệu suất |
Danh sách kiểm tra nhanh cho PR
Phần tiêu đề “Danh sách kiểm tra nhanh cho PR”- Phần What giải thích rõ ràng thay đổi
- Phần Why có lý do kỹ thuật hoặc kinh doanh
- Phần How cho thấy thiết kế tổng quan
- Phần Testing nêu phạm vi kiểm tra
- Không có thể bị động quá mức
- Liên kết đến issue liên quan (nếu có)