[Buổi 31][Củng cố OOP nâng cao][HW] Bài 5: Demo Checklist
Demo Checklist
Bối cảnh
Trước Demo Day, nhóm dùng một checklist nhỏ gồm số feature CORE đã hoàn tất, tổng CORE, số test pass, tổng test và số critical bug. Hệ thống chỉ in READY nếu toàn bộ CORE xong, toàn bộ test pass và critical bug bằng0. Homework Easy không thêm OOP mới; nó là gate thực dụng để nhắc rằng thiết kế tốt phải đi kèm trạng thái release rõ ràng.
Bài được giữ đơn giản để học viên có thể áp dụng trực tiếp cho Final Project B32.
B31 là phần tích hợp, nên bài toán cần thể hiện trách nhiệm giữa nhiều abstraction thay vì chỉ ghép cú pháp. Polymorphism chịu trách nhiệm thay behavior; template chịu trách nhiệm reuse theo type; exception chịu trách nhiệm recovery khi input/state bất hợp lệ. Core workflow phải tiếp tục giữ invariant dù một record hoặc command bị lỗi.
Yêu cầu
- Đọc coreDone/coreTotal, testsPass/testsTotal, criticalBugs.
- READY khi coreDone==coreTotal, testsPass==testsTotal và criticalBugs==0.
- Ngược lại NOT_READY.
Input
Năm số nguyên.
Output
READY hoặc NOT_READY.
Ràng buộc
Các số không âm, done≤total, pass≤total.
Ví dụ 1
Input
3 3 10 10 0
Output
READY
Giải thích
doneCore=3 đúng bằng totalCore3, passedTests=10 đúng total10, criticalBug=0. Cả ba điều kiện đều đúng nên gate in READY.
Mẫu này kiểm tra pipeline ở mức tích hợp: input đi qua validation, chọn runtime behavior, cập nhật aggregate rồi mới sinh output. Nếu một bước thất bại, fallback/ERROR phải đúng contract và các summary phía sau không được tính nhầm dữ liệu lỗi. Vì vậy trace mẫu chính là kiểm tra invariant xuyên suốt workflow.
Ví dụ 2
Input
2 3 10 10 0
Output
NOT_READY
Giải thích
doneCore=2 nhưng totalCore=3 nên còn một core feature chưa xong. Dù test đủ và bug0, điều kiện AND tổng thể fail, output NOT_READY.
Mẫu này kiểm tra pipeline ở mức tích hợp: input đi qua validation, chọn runtime behavior, cập nhật aggregate rồi mới sinh output. Nếu một bước thất bại, fallback/ERROR phải đúng contract và các summary phía sau không được tính nhầm dữ liệu lỗi. Vì vậy trace mẫu chính là kiểm tra invariant xuyên suốt workflow.
Thông tin học tập
- Module: M08
- Buổi: B31
- Loại bài: HOMEWORK
- Độ khó: Easy
- Concepts: final design review, test plan, bug list, readiness
- Giới hạn kiến thức: B01-B31
- Time limit: 1 second(s)
- Memory limit: 256 MB
- Point: 100
Comments