Hàm và Ranh Giới Trách Nhiệm
🟢 TẦNG 8 – HÀM & RANH GIỚI TRÁCH NHIỆM
1️⃣ Hàm là gì?
Hàm = một hành động nhỏ, làm đúng 1 việc, xong là trả kết quả.
Ví dụ đời sống:
- “Kiểm tra còn tiền không”
- “Tính tổng tiền”
- “Gửi tin nhắn”
👉 Mỗi cái là 1 hàm riêng.
2️⃣ Vì sao cần hàm sau module?
- Module = một khu vực làm việc lớn
- Hàm = từng thao tác nhỏ trong khu vực đó
Không có hàm → module thành 1 cục bùn.
Có hàm → mỗi việc đứng đúng chỗ.
3️⃣ 5 luật sắt của HÀM (chỉ cần nhớ 5 dòng)
- Một hàm chỉ làm MỘT việc
- Hàm không tự quyết định số phận hệ thống
- Hàm không tự ý đổi trạng thái mà không nói ra
- Hàm không dùng lung tung đồ bên ngoài
- Hàm xong việc là xong, không giữ trạng thái lâu dài
Chỉ cần vi phạm 1 trong 5 cái trên → sớm muộn code loạn.
4️⃣ Tách cực rõ 2 loại hàm (điểm mấu chốt)
🔧 Loại 1: Hàm LÀM VIỆC
👉 Chỉ làm kỹ thuật
Ví dụ:
- kiểm tra đúng / sai
- tính toán
- xử lý dữ liệu
KHÔNG quyết định tiếp hay dừng
🧠 Loại 2: Hàm QUYẾT ĐỊNH
👉 Chỉ quyết định luồng
Ví dụ:
- nếu sai → dừng
- nếu đúng → gọi tiếp hàm khác
KHÔNG xử lý chi tiết
5️⃣ Ví dụ chốt não (đọc là hết mơ hồ)
❌ Tư duy sai (1 hàm làm tất)
“Xử lý đăng ký”:
- kiểm tra email
- kiểm tra mật khẩu
- tạo user
- lưu
- gửi mail
- quyết định thành công / thất bại
👉 1 hàm = 5 việc = LOẠN
✅ Tư duy đúng (đúng chuẩn tầng 8)
Hàm làm việc:
- kiểmTraEmail()
- kiểmTraMatKhau()
- tạoUser()
- lưuUser()
- gửiMail()
Hàm quyết định:
- xửLýĐăngKý()
Luồng tư duy:
Nếu email sai → dừng
Nếu mật khẩu yếu → dừng
Nếu ổn → tạo user → lưu → gửi mail
👉 Rõ vai trò – không lẫn não với tay chân.
6️⃣ Dấu hiệu nhận biết đang viết HÀM SAI
Nếu thấy trong đầu mình có mấy câu này → sai tư duy:
- “Hàm này tiện làm luôn cái kia”
- “Thôi cho nó tự đổi trạng thái luôn”
- “Cho hàm này quyết định luôn cho nhanh”
- “Hàm này đọc luôn biến global cho đỡ truyền”
👉 Những câu này = mầm bug + mầm loạn hệ thống.
7️⃣ Khung ghi nhớ 1 dòng
Hàm = làm việc nhỏ, không làm não hệ thống, không giữ quyền lực.
8️⃣ Bài tập 30 giây
Tình huống: “Đi mua đồ ăn”
Tách ra:
- Hàm làm việc:
- kiểm tra còn tiền không
- chọn món
- trả tiền
- nhận đồ
- Hàm quyết định:
- nếu không đủ tiền → về
- nếu đủ tiền → mua
Ví dụ đời sống cho TẦNG 8 – Thợ xây & Chủ thầu
Chủ thầu = Hàm quyết định (Controller)
- Quyết định: có làm công trình không
- Quyết định: làm theo phương án nào
- Quyết định: bước nào làm trước, bước nào làm sau
- Quyết định: khi nào dừng
Đội thợ = Hàm làm việc (Worker)
- Chỉ làm kỹ thuật: trộn bê tông, xây tường, đổ móng
- Không quyết định kế hoạch
- Không tự đổi phương án
- Không tự dừng công trình
Nguyên tắc cốt lõi:
Đội thợ không được quyết định số phận công trình. Đội thợ chỉ thực hiện kỹ thuật. Quyền quyết định luồng phải nằm ở chủ thầu.
Chưa có bình luận nào.
Hãy là người đầu tiên chia sẻ suy nghĩ của bạn!