Đọc yêu cầu như 1 dev thật
Yêu cầu từ sếp
"Anh viết cho em cái tool: kiểm tra xem 3 server có sống không. Nếu server nào treo quá 2 giây thì gửi cảnh báo qua Telegram. Nhớ là kiểm tra song song cho nhanh nhé."
🧠 Tư duy phân tích yêu cầu (rất quan trọng)
Trước khi gõ code, dev giỏi luôn gạch chân từ khoá:
| Từ khoá trong yêu cầu | Ý nghĩa kỹ thuật | Khái niệm Go cần dùng |
|---|---|---|
| "3 server" | Có nhiều đối tượng giống nhau | struct + slice |
| "kiểm tra sống không" | Cần hành động trên từng server | function / method |
| "song song" | Chạy cùng lúc, không đợi nhau | goroutine + WaitGroup |
| "quá 2 giây" | Có hạn chót | context.WithTimeout |
| "gửi cảnh báo Telegram" | Hành vi có thể thay thế (mai đổi Slack thì sao?) | interface |
| "báo cáo tổng" | Cần thu thập kết quả từ nhiều nguồn | channel |
👉 Nguyên tắc số 1: Không code khi chưa biết mình cần gì.
Toàn bộ khoá học Phần 1 chỉ là đi giải đúng 6 dòng trong bảng trên, theo đúng thứ tự 1 dev thật sẽ làm: dữ liệu trước, hành vi phụ sau, khung chương trình, logic đơn giản cho đúng, rồi mới tối ưu song song, cuối cùng mới lo timeout/lỗi.