Dự án cuối 4: áp dụng patterns và review chéo
Hoàn thiện dự án cuối khóa: áp dụng patterns đúng chỗ, review chéo, sửa theo feedback và đóng gói bản demo.
Chuyên giaDesign pattern ~120 phút
Ôn lại trước khi học
Giới thiệu
Bạn hoàn thiện dự án cuối khóa. Sửa nhỏ từng bước có kiểm thử.
Kiến thức cần nhớ
Áp patterns đúng chỗ
- Liệt kê mùi hôi trong code trước.
- Mỗi pattern trị một mùi cụ thể.
- Ví dụ đời thường: giống uống thuốc đúng bệnh.
- Gỡ pattern ra mà mùi quay lại mới là cần thiết.
Review chéo
- Review chéo là đọc code cho nhau.
- Ghi ít nhất 10 phát hiện có mức độ.
- Ví dụ đời thường: giống chấm bài chéo trong lớp.
- Cả hai chiều đều ghi biên bản.
Sửa và đóng gói demo
- Sửa lỗi đúng trước, làm đẹp sau.
- Mỗi lần sửa chạy lại kiểm thử và benchmark.
- Ví dụ đời thường: giống vá lốp xong phải chạy thử.
- Đóng gói một lệnh chạy kèm kịch bản 10 phút.
# strategy thay thuật toán demo
class CachNhanh: # một cách làm
def chay(self):
return "chạy nhanh" # bản nhanh
class CachChuan: # cách khác
def chay(self):
return "chạy chuẩn" # bản chuẩn
Ví dụ
- 3 patterns -> mỗi pattern truy tới một mùi gốc.
- Biên bản review -> đủ 10 phát hiện có vị trí.
💻 Bài tập
Dự án cuối, ngày 4. Nộp vào repo final-project/.
Bài 1: Mùi hôi và pattern
- Liệt kê 5 "mùi hôi" trong code dự án kèm vị trí file:dòng (hàm quá dài,
if/elsetheo kiểu, lặp code, lớp ôm nhiều việc, phụ thuộc cứng). - Chọn 3 mùi, trị bằng pattern phù hợp. Mỗi lần refactor 1 commit, test và benchmark trước sau phải giống nhau.
PATTERNS.md: bảng mùi, pattern, lý do, và kiểm chứng "gỡ pattern ra thì mùi quay lại".
Bắt buộc: có ít nhất 1 mùi bạn quyết định không trị bằng pattern, và giải thích.
Bài 2: Review chéo
- Đổi repo với 1 người khác (hoặc tự review code sau khi nghỉ 1 ngày).
- Biên bản review ít nhất 10 phát hiện, mỗi phát hiện có: vị trí, mức độ (lỗi / hiệu năng / dễ đọc / tài liệu), đề xuất.
- Sửa các phát hiện mức "lỗi" trước. Ghi phát hiện nào không sửa và vì sao.
Bài 3: Đóng gói demo (nâng cao)
- Một lệnh cài và chạy:
make demo,docker compose up, hoặc script tương đương. - Người khác clone repo sạch, chạy được trong 15 phút. Ghi lại mọi chỗ họ vấp và sửa README.
- Kịch bản demo 10 phút: vấn đề (2 phút), chạy sống (5 phút), số liệu (2 phút), hỏi đáp (1 phút).
- Chạy lại toàn bộ test và benchmark lần cuối, cập nhật
BENCHMARK.md.
✅ Tiêu chí hoàn thành
- 3 refactor có commit riêng, test và benchmark không đổi.
- Biên bản review đủ 10 phát hiện.
- Người khác chạy được demo từ repo sạch.
- Kịch bản demo 10 phút viết sẵn.
❓ Câu hỏi ôn tập
- Pattern cần truy tới cái gì?
- Review chéo ghi mấy phát hiện?
- Sửa theo thứ tự nào?
- Cấm refactor kiểu gì giờ chót?
🌕 Bạn đã hoàn thành ngày 170. Làm hết bài tập phía trên rồi sang ngày tiếp theo.